Chiavi di crittografia gestite dal cliente (CMEK)

Per impostazione predefinita, Dialogflow cripta i contenuti inattivi dei clienti. Dialogflow 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. 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 consente anche di visualizzare i log di controllo e controllare i cicli di vita delle chiavi. Anziché essere di proprietà di Google e gestite da Google, le chiavi di crittografia delle chiavi (KEK) simmetriche che proteggono i tuoi dati sono controllate e gestite da te in Cloud KMS.

Dopo aver configurato le risorse con le chiavi CMEK, l'esperienza di accesso alle risorse Dialogflow è 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 dell'agente Conversational Agents (Dialogflow CX) possono essere protetti con le chiavi CMEK.

Limitazioni

  • La rotazione delle chiavi è supportata, ma la ricrittografia dei dati no. ovvero 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 posizione 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 in modo retroattivo. Ti consigliamo invece di esportare e ripristinare le risorse in un nuovo progetto per CMEK.
  • AI Applications presenta alcune limitazioni di Cloud KMS

Crea chiavi

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

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

Configurare un agente per utilizzare le chiavi

Quando crei un agente, puoi specificare la posizione dell'agente e se utilizzerà una chiave gestita da Google o una chiave gestita dal cliente già configurata per quella posizione. Effettua le selezioni in questo momento.

Prerequisiti

  1. Crea il service account CMEK CCAI per il tuo progetto con Google Cloud CLI. Per saperne di più, consulta la documentazione sull'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 all'account di servizio CMEK di CCAI il ruolo Autore crittografia/decrittografia CryptoKey Cloud KMS 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 posizione di Conversational Agents (Dialogflow CX)

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

    Dovrai fornire le seguenti variabili:

    • PROJECT_ID: il tuo ID progetto Google Cloud .
    • LOCATION_ID: la località che hai scelto per attivare CMEK in Conversational Agents (Dialogflow CX).
    • KMS_KEY_RING: il keyring 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 che verrà utilizzata per criptare e decriptare i dati di Conversational Agents (Dialogflow CX) nella posizione 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"

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

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

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