Chiavi di crittografia gestite dal cliente (CMEK)

Per impostazione predefinita, Dialogflow CX cripta i contenuti inattivi dei clienti. Dialogflow CX gestisce la crittografia senza che tu debba eseguire ulteriori azioni. 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 e audit rigorosi dell'accesso alle chiavi.

Se vuoi controllare le 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 località, la pianificazione della rotazione, le autorizzazioni di utilizzo e di accesso e i limiti crittografici. Con Cloud KMS puoi anche visualizzare gli audit log 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 CMEK, l'esperienza di accesso alle risorse di 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

Tutti i dati inattivi degli agenti di Dialogflow CX possono essere protetti con le CMEK.

Limitazioni

Crea chiavi

Per creare le chiavi, utilizza il servizio KMS. Per le istruzioni, consulta Creare chiavi simmetriche. Quando crei o scegli una chiave, devi configurare quanto segue:

  • Assicurati di selezionare la località che utilizzi per l'agente, altrimenti le richieste non andranno a buon fine.

Configura un agente per utilizzare le tue chiavi

Quando crei un agente, puoi specificarne la località e se l'agente utilizzerà una chiave gestita da Google o la chiave gestita dal cliente già configurata per quella località. Esegui le selezioni in questo momento.

Prerequisiti

  1. Crea il service account CCAI CMEK per il tuo progetto con Google Cloud CLI. Per saperne di più, consulta la documentazione relativa all'identità dei servizi gcloud.

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

    Verrà creato il account di servizio. Non verrà restituito nella risposta di creazione, ma avrà il seguente formato:

    service-PROJECT_NUMBER@gcp-sa-ccai-cmek.iam.gserviceaccount.com
  2. Concedi al service account CCAI CMEK il ruolo Cloud KMS CryptoKey Encrypter/Decrypter per assicurarti che il servizio disponga delle autorizzazioni per 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

Configura una chiave per la località di Dialogflow CX

  1. Utilizza l'API InitializeEncryptionSpec per configurare la chiave.

    Dovrai fornire le seguenti variabili:

    • PROJECT_ID: l' Google Cloud ID progetto.
    • LOCATION_ID: la località che hai scelto per abilitare CMEK in Dialogflow CX.
    • KMS_KEY_RING: le chiavi automatizzate in cui è stata creata la chiave KMS. (La località nelle chiavi automatizzate, ad esempio projects/PROJECT_ID/locations/LOCATION_ID/keyRings/KMS_KEY_RING, deve corrispondere alla località in cui stai abilitando CMEK.)
    • KMS_KEY_ID: il nome della chiave KMS che verrà 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"

    Dovresti ricevere una risposta JSON simile alla seguente:

    {
      "name": "projects/PROJECT_ID/locations/LOCATION_ID/operations/OPERATION_ID"
    }
  2. Utilizza l'API GetOperation per controllare il risultato dell'operazione a lunga esecuzione.

    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"

Controlla le impostazioni CMEK

Utilizza l'API GetEncryptionSpec per controllare la chiave di crittografia configurata per una località.

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 le chiavi

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

Dopo la revoca della chiave, i dati criptati diventeranno inaccessibili a Dialogflow CX e il servizio non sarà più in uno stato operativo finché le autorizzazioni della chiave non verranno ripristinate.