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

Par défaut, Dialogflow chiffre le contenu client au repos. Dialogflow gère le chiffrement sans intervention de votre part. Cette option est appelée chiffrement par défaut de Google.

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. 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. Cloud KMS vous permet également d'afficher les journaux d'audit et de 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 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

Toutes les données au repos des agents de conversation (Dialogflow CX) peuvent être protégées par des CMEK.

Limites

  • La rotation des clés est prise en charge, mais pas le rechiffrement des données. Autrement dit, le rechiffrement de données précédemment chiffrées avec une nouvelle version de clé n'est pas pris en charge.
  • Les régions suivantes ne sont pas compatibles :
    • global
    • eu
  • 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 des projets non intégrés à CMEK ne peuvent pas être intégrées à CMEK rétroactivement. Nous vous recommandons plutôt d'exporter et de restaurer les ressources dans un nouveau projet pour CMEK.
  • Vertex AI Agent Builder présente certaines limites Cloud KMS.

Créer des clés

Pour créer des clés, vous devez utiliser le service KMS. Pour obtenir des instructions, consultez la section Créer des clés symétriques. Lorsque vous créez ou choisissez une clé, vous devez configurer les éléments suivants :

  • Assurez-vous de sélectionner l'emplacement que vous utilisez pour votre agent. Sinon, les requêtes échoueront.

Configurer un agent pour utiliser vos clés

Lorsque vous créez un agent, vous pouvez spécifier son emplacement et indiquer si l'agent utilisera une clé gérée par Google ou la clé gérée par le client déjà configurée pour cet emplacement. Faites votre choix à ce stade.

Prérequis

  1. Créez le compte de service CMEK CCAI pour votre projet avec Google Cloud CLI. 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 sera créé. Il ne sera pas renvoyé dans la réponse de création, mais aura 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 vous assurer que le service dispose des autorisations nécessaires pour chiffrer et déchiffrer à l'aide de 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

Configurer une clé pour l'emplacement des agents de conversation (Dialogflow CX)

  1. Utilisez l'API InitializeEncryptionSpec pour configurer la clé.

    Vous devrez fournir les variables suivantes:

    • PROJECT_ID : ID de votre projet Google Cloud.
    • LOCATION_ID: emplacement que vous avez choisi pour activer CMEK dans les agents conversationnels (Dialogflow CX).
    • KMS_KEY_RING: trousseau de clés dans lequel votre clé KMS a été créée. (L'emplacement du trousseau de clés, comme 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 qui sera utilisée pour chiffrer et déchiffrer les données des agents conversationnels (Dialogflow CX) à 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"

    Vous devriez recevoir une réponse JSON de ce type :

    {
      "name": "projects/PROJECT_ID/locations/LOCATION_ID/operations/OPERATION_ID"
    }
  2. Utilisez l'API GetOperation pour vérifier le résultat de l'opération de longue durée.

    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"

Vérifier les paramètres CMEK

Utilisez l'API GetEncryptionSpec pour vérifier la clé de chiffrement configurée pour un emplacement.

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 des agents conversationnels (Dialogflow CX) à la clé, vous pouvez désactiver la version de la clé KMS ou supprimer le rôle Chiffreur/Déchiffreur de CryptoKeys Cloud KMS du compte de service de la clé KMS.

Une fois la révocation de la clé effectuée, les données chiffrées ne seront plus accessibles aux agents conversationnels (Dialogflow CX) et le service ne sera plus opérationnel tant que les autorisations de la clé ne seront pas rétablies.