Questa pagina descrive come utilizzare Cloud Key Management Service (Cloud KMS) per creare una chiave protetta che puoi poi utilizzare per inviare richieste deidentify
e reidentify
all'API Cloud Data Loss Prevention di Sensitive Data Protection.
Il processo di utilizzo di una chiave di crittografia per anonimizzare e reidentificare i contenuti è chiamato pseudonimizzazione (o tokenizzazione). Per informazioni concettuali su questa procedura, consulta Pseudonimizzazione.
Per un esempio end-to-end che illustra come creare una chiave con wrapping, tokenizzare i contenuti e reidentificare i contenuti tokenizzati, consulta la Guida rapida: anonimizzazione e reidentificazione del testo sensibile.
Puoi completare i passaggi descritti in questo argomento in 5-10 minuti, esclusi i passaggi di Prima di iniziare.
Prima di iniziare
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
Create or select a Google Cloud project.
-
Create a Google Cloud project:
gcloud projects create PROJECT_ID
Replace
PROJECT_ID
with a name for the Google Cloud project you are creating. -
Select the Google Cloud project that you created:
gcloud config set project PROJECT_ID
Replace
PROJECT_ID
with your Google Cloud project name.
-
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Sensitive Data Protection and Cloud KMS APIs:
gcloud services enable dlp.googleapis.com
cloudkms.googleapis.com -
Grant roles to your user account. Run the following command once for each of the following IAM roles:
roles/dlp.user
gcloud projects add-iam-policy-binding PROJECT_ID --member="USER_IDENTIFIER" --role=ROLE
- Replace
PROJECT_ID
with your project ID. -
Replace
USER_IDENTIFIER
with the identifier for your user account. For example,user:myemail@example.com
. - Replace
ROLE
with each individual role.
- Replace
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
Create or select a Google Cloud project.
-
Create a Google Cloud project:
gcloud projects create PROJECT_ID
Replace
PROJECT_ID
with a name for the Google Cloud project you are creating. -
Select the Google Cloud project that you created:
gcloud config set project PROJECT_ID
Replace
PROJECT_ID
with your Google Cloud project name.
-
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Sensitive Data Protection and Cloud KMS APIs:
gcloud services enable dlp.googleapis.com
cloudkms.googleapis.com -
Grant roles to your user account. Run the following command once for each of the following IAM roles:
roles/dlp.user
gcloud projects add-iam-policy-binding PROJECT_ID --member="USER_IDENTIFIER" --role=ROLE
- Replace
PROJECT_ID
with your project ID. -
Replace
USER_IDENTIFIER
with the identifier for your user account. For example,user:myemail@example.com
. - Replace
ROLE
with each individual role.
- Replace
Passaggio 1: crea un mazzo di chiavi e una chiave
Prima di iniziare questa procedura, decidi dove vuoi che Sensitive Data Protection elabori le richieste di anonimizzazione e reidentificazione. Quando crei una chiave Cloud KMS, devi archiviarla in global
o nella stessa regione che utilizzerai per le richieste di protezione dei dati sensibili.
In caso contrario, le richieste di Sensitive Data Protection non andranno a buon fine.
Puoi trovare un elenco delle località supportate in
Località di Sensitive Data Protection. Prendi nota del nome della regione scelta (ad esempio us-west1
).
Questa procedura utilizza global
come posizione per tutte le richieste API. Se vuoi utilizzare una regione diversa, sostituisci global
con il nome della regione.
Crea un keyring:
gcloud kms keyrings create "dlp-keyring" \ --location "global"
Crea una chiave:
gcloud kms keys create "dlp-key" \ --location "global" \ --keyring "dlp-keyring" \ --purpose "encryption"
Elenca il keyring e la chiave:
gcloud kms keys list \ --location "global" \ --keyring "dlp-keyring"
Viene visualizzato il seguente output:
NAME PURPOSE ALGORITHM PROTECTION_LEVEL LABELS PRIMARY_ID PRIMARY_STATE projects/PROJECT_ID/locations/global/keyRings/dlp-keyring/cryptoKeys/dlp-key ENCRYPT_DECRYPT GOOGLE_SYMMETRIC_ENCRYPTION SOFTWARE 1 ENABLED
In questo output,
PROJECT_ID
è l'ID del tuo progetto.Il percorso in
NAME
è il nome completo della risorsa della chiave Cloud KMS. Tienilo presente perché le richieste di anonimizzazione e reidentificazione lo richiedono.
Passaggio 2: crea una chiave AES codificata in base64
Questa sezione descrive come creare una chiave Advanced Encryption Standard (AES) e codificarla in formato base64.
Crea una chiave AES a 128, 192 o 256 bit. Il comando seguente utilizza
openssl
per creare una chiave a 256 bit nella directory corrente:openssl rand -out "./aes_key.bin" 32
Il file
aes_key.bin
viene aggiunto alla directory corrente.Codifica la chiave AES come stringa base64:
base64 -i ./aes_key.bin
Viene visualizzato un output simile al seguente:
uEDo6/yKx+zCg2cZ1DBwpwvzMVNk/c+jWs7OwpkMc/s=
Passaggio 3: esegui il wrapping della chiave AES utilizzando la chiave Cloud KMS
Questa sezione descrive come utilizzare la chiave Cloud KMS creata nel passaggio 1 per avvolgere la chiave AES con codifica base64 creata nel passaggio 2.
Per eseguire l'incapsulamento della chiave AES, utilizza curl
per inviare la seguente richiesta all'API Cloud KMS
projects.locations.keyRings.cryptoKeys.encrypt
:
curl "https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/locations/global/keyRings/dlp-keyring/cryptoKeys/dlp-key:encrypt" \
--request "POST" \
--header "Authorization:Bearer $(gcloud auth application-default print-access-token)" \
--header "content-type: application/json" \
--data "{\"plaintext\": \"BASE64_ENCODED_AES_KEY\"}"
Sostituisci quanto segue:
PROJECT_ID
: l'ID del progetto.BASE64_ENCODED_AES_KEY
: la stringa con codifica base64 ritornata nel passaggio 2.
La risposta che ricevi da Cloud KMS è simile al seguente JSON:
{ "name": "projects/PROJECT_ID/locations/global/keyRings/dlp-keyring/cryptoKeys/dlp-key/cryptoKeyVersions/1", "ciphertext": "CiQAYuuIGo5DVaqdE0YLioWxEhC8LbTmq7Uy2G3qOJlZB7WXBw0SSQAjdwP8ZusZJ3Kr8GD9W0vaFPMDksmHEo6nTDaW/j5sSYpHa1ym2JHk+lUgkC3Zw5bXhfCNOkpXUdHGZKou1893O8BDby/82HY=", "ciphertextCrc32c": "901327763", "protectionLevel": "SOFTWARE" }
In questo output, PROJECT_ID
è l'ID del tuo progetto.
Prendi nota del valore di ciphertext
nella risposta che ricevi.
Questa è la chiave con wrapping.
Passaggi successivi
Scopri di più sulla tokenizzazione dei dati tramite una chiave di crittografia.
Esamina un esempio end-to-end che mostra come creare una chiave con wrapping, tokenizzare i contenuti e reidentificare i contenuti tokenizzati.
Scopri di più sui metodi di anonimizzazione che accettano questa chiave sottoposta a wrapping e consulta gli esempi di codice.