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: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: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 mazzo di chiavi:
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 la chiave automatizzata 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.