Par défaut, Dialogflow CX chiffre le contenu client au repos. Dialogflow CX gère le chiffrement pour vous sans que vous ayez à effectuer d'actions supplémentaires. 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 et.
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'expérience d'accès à vos ressources Dialogflow CX est semblable à celle 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 compatible, mais pas le rechiffrement des données. Le rechiffrement des données précédemment chiffrées avec une nouvelle version de clé n'est pas compatible.
- Les régions suivantes ne sont pas
compatibles :
global
- Une seule 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 limites concernant 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é, assurez-vous de 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 :
- Ouvrez la console Conversational Agents.
- Sélectionnez votre projet.
- Sélectionnez votre agent.
- Dans le menu de navigation, cliquez sur Paramètres, puis accédez à l'onglet Sécurité.
- Cliquez sur Gérer les paramètres de sécurité pour être redirigé vers la console CCAI.
- Dans la console CCAI, accédez à l'onglet CMEK.
- Cliquez sur Vérifier ou créer un compte de service.
- 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 :
- Accédez à la page Cloud KMS.
- Sélectionnez le trousseau de clés que vous avez créé.
- Sélectionnez la clé que vous avez créée dans ce trousseau de clés.
- Accédez à l'onglet Autorisations.
- Cliquez sur Accorder l'accès.
- Dans le champ Nouveaux comptes principaux, saisissez le compte de service Dialogflow que vous avez identifié à l'étape précédente.
- Dans la liste Sélectionner un rôle, sélectionnez Chiffreur/Déchiffreur de CryptoKeys Cloud KMS.
- Cliquez sur Enregistrer.
Copier le nom de ressource de la clé
Pour copier le nom de ressource de la clé :
- Accédez à la page des détails de la clé KMS.
- 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 :
- Revenez à l'onglet CMEK de la console CCAI.
- Collez le nom de ressource de la clé copiée dans le champ Clé de l'emplacement où vous souhaitez activer CMEK.
- Cliquez sur Enregistrer.
Cette action lance une opération de longue durée (LRO) pour activer CMEK pour l'emplacement choisi. Ce processus prend deux à trois 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 CMEK pour plusieurs régions.
Utilisez Google Cloud CLI pour créer le compte de service CCAI CMEK 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 présente le format suivant :
service-PROJECT_NUMBER@gcp-sa-ccai-cmek.iam.gserviceaccount.comAccordez au compte de service CCAI CMEK 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
Configurer une clé et vérifier les paramètres à l'aide de l'API
Pour configurer une clé pour l'emplacement Dialogflow CX, appelez l'API
InitializeEncryptionSpecet fournissez les variables suivantes :PROJECT_ID: ID du projet. Google CloudLOCATION_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 queprojects/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 à 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 est semblable à la suivante :
{ "name": "projects/PROJECT_ID/locations/LOCATION_ID/operations/OPERATION_ID" }
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"
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 CryptoKeys 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.