Chiavi di crittografia gestite dal cliente (CMEK)

Per impostazione predefinita, Dialogflow CX cripta i contenuti inattivi dei clienti. Dialogflow CX gestisce la crittografia per conto tuo senza che tu debba fare altro. Questa opzione è denominata crittografia predefinita di Google. La crittografia predefinita di Google utilizza gli stessi sistemi avanzati di gestione delle chiavi che utilizziamo per i nostri dati criptati. Questi sistemi includono controlli di accesso alle chiavi e audit rigorosi.

Se vuoi controllare le tue chiavi di crittografia, puoi utilizzare le chiavi di crittografia gestite dal cliente (CMEK) in Cloud KMS con servizi integrati con CMEK, tra cui Dialogflow CX. L'utilizzo delle chiavi Cloud KMS ti consente di controllare il livello di protezione, la posizione, la pianificazione della rotazione, l'utilizzo e le autorizzazioni di accesso e i limiti crittografici. L'utilizzo di Cloud KMS ti consente anche di visualizzare i log di controllo e controllare i cicli di vita delle chiavi. Invece di Google, sei tu ad avere la proprietà e la gestione delle chiavi di crittografia della chiave (KEK) simmetriche che proteggono i tuoi dati. Puoi controllare e gestire queste chiavi in Cloud KMS.

Dopo aver configurato le risorse con le chiavi CMEK, l'esperienza di accesso alle risorse Dialogflow CX è simile all'utilizzo della crittografia predefinita di Google. Per saperne di più sulle opzioni di crittografia, consulta Chiavi di crittografia gestite dal cliente (CMEK).

Dati protetti

Puoi proteggere tutti i dati at-rest dell'agente Dialogflow CX con le chiavi CMEK.

Limitazioni

  • La rotazione delle chiavi è supportata, ma la nuova crittografia dei dati no. La nuova crittografia dei dati criptati in precedenza con una nuova versione della chiave non è supportata.
  • Le seguenti regioni non sono supportate:
    • global
  • Deve essere utilizzata una chiave per ogni località del progetto.
  • Per ripristinare un agente con CMEK abilitato, devi scegliere l'opzione Cloud Storage.
  • Le risorse esistenti nei progetti integrati non CMEK non possono essere integrate con CMEK retroattivamente. Esporta e ripristina le risorse in un nuovo progetto per CMEK.
  • Vertex AI Agent Builder presenta alcune limitazioni di Cloud Key Management Service.

Crea chiavi

Per creare le chiavi, utilizza Cloud KMS. Per le istruzioni, vedi Creazione di chiavi simmetriche. Quando crei o scegli una chiave, assicurati di configurare quanto segue:

  • Seleziona la posizione che utilizzi per il tuo agente, perché le richieste non vanno a buon fine se le posizioni non corrispondono.

Identificare il account di servizio Dialogflow

Per identificare il account di servizio Dialogflow:

  1. Apri la console Conversational Agents.
  2. Seleziona il progetto.
  3. Seleziona l'agente.
  4. Nel menu di navigazione, fai clic su Impostazioni e poi sulla scheda Sicurezza.
  5. Fai clic su Gestisci impostazioni di sicurezza per essere reindirizzato alla console CCAI.
  6. Nella console CCAI, vai alla scheda CMEK.
  7. Fai clic su Controlla o crea service account.
  8. Prendi nota del nome del account di servizio visualizzato (ad es. service-665989447347@gcp-sa-ccai-cmek.IAM.gserviceaccount.com).

Concedi le autorizzazioni al account di servizio

Per concedere le autorizzazioni al account di servizio:

  1. Vai alla pagina Cloud KMS.
  2. Seleziona il keyring che hai creato.
  3. Seleziona la chiave che hai creato all'interno del keyring.
  4. Vai alla scheda Autorizzazioni.
  5. Fai clic su Concedi l'accesso.
  6. Nel campo Nuove entità, inserisci il service account Dialogflow che hai identificato nel passaggio precedente.
  7. Nell'elenco Seleziona un ruolo, seleziona Cloud KMS CryptoKey Encrypter/Decrypter.
  8. Fai clic su Salva.

Copia il nome risorsa della chiave

Per copiare il nome risorsa della chiave:

  1. Vai alla pagina dei dettagli della chiave KMS.
  2. Fai clic sul menu Azione e seleziona Copia nome risorsa.

Questa azione copia il percorso completo della chiave KMS (ad esempio, projects/<var>PROJECT_ID</var>/locations/<var>LOCATION_ID</var>/keyRings/<var>KEY_RING</var>/cryptoKeys/<var>KEY_ID</var>).

Attivare CMEK in Dialogflow

