Clés de chiffrement gérées par le client (CMEK)

Par défaut, Dialogflow CX chiffre le contenu client au repos. Dialogflow CX gère le chiffrement sans intervention de votre part. Cette option est appelée chiffrement par défaut de Google. Le chiffrement par défaut de Google utilise les mêmes systèmes de gestion de clés renforcés que nous utilisons pour nos propres données chiffrées. Ces systèmes comprennent des audits et des contrôles stricts d'accès aux clés.

Si vous souhaitez contrôler vos clés de chiffrement, vous pouvez utiliser des clés de chiffrement gérées par le client (CMEK) dans Cloud KMS avec des services bénéficiant d'une intégration des CMEK, y compris Dialogflow CX. L'utilisation de clés Cloud KMS vous permet de contrôler leur niveau de protection, leur emplacement, leur calendrier de rotation, leurs autorisations d'utilisation et d'accès, ainsi que leurs limites cryptographiques. Grâce à Cloud KMS, vous pouvez également afficher les journaux d'audit et contrôler les cycles de vie des clés. Au lieu de laisser Google posséder et gérer les clés de chiffrement de clés (KEK) symétriques qui protègent vos données, c'est vous qui vous chargez de cette tâche dans Cloud KMS.

Une fois que vous avez configuré vos ressources avec des CMEK, l'accès à vos ressources Dialogflow CX est semblable à celui du chiffrement par défaut de Google. Pour en savoir plus sur les options de chiffrement, consultez Clés de chiffrement gérées par le client (CMEK).

Données protégées

Vous pouvez protéger toutes les données au repos de l'agent Dialogflow CX avec des CMEK.

Limites

  • La rotation des clés est acceptée, mais pas le rechiffrement des données. Il n'est pas possible de rechiffrer des données déjà chiffrées avec une nouvelle version de clé.
  • Les régions suivantes ne sont pas acceptées :
    • global
  • Une clé doit être utilisée par emplacement de projet.
  • Pour restaurer un agent avec CMEK activé, vous devez choisir l'option Cloud Storage.
  • Les ressources existantes dans les projets non intégrés à CMEK ne peuvent pas être intégrées à CMEK de manière rétroactive. À la place, exportez et restaurez les ressources dans un nouveau projet pour CMEK.
  • Vertex AI Agent Builder présente certaines limitations de Cloud Key Management Service.

Créer des clés

Pour créer des clés, utilisez Cloud KMS. Pour obtenir des instructions, consultez la section Créer des clés symétriques. Lorsque vous créez ou choisissez une clé, veillez à configurer les éléments suivants :

  • Sélectionnez l'emplacement que vous utilisez pour votre agent, car les requêtes échouent si les emplacements ne correspondent pas.

Identifier le compte de service Dialogflow

Pour identifier le compte de service Dialogflow :

  1. Ouvrez la console Conversational Agents.
  2. Sélectionnez votre projet.
  3. Sélectionnez votre agent.
  4. Dans le menu de navigation, cliquez sur Paramètres, puis accédez à l'onglet Sécurité.
  5. Cliquez sur Gérer les paramètres de sécurité pour être redirigé vers la console CCAI.
  6. Dans la console CCAI, accédez à l'onglet CMEK.
  7. Cliquez sur Vérifier ou créer un compte de service.
  8. Notez le nom du compte de service affiché (par exemple, service-665989447347@gcp-sa-ccai-cmek.IAM.gserviceaccount.com).

Accorder des autorisations au compte de service

Pour accorder des autorisations au compte de service :

  1. Accédez à la page Cloud KMS.
  2. Sélectionnez le trousseau de clés que vous avez créé.
  3. Sélectionnez la clé que vous avez créée dans ce trousseau.
  4. Accédez à l'onglet Autorisations.
  5. Cliquez sur Accorder l'accès.
  6. Dans le champ Nouveaux comptes principaux, saisissez le compte de service Dialogflow que vous avez identifié à l'étape précédente.
  7. Dans la liste Sélectionner un rôle, sélectionnez Chiffreur/Déchiffreur de CryptoKey Cloud KMS.
  8. Cliquez sur Enregistrer.

