Creare una chiave con wrapping

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 end-to-end che mostra come creare una chiave di wrapping, tokenizzare i contenuti e reidentificare i contenuti tokenizzati, consulta invece Guida rapida: anonimizzazione e reidentificazione del testo sensibile.

Puoi completare i passaggi descritti in questo argomento in 5-10 minuti, esclusi i passaggi della sezione Prima di iniziare.

Prima di iniziare

  1. 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.
  2. Install the Google Cloud CLI.

  3. Se utilizzi un provider di identità (IdP) esterno, devi prima accedere alla gcloud CLI con la tua identità federata.

  4. Per inizializzare gcloud CLI, esegui questo comando:

    gcloud init
  5. 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.

  6. Verify that billing is enabled for your Google Cloud project.

  7. Enable the Sensitive Data Protection and Cloud KMS APIs:

    gcloud services enable dlp.googleapis.com cloudkms.googleapis.com
  8. 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 the following:

    • PROJECT_ID: your project ID.
    • USER_IDENTIFIER: the identifier for your user account—for example, myemail@example.com.
    • ROLE: the IAM role that you grant to your user account.
  9. Install the Google Cloud CLI.

  10. Se utilizzi un provider di identità (IdP) esterno, devi prima accedere alla gcloud CLI con la tua identità federata.

  11. Per inizializzare gcloud CLI, esegui questo comando:

    gcloud init
  12. 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.

  13. Verify that billing is enabled for your Google Cloud project.

  14. Enable the Sensitive Data Protection and Cloud KMS APIs:

    gcloud services enable dlp.googleapis.com cloudkms.googleapis.com
  15. 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 the following:

    • PROJECT_ID: your project ID.
    • USER_IDENTIFIER: the identifier for your user account—for example, myemail@example.com.
    • ROLE: the IAM role that you grant to your user account.
  16. Passaggio 1: crea 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.

    1. Crea chiavi automatizzate:

      gcloud kms keyrings create "dlp-keyring" \
          --location "global"
      
    2. Crea una chiave:

      gcloud kms keys create "dlp-key" \
          --location "global" \
          --keyring "dlp-keyring" \
          --purpose "encryption"
      
    3. Elenca la chiave automatizzata e la chiave:

      gcloud kms keys list \
          --location "global" \
          --keyring "dlp-keyring"
      

      Viene visualizzato l'output seguente:

      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 sotto NAME è il nome completo della risorsa della chiave Cloud KMS. Prendine nota perché è necessario per le richieste di anonimizzazione e reidentificazione.

    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.

    1. Crea una chiave AES a 128, 192 o 256 bit. Il seguente comando 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.

    2. 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 eseguire il wrapping della chiave AES codificata in base64 creata nel passaggio 2.

    Per eseguire il wrapping 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 progetto
    • BASE64_ENCODED_AES_KEY: la stringa con codifica Base64 restituita 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 tua chiave con wrapping.

    Passaggi successivi