Per abilitare CMEK in Dialogflow:

  1. Torna alla scheda CMEK nella console CCAI.
  2. Incolla il nome risorsa della chiave copiato nel campo Chiave per la località in cui vuoi abilitare CMEK.
  3. Fai clic su Salva.

Viene avviata un'operazione a lunga esecuzione (LRO) per abilitare CMEK per la località scelta. Questo processo richiede 2-3 minuti.

Configura un agente per utilizzare le tue chiavi

Quando crei un agente, specifica la relativa posizione e se utilizzare una chiave Google-managed encryption key o CMEK per quella posizione.

Utilizzo dell'interfaccia a riga di comando per configurare CMEK

In alternativa, puoi utilizzare i seguenti comandi per configurare CMEK. Ciò è utile quando lo configuri per più regioni.

  1. Utilizza Google Cloud CLI per creare il account di servizio CMEK di CCAI per il tuo progetto. Per saperne di più, consulta la documentazione sull'identità dei servizi gcloud.

     gcloud beta services identity create --service=dialogflow.googleapis.com --project=PROJECT_ID

    Il account di servizio viene creato. Non viene restituito nella risposta di creazione, ma ha il seguente formato:

     service-PROJECT_NUMBER@gcp-sa-ccai-cmek.iam.gserviceaccount.com
  2. Concedi al account di servizio CMEK di CCAI il ruolo Cloud KMS CryptoKey Encrypter/Decrypter per consentire al servizio di criptare e decriptare con la tua chiave.

     gcloud kms keys add-iam-policy-binding KMS_KEY_ID \
     --project=PROJECT_ID \
     --location=LOCATION_ID \
     --keyring=KMS_KEY_RING \
     --member=serviceAccount:service-PROJECT_NUMBER@gcp-sa-ccai-cmek.iam.gserviceaccount.com \
     --role=roles/cloudkms.cryptoKeyEncrypterDecrypter

Utilizzo dell'API per configurare una chiave e controllare le impostazioni

  1. Per configurare una chiave per la posizione di Dialogflow CX, chiama l'API InitializeEncryptionSpec e fornisci le seguenti variabili:

    • PROJECT_ID: L'ID progetto Google Cloud .
    • LOCATION_ID: la località selezionata per abilitare CMEK in Dialogflow CX.
    • KMS_KEY_RING: le chiavi automatizzate in cui è stata creata la chiave KMS. La posizione nel portachiavi, ad esempio projects/PROJECT_ID/locations/LOCATION_ID/keyRings/KMS_KEY_RING, deve corrispondere alla posizione in cui stai attivando CMEK.
    • KMS_KEY_ID: il nome della chiave KMS utilizzata per criptare e decriptare i dati di Dialogflow CX nella località selezionata.

    Ad esempio:

     curl -X POST \
        -H "Authorization: Bearer $(gcloud auth print-access-token)" \
        -H "Content-Type: application/json; charset=utf-8" \
        -d "{ encryption_spec: { kms_key: 'projects/PROJECT_ID/locations/LOCATION_ID/keyRings/KMS_KEY_RING/cryptoKeys/KMS_KEY_ID' } }" \
        "https://LOCATION_ID-dialogflow.googleapis.com/v2/projects/PROJECT_ID/locations/LOCATION_ID/encryptionSpec:initialize"

    La risposta JSON è simile alla seguente:

     {
       "name": "projects/PROJECT_ID/locations/LOCATION_ID/operations/OPERATION_ID"
     }
  2. Per ottenere il risultato dell'operazione a lunga esecuzione (LRO), chiama l'API GetOperation.

    Ad esempio:

     curl -X GET \
        -H "Authorization: Bearer $(gcloud auth print-access-token)" \
        "https://LOCATION_ID-dialogflow.googleapis.com/v2/projects/PROJECT_ID/locations/LOCATION_ID/operations/OPERATION_ID"
  3. Per recuperare la chiave di crittografia configurata per una località, chiama l'API GetEncryptionSpec.

    Ad esempio:

     curl -X GET \
        -H "Authorization: Bearer $(gcloud auth print-access-token)" \
        "https://LOCATION_ID-dialogflow.googleapis.com/v2/projects/PROJECT_ID/locations/LOCATION_ID/encryptionSpec"

Revoca chiavi

Per revocare l'accesso di Dialogflow CX alla chiave, puoi disattivare la versione della chiave KMS o rimuovere il ruolo Autore crittografia/decrittografia CryptoKey Cloud KMS del account di servizio dalla chiave KMS.

Dopo la revoca della chiave, i dati criptati diventano inaccessibili a Dialogflow CX e il servizio non è più operativo finché le autorizzazioni della chiave non vengono reintegrate.