Copier le nom de ressource de la clé

Pour copier le nom de ressource de la clé :

  1. Accédez à la page d'informations détaillées sur la clé KMS.
  2. Cliquez sur le menu Action, puis sélectionnez Copier le nom de la ressource.

Cette action copie le chemin d'accès complet de votre clé KMS (par exemple, projects/<var>PROJECT_ID</var>/locations/<var>LOCATION_ID</var>/keyRings/<var>KEY_RING</var>/cryptoKeys/<var>KEY_ID</var>).

Activer CMEK dans Dialogflow

Pour activer CMEK dans Dialogflow :

  1. Revenez à l'onglet CMEK dans la console CCAI.
  2. Collez le nom de ressource de la clé copiée dans le champ Clé pour l'emplacement où vous souhaitez activer CMEK.
  3. Cliquez sur Enregistrer.

Cela lance une opération de longue durée (LRO) pour activer la CMEK pour l'emplacement choisi. Ce processus prendra 2 à 3 minutes.

Configurer un agent pour utiliser vos clés

Lorsque vous créez un agent, spécifiez son emplacement et indiquez si vous souhaitez utiliser une Google-managed encryption key ou une CMEK pour cet emplacement.

Configurer CMEK à l'aide de la CLI

Vous pouvez également utiliser les commandes suivantes pour configurer CMEK. Cela est utile lorsque vous configurez le service pour plusieurs régions.

  1. Utilisez la Google Cloud CLI pour créer le compte de service CMEK CCAI pour votre projet. Pour en savoir plus, consultez la documentation sur l'identité des services gcloud.

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

    Le compte de service est créé. Il n'est pas renvoyé dans la réponse de création, mais il a le format suivant :

     service-PROJECT_NUMBER@gcp-sa-ccai-cmek.iam.gserviceaccount.com
  2. Accordez au compte de service CMEK CCAI le rôle Chiffreur/Déchiffreur de CryptoKeys Cloud KMS pour permettre au service de chiffrer et de déchiffrer avec votre clé.

     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

Utiliser l'API pour configurer une clé et vérifier les paramètres

  1. Pour configurer une clé pour l'emplacement Dialogflow CX, appelez l'API InitializeEncryptionSpec et fournissez les variables suivantes :

    • PROJECT_ID : ID du projet Google Cloud .
    • LOCATION_ID : emplacement que vous sélectionnez pour activer CMEK dans Dialogflow CX.
    • KMS_KEY_RING : trousseau de clés dans lequel votre clé KMS a été créée. L'emplacement dans le trousseau de clés, tel que projects/PROJECT_ID/locations/LOCATION_ID/keyRings/KMS_KEY_RING, doit correspondre à l'emplacement où vous activez CMEK.
    • KMS_KEY_ID : nom de votre clé KMS utilisée pour chiffrer et déchiffrer les données Dialogflow CX dans l'emplacement sélectionné.

    Exemple :

     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 réponse JSON ressemble à ce qui suit :

     {
       "name": "projects/PROJECT_ID/locations/LOCATION_ID/operations/OPERATION_ID"
     }
  2. Pour obtenir le résultat de l'opération de longue durée (LRO), appelez l'API GetOperation.

    Exemple :

     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. Pour récupérer la clé de chiffrement configurée pour un emplacement, appelez l'API GetEncryptionSpec.

    Exemple :

     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"

Révoquer des clés

Pour révoquer l'accès de Dialogflow CX à la clé, vous pouvez désactiver la version de la clé KMS ou supprimer le rôle Chiffreur/Déchiffreur de CryptoKey Cloud KMS du compte de service de la clé KMS.

Une fois la clé révoquée, les données chiffrées deviennent inaccessibles à Dialogflow CX, et le service n'est plus opérationnel tant que les autorisations de la clé ne sont pas rétablies.