Questa pagina descrive come utilizzare Cloud Key Management Service (Cloud KMS) per creare una chiave di wrapping che puoi utilizzare per inviare richieste deidentify e reidentify all'API Cloud Data Loss Prevention di Sensitive Data Protection.
La procedura di utilizzo di una chiave di crittografia per rendere anonimi e identificare nuovamente i contenuti è chiamata pseudonimizzazione (o tokenizzazione). Per informazioni concettuali su questo processo, consulta Pseudonimizzazione.
Per un esempio che mostra come creare una chiave sottoposta a wrapping, tokenizzare i contenuti e reidentificare i contenuti tokenizzati, consulta Anonimizzazione e reidentificazione di testo sensibile.
Puoi completare i passaggi descritti in questo documento in 5-10 minuti, esclusi i passaggi 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.
-
Se utilizzi un provider di identità (IdP) esterno, devi prima accedere a gcloud CLI con la tua identità federata.
-
Per inizializzare gcloud CLI, esegui questo comando:
gcloud init -
Create or select a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Create a Google Cloud project:
gcloud projects create PROJECT_ID
Replace
PROJECT_IDwith 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_IDwith your Google Cloud project name.
-
Se utilizzi un progetto esistente per questa guida, verifica di disporre delle autorizzazioni necessarie per completare la guida. Se hai creato un nuovo progetto, disponi già delle autorizzazioni necessarie.
-
Verify that billing is enabled for your Google Cloud project.
-
Enable the Sensitive Data Protection and Cloud KMS APIs:
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.gcloud services enable dlp.googleapis.com
cloudkms.googleapis.com -
Install the Google Cloud CLI.
-
Se utilizzi un provider di identità (IdP) esterno, devi prima accedere a gcloud CLI con la tua identità federata.
-
Per inizializzare gcloud CLI, esegui questo comando:
gcloud init -
Create or select a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Create a Google Cloud project:
gcloud projects create PROJECT_ID
Replace
PROJECT_IDwith 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_IDwith your Google Cloud project name.
-
Se utilizzi un progetto esistente per questa guida, verifica di disporre delle autorizzazioni necessarie per completare la guida. Se hai creato un nuovo progetto, disponi già delle autorizzazioni necessarie.
-
Verify that billing is enabled for your Google Cloud project.
-
Enable the Sensitive Data Protection and Cloud KMS APIs:
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.gcloud services enable dlp.googleapis.com
cloudkms.googleapis.com -
Cloud KMS Admin (
roles/cloudkms.admin) -
Cloud KMS CryptoKey Encrypter (
roles/cloudkms.cryptoKeyEncrypter) Crea chiavi automatizzate:
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: projects/<var>PROJECT_ID</var>/locations/global/keyRings/dlp-keyring/cryptoKeys/dlp-key PURPOSE: ENCRYPT_DECRYPT ALGORITHM: GOOGLE_SYMMETRIC_ENCRYPTION PROTECTION_LEVEL: SOFTWARE LABELS: PRIMARY_ID: 1 PRIMARY_STATE: ENABLEDIn questo output,
PROJECT_IDè l'ID del tuo progetto.Il valore di
NAMEè il nome completo della risorsa della chiave Cloud KMS. Annota questo valore perché è necessario per le richieste di deidentificazione e reidentificazione.Crea una chiave AES a 128, 192 o 256 bit. Il seguente comando utilizza
opensslper creare una chiave a 256 bit nella directory corrente:openssl rand -out "./aes_key.bin" 32Il file
aes_key.binviene aggiunto alla directory corrente.Codifica la chiave AES come stringa base64:
base64 -i ./aes_key.binViene visualizzato un output simile al seguente:
uEDo6/yKx+zCg2cZ1DBwpwvzMVNk/c+jWs7OwpkMc/s=PROJECT_ID: l'ID progettoBASE64_ENCODED_AES_KEY: la stringa codificata in base64 restituita in Crea una chiave AES codificata in base64.Scopri di più sulla tokenizzazione dei dati tramite una chiave crittografica.
Segui un esempio che mostra come creare una chiave di wrapping, tokenizzare i contenuti e reidentificare i contenuti tokenizzati.
Scopri di più sui metodi di deidentificazione che utilizzano questa chiave di wrapping e consulta gli esempi di codice.
Ruoli obbligatori
Per ottenere le autorizzazioni necessarie per creare una chiave AES sottoposta a wrapping, chiedi all'amministratore di concederti i seguenti ruoli IAM per il progetto:
Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.
Potresti anche riuscire a ottenere le autorizzazioni richieste tramite i ruoli personalizzati o altri ruoli predefiniti.
Creare chiavi automatizzate e una chiave
Prima di iniziare questa procedura, decidi dove vuoi che Sensitive Data Protection
elabori le tue richieste di anonimizzazione e reidentificazione. Quando crei una chiave Cloud KMS, devi archiviarla in global o nella stessa regione che utilizzerai per le richieste Sensitive Data Protection.
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
che hai scelto (ad esempio, us-west1).
Questa procedura utilizza global come località per tutte le richieste API. Se vuoi
utilizzare una regione diversa, sostituisci global con il nome della regione.
Creare una chiave AES con codifica Base64
Questa sezione descrive come creare una chiave Advanced Encryption Standard (AES) e codificarla in formato base64.
Esegui il wrapping della chiave AES utilizzando la chiave Cloud KMS
Questa sezione descrive come utilizzare la chiave Cloud KMS creata in Crea un keyring e una chiave per eseguire il wrapping della chiave AES codificata in base64 creata in Crea una chiave AES codificata in base64.
Per eseguire il wrapping della chiave AES, utilizza curl per inviare la seguente richiesta al metodo
projects.locations.keyRings.cryptoKeys.encrypt
dell'API Cloud KMS:
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:
La risposta che ricevi da Cloud KMS è simile al seguente JSON:
{
"name": "projects/<var>PROJECT_ID</var>/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.
Questa è la tua chiave con wrapping.