Crea 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 anonimizzare e reidentificare i contenuti è chiamata pseudonimizzazione (o tokenizzazione). Per informazioni concettuali su questo processo, vedi Pseudonimizzazione.

Per un esempio che mostra come creare una chiave di 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 della sezione Prima di iniziare.

Prima di iniziare

  1. Accedi al tuo account Google Cloud . Se non conosci Google Cloud, crea un account per valutare le prestazioni dei nostri prodotti in scenari reali. I nuovi clienti ricevono anche 300 $di crediti senza costi per l'esecuzione, il test e il deployment dei carichi di lavoro.
  2. Installa Google Cloud CLI.

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

  4. Per inizializzare gcloud CLI, esegui questo comando:

    gcloud init
  5. Crea o seleziona un Google Cloud progetto.

    Ruoli richiesti per selezionare o creare un progetto

    • Seleziona un progetto: la selezione di un progetto non richiede un ruolo IAM specifico. Puoi selezionare qualsiasi progetto per il quale ti è stato concesso un ruolo.
    • Crea un progetto: per creare un progetto, devi disporre del ruolo Autore progetto (roles/resourcemanager.projectCreator), che contiene l'autorizzazione resourcemanager.projects.create. Scopri come concedere i ruoli.
    • Crea un progetto Google Cloud :

      gcloud projects create PROJECT_ID

      Sostituisci PROJECT_ID con un nome per il progetto Google Cloud che stai creando.

    • Seleziona il progetto Google Cloud che hai creato:

      gcloud config set project PROJECT_ID

      Sostituisci PROJECT_ID con il nome del progetto Google Cloud .

  6. 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.

  7. Verifica che la fatturazione sia attivata per il tuo progetto Google Cloud .

  8. Abilita le API Sensitive Data Protection e Cloud KMS, se non sono già abilitate:

    Ruoli richiesti per abilitare le API

    Per abilitare le API, devi disporre dell'autorizzazione serviceusage.services.enable. Se hai creato il progetto, probabilmente disponi già di questa autorizzazione tramite il ruolo Proprietario (roles/owner). In caso contrario, puoi ottenere questa autorizzazione tramite il ruolo Amministratore utilizzo servizi (roles/serviceusage.serviceUsageAdmin). Scopri come concedere i ruoli.

    gcloud services enable dlp.googleapis.com cloudkms.googleapis.com
  9. Installa Google Cloud CLI.

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

  11. Per inizializzare gcloud CLI, esegui questo comando:

    gcloud init
  12. Crea o seleziona un Google Cloud progetto.

    Ruoli richiesti per selezionare o creare un progetto

    • Seleziona un progetto: la selezione di un progetto non richiede un ruolo IAM specifico. Puoi selezionare qualsiasi progetto per il quale ti è stato concesso un ruolo.
    • Crea un progetto: per creare un progetto, devi disporre del ruolo Autore progetto (roles/resourcemanager.projectCreator), che contiene l'autorizzazione resourcemanager.projects.create. Scopri come concedere i ruoli.
    • Crea un progetto Google Cloud :

      gcloud projects create PROJECT_ID

      Sostituisci PROJECT_ID con un nome per il progetto Google Cloud che stai creando.

    • Seleziona il progetto Google Cloud che hai creato:

      gcloud config set project PROJECT_ID

      Sostituisci PROJECT_ID con il nome del progetto Google Cloud .

  13. 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.

  14. Verifica che la fatturazione sia attivata per il tuo progetto Google Cloud .

  15. Abilita le API Sensitive Data Protection e Cloud KMS, se non sono già abilitate:

    Ruoli richiesti per abilitare le API

    Per abilitare le API, devi disporre dell'autorizzazione serviceusage.services.enable. Se hai creato il progetto, probabilmente disponi già di questa autorizzazione tramite il ruolo Proprietario (roles/owner). In caso contrario, puoi ottenere questa autorizzazione tramite il ruolo Amministratore utilizzo servizi (roles/serviceusage.serviceUsageAdmin). Scopri come concedere i ruoli.

    gcloud services enable dlp.googleapis.com cloudkms.googleapis.com

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.

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 di Sensitive Data Protection. In caso contrario, le richieste Sensitive Data Protection non andranno a buon fine.

Puoi trovare un elenco delle località supportate in Località di Sensitive Data Protection. Annota il nome della regione che hai scelto (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.

  1. Creare 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 le chiavi automatizzate 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: ENABLED
    

    In questo output, PROJECT_ID è l'ID del tuo progetto.

    Il valore di NAME è il nome completo della risorsa della chiave Cloud KMS. Prendi nota di questo valore perché è necessario per le richieste di deidentificazione e reidentificazione.

Crea una chiave AES con codifica 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=
    

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 con codifica base64 creata in Crea una chiave AES con codifica 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 chiave con wrapping.

Passaggi successivi