Cette page explique comment utiliser votre propre clé de chiffrement pour protéger vos magasins de données dans les régions multirégionales des États-Unis et de l'UE.
Par défaut, Vertex AI Agent Builder chiffre votre contenu stocké au repos. Vertex AI Agent Builder traite et gère ce chiffrement par défaut sans requérir aucune action supplémentaire de votre part.
Toutefois, si vous avez des exigences réglementaires ou de conformité spécifiques concernant les clés qui protègent vos données, vous pouvez utiliser des clés de chiffrement gérées par le client (CMEK) pour protéger vos ressources. Dans ce cas, vous utiliserez des clés Cloud KMS et suivrez la procédure décrite sur cette page. La clé est associée à un emplacement spécifique: l'emplacement multirégional des États-Unis ou l'emplacement multirégional de l'UE.
Les clés Cloud KMS permettent de chiffrer et de déchiffrer les données de vos datastores et applications. Pour en savoir plus sur Cloud KMS, consultez la documentation de Cloud Key Management Service.
Limites de Cloud KMS dans Vertex AI Agent Builder
Les limites suivantes s'appliquent aux clés CMEK (Cloud KMS) dans l'outil de création d'agents Vertex AI:
Les clés déjà appliquées à un data store ne peuvent pas être modifiées.
Si vous disposez de règles d'administration CMEK, vous devez créer des magasins de données à l'aide de l'API, et non de la console Google Cloud. La création de magasins de données à l'aide de la console Google Cloud échoue si les règles d'administration CMEK sont activées.
Une fois qu'une clé a été enregistrée, vous ne pouvez plus la désenregistrer ni la supprimer d'un data store.
Vous devez utiliser des applications et des magasins de données multirégionaux aux États-Unis ou dans l'UE (et non des applications et des magasins de données globaux). Pour en savoir plus sur les multirégions et la résidence des données, y compris les limites associées à l'utilisation d'emplacements non globaux, consultez les pages Emplacements Vertex AI Search ou Emplacements des agents Vertex AI.
Si vous devez enregistrer plusieurs clés pour un projet, contactez l'équipe responsable de votre compte Google pour demander une augmentation de quota pour les configurations CMEK, en expliquant pourquoi vous avez besoin de plusieurs clés.
L'utilisation d'un gestionnaire de clés externe (EKM) ou d'un module de sécurité matériel (HSM) avec CMEK est disponible en version GA avec une liste d'autorisation. Pour utiliser un EKM ou un HSM avec les CMEK, contactez l'équipe chargée de votre compte Google.
Les restrictions suivantes s'appliquent aux EKM ou aux HSM avec CMEK:
Votre quota EKM et HSM pour le chiffrement et le déchiffrement des appels doit être d'au moins 1 000 QPM. Pour savoir comment vérifier vos quotas, consultez Vérifier vos quotas Cloud KMS.
Si vous utilisez un EKM, la clé doit être accessible pendant plus de 90% de toute période de plus de 30 secondes. Si la clé n'est pas accessible pendant cette période, cela peut avoir un impact négatif sur l'indexation et la fraîcheur des résultats de recherche.
En cas de problèmes de facturation, de dépassement de quota persistant ou d'indisponibilité persistante pendant plus de 12 heures, le service désactive automatiquement la configuration Cmek associée à la clé EKM ou HSM.
Les magasins de données créés avant qu'une clé ne soit enregistrée dans le projet ne peuvent pas être protégés par la clé.
Pour Vertex AI Search, l'édition Enterprise est requise. Pour en savoir plus sur l'édition Enterprise, consultez la section À propos des fonctionnalités avancées.
Vous ne pouvez pas ajuster les modèles de recherche pour les data stores protégés par des clés CMEK.
Les data stores de recherche dans le secteur de la santé sont compatibles avec les CMEK. Toutefois, les autres entrepôts de données de connecteurs tiers et le connecteur périodique BigQuery ne sont pas compatibles avec les CMEK. Pour en savoir plus sur les data stores de recherche dans le secteur de la santé, consultez la page Créer un data store de recherche dans le secteur de la santé. Pour en savoir plus sur les connecteurs tiers, consultez Connecter une source de données tierce.
La rotation des clés n'est pas compatible avec les applications de recommandations. Si vous désactivez ou détruisez une version de clé qui protège un data store associé à une application de recommandations, l'application de recommandations ne fonctionne plus.
La rotation des clés n'est pas compatible avec les données analytiques. Si vous faites pivoter des clés pour un data store, les applications qui l'utilisent n'affichent plus d'analyse.
Les clés CMEK ne s'appliquent pas aux API RAG suivantes : check grounding (vérifier la mise à la terre), ranking (classement) et grounded generation (génération avec mise à la terre).
Avant de commencer
Assurez-vous de remplir les conditions préalables suivantes:
Une clé Cloud KMS symétrique dont la période de rotation est définie sur Never (Rotation manuelle). Consultez Créer un trousseau de clés et Créer une clé dans la documentation Cloud KMS.
Le rôle IAM de chiffreur/déchiffreur de clés cryptographiques (
roles/cloudkms.cryptoKeyEncrypterDecrypter
) sur la clé a été accordé à l'agent de service Discovery Engine. Pour obtenir des instructions générales sur l'ajout d'un rôle à un agent de service, consultez la section Attribuer ou révoquer un rôle unique.Le rôle IAM de chiffreur/déchiffreur de clés cryptographiques (
roles/cloudkms.cryptoKeyEncrypterDecrypter
) sur la clé a été accordé à l'agent de service Cloud Storage. Si ce rôle n'est pas accordé, l'importation de données pour les datastores protégés par CMEK échouera, car Discovery Engine ne pourra pas créer le bucket et le répertoire temporaires protégés par CMEK requis pour l'importation.Ne créez pas de data stores ni d'applications que vous souhaitez gérer avec votre clé tant que vous n'avez pas suivi les instructions d'enregistrement de la clé sur cette page.
Les fonctionnalités de l'édition Enterprise sont activées pour l'application. Consultez Activer ou désactiver l'édition Enterprise.
Enregistrer votre clé Cloud KMS
Pour enregistrer votre propre clé gérée pour Vertex AI Agent Builder, procédez comme suit:
Appelez la méthode
UpdateCmekConfig
avec la clé Cloud KMS que vous souhaitez enregistrer.curl -X PATCH \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -d '{"kms_key":"projects/KMS_PROJECT_ID/locations/KMS_LOCATION/keyRings/KEY_RING/cryptoKeys/KEY_NAME"}' \ "https://LOCATION-discoveryengine.googleapis.com/v1alpha/projects/PROJECT_ID/locations/LOCATION/cmekConfigs/CMEK_CONFIG_ID?set_default=SET_DEFAULT"
- KMS_PROJECT_ID: ID de votre projet contenant la clé. Le numéro de projet ne fonctionne pas.
- KMS_LOCATION: multirégion de votre clé KMS:
us
oueurope
. - KEY_RING: nom du trousseau de clés qui contient la clé.
- KEY_NAME : nom de la clé.
- PROJECT_ID: ID de votre projet contenant le magasin de données.
- LOCATION: emplacement multirégional de votre data store:
us
oueu
. - CMEK_CONFIG_ID: ID de la ressource CmekConfig.
- SET_DEFAULT: défini sur
true
pour utiliser la clé comme clé par défaut pour les datastores créés ultérieurement dans l'emplacement multirégional.
Voici un exemple d'appel et de réponse curl:
$ curl -X PATCH -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json -d '{"kms_key":"projects/key-project-456/locations/us/keyRings/my-key-ring/cryptoKeys/my-key"}' "https://us-discoveryengine.googleapis.com/v1alpha/projects/my-ai-app-project-123/locations/us/cmekConfigs/cmek-config-1?set_default=true" { "name": "projects/my-ai-app-project-123/locations/us/operations/update-cmek-config-56789", "metadata": { "@type": "type.googleapis.com/google.cloud.discoveryengine.v1alpha.UpdateCmekConfigMetadata" } }
Facultatif: enregistrez la valeur
name
renvoyée par la méthode et suivez les instructions de la section Obtenir des informations sur une opération de longue durée pour savoir quand l'opération est terminée.L'enregistrement d'une clé prend généralement quelques minutes.
Une fois l'opération terminée, les nouveaux magasins de données de cette multirégion sont protégés par la clé. Pour en savoir plus sur la création de data stores, consultez la page Créer un data store de recherche.
Afficher les clés Cloud KMS
Pour afficher une clé enregistrée pour Vertex AI Agent Builder, procédez comme suit:
Si vous disposez du nom de la ressource CmekConfig, appelez la méthode
GetCmekConfig
:curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://LOCATION-discoveryengine.googleapis.com/v1alpha/projects/PROJECT_ID/locations/LOCATION/cmekConfigs/CMEK_CONFIG_ID"
- LOCATION: emplacement multirégional de votre data store:
us
oueu
. - PROJECT_ID: ID de votre projet contenant les données
- CMEK_CONFIG_ID: ID de la ressource CmekConfig.
Voici un exemple d'appel et de réponse curl:
$ curl -X GET -H "Authorization: Bearer $(gcloud auth print-access-token)" "https://us-discoveryengine.googleapis.com/v1alpha/projects/my-ai-app-project-123/locations/us/cmekConfigs/cmek-config-1" { "name": "projects/my-ai-app-project-123/locations/us/cmekConfigs/cmek-config-1", "kms_key": "projects/key-project-456/locations/us/keyRings/my-key-ring/cryptoKeys/my-key" "state": "ACTIVE" "is_default": true }
- LOCATION: emplacement multirégional de votre data store:
Si vous ne connaissez pas le nom de la ressource CmekConfig, appelez la méthode
ListCmekConfigs
:curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://LOCATION-discoveryengine.googleapis.com/v1alpha/projects/PROJECT_ID/locations/LOCATION/cmekConfigs"
- LOCATION: emplacement multirégional de votre data store:
us
oueu
. - PROJECT_ID: ID de votre projet contenant les données
Voici un exemple d'appel et de réponse curl:
$ curl -X GET -H "Authorization: Bearer $(gcloud auth print-access-token)" "https://us-discoveryengine.googleapis.com/v1alpha/projects/my-ai-app-project-123/locations/us/cmekConfigs" { "cmek_configs": [ { "name": "projects/my-ai-app-project-123/locations/us/cmekConfigs/cmek-config-1", "kms_key": "projects/key-project-456/locations/us/keyRings/my-key-ring/cryptoKeys/my-key" "state": "ACTIVE" "is_default": true } { "name": "projects/my-ai-app-project-123/locations/us/cmekConfigs/cmek-config-2", "kms_key": "projects/key-project-456/locations/us/keyRings/my-key-ring/cryptoKeys/my-key-2" "state": "ACTIVE" } ] }
- LOCATION: emplacement multirégional de votre data store:
Facultatif: Vérifier qu'un data store est protégé par une clé
Les data stores créés avant l'enregistrement de votre clé ne sont pas protégés par celle-ci. Si vous souhaitez vérifier qu'un data store particulier est protégé par votre clé, procédez comme suit:
Exécutez la commande curl suivante sur le data store:
curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -H "x-goog-user-project: PROJECT_ID" \ "https://LOCATION-discoveryengine.googleapis.com/v1alpha/projects/PROJECT_ID/locations/LOCATION/collections/default_collection/dataStores/DATA_STORE_ID"
- LOCATION: emplacement multirégional de votre data store:
us
oueu
. - PROJECT_ID: ID de votre projet contenant le magasin de données.
- DATA_STORE_ID: ID du data store.
Voici un exemple d'appel curl:
curl -X GET -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" -H "x-goog-user-project: my-ai-app-project-123" "https://us-discoveryengine.googleapis.com/v1alpha/projects/my-ai-app-project-123/locations/us/collections/default_collection/dataStores/my-data-store-1"
- LOCATION: emplacement multirégional de votre data store:
Examinez la sortie de la commande: si le champ
cmekConfig
figure dans la sortie et que le champkmsKey
affiche la clé que vous avez enregistrée, le data store est protégé par la clé.Voici un exemple de réponse:
{ "name": "projects/969795412903/locations/us/collections/default_collection/dataStores/my-data-store-1", "displayName": "my-data-store-1", "industryVertical": "GENERIC", "createTime": "2023-09-05T21:20:21.520552Z", "solutionTypes": [ "SOLUTION_TYPE_SEARCH" ], "defaultSchemaId": "default_schema", "cmekConfig": { "name": "projects/969795412903/locations/us/collections/default_collection/dataStores/my-data-store-1/cmekConfigs/cmek-config-1", "kmsKey": "projects/my-ai-app-project-123/locations/us/keyRings/my-key-ring/cryptoKeys/my-key" } }
Rotation des clés
Lorsque vous effectuez une rotation de clés, vous créez une nouvelle version de la clé et définissez cette nouvelle version comme version principale. Laissez la version d'origine de la clé activée pendant un certain temps avant de la désactiver. Cela permet à toutes les opérations de longue durée qui pourraient utiliser l'ancienne clé de se terminer.
La procédure suivante décrit comment faire pivoter les clés d'un data store Vertex AI Agent Builder. Pour en savoir plus sur la rotation des clés, consultez la section Rotation des clés du guide Cloud KMS.
Important:Ne faites pas pivoter les clés sur les magasins de données associés aux applications de recommandations ni aux applications nécessitant des données analytiques. Consultez la section Limites de Cloud KMS dans Vertex AI Agent Builder.
Réenregistrez votre clé. Pour ce faire, répétez l'étape 1 de la section Enregistrer votre clé Cloud KMS.
Pour effectuer les opérations suivantes, consultez les instructions de la section Gérer les clés du guide Cloud KMS:
Créez une version de clé, activez-la et définissez-la comme version principale.
Laissez l'ancienne version de clé activée.
Après environ une semaine, désactivez l'ancienne version de clé et assurez-vous que tout fonctionne comme avant.
À une date ultérieure, lorsque vous êtes certain qu'aucun problème n'a été causé par la désactivation de l'ancienne version de clé, vous pouvez la détruire.
Si une clé est désactivée ou révoquée
Si une clé est désactivée ou si les autorisations associées sont révoquées, le data store cesse d'ingérer et de diffuser des données sous 15 minutes. Toutefois, la réactivation d'une clé ou la restauration des autorisations prend beaucoup de temps. Il peut s'écouler jusqu'à 24 heures avant que le data store ne puisse reprendre la diffusion des données.
Par conséquent, ne désactivez une clé que si nécessaire. La désactivation et l'activation d'une clé sur un data store est une opération fastidieuse. Par exemple, si vous désactivez et activez une clé à plusieurs reprises, le data store mettra beaucoup de temps à atteindre un état protégé. Désactiver une clé et la réactiver immédiatement par la suite peut entraîner des jours d'indisponibilité, car la clé est d'abord désactivée du data store, puis réactivée.