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.

Se vuoi controllare le tue chiavi di crittografia, puoi utilizzare le chiavi di crittografia gestite dal cliente (CMEK) in Cloud KMS con i servizi integrati con CMEK, tra cui Dialogflow. L'utilizzo delle chiavi Cloud KMS ti consente di controllare il loro livello di protezione, la posizione, la pianificazione della rotazione, le autorizzazioni di utilizzo e accesso e i confini di crittografia. L'utilizzo di Cloud KMS ti consente inoltre di visualizzare gli audit log e controllare i cicli di vita delle chiavi. Invece che essere di proprietà e gestite da Google, le chiavi di crittografia della chiave (KEK) simmetriche che proteggono i tuoi dati sono sotto il tuo controllo e vengono gestite in Cloud KMS.

Dopo aver configurato le risorse con i 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 at-rest degli agenti Conversational Agents (Dialogflow CX) possono essere protetti con le CMEK.

Limitazioni

  • La rotazione delle chiavi è supportata, ma non la ricodificazione dei dati. In altre parole, la crittografia dei dati criptati in precedenza con una nuova versione della chiave non è supportata.
  • Le seguenti regioni non sono supportate:
    • global
    • eu
  • 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 non integrati con CMEK non possono essere integrate con CMEK in modo retroattivo. È invece consigliabile esportare e ripristinare le risorse in un nuovo progetto per CMEK.
  • Vertex AI Agent Builder presenta alcune limitazioni di Cloud KMS

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 il tuo agente, altrimenti le richieste non andranno a buon fine.

Configurare un agente per utilizzare le tue chiavi

Quando crei un agente, puoi specificarne la posizione e indicare se l'agente 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 l'account di servizio CMEK CCAI per il tuo progetto con Google Cloud CLI. Per saperne di più, consulta la documentazione di gcloud services identity.

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

    Verrà creato l'account di servizio. Non verrà restituito nella risposta alla 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: l'ID del tuo progetto Google Cloud.
    • LOCATION_ID: la posizione scelta 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 attivi CMEK.
    • KMS_KEY_ID: il nome della chiave KMS che verrà utilizzata per criptare e decriptare i dati degli agenti conversazionali (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"
  

Revocare le chiavi

Per revocare l'accesso alla chiave da parte degli agenti conversazionali (Dialogflow CX), 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 non saranno più accessibili agli agenti di conversazione (Dialogflow CX) e il servizio non sarà più operativo finché le autorizzazioni delle chiavi non verranno ripristinate.