Clés de chiffrement gérées par le client

Cette page explique comment utiliser votre propre clé de chiffrement pour protéger vos données dans les emplacements multirégionaux États-Unis et UE.

Par défaut, Vertex AI Agent Builder chiffre vos contenus stockés 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 Cloud KMS et suivez 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.

  • Une fois qu'une clé a été enregistrée, elle ne peut pas être désenregistrée ni supprimée dans le data store.

  • Vous devez utiliser des applications et des data stores multirégionaux situés aux États-Unis ou dans l'UE (et non dans le monde entier). 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 votre de demander une augmentation de quota pour les configurations CMEK, et justifier la raison pour laquelle vous avez besoin de plusieurs clés.

  • 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ées 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 obtenir des informations générales sur les data stores de santé, consultez Créez un data store pour les recherches dans le domaine 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 espace de stockage de données 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 d'un data store, les applications qui l'utilisent ne s'affichent plus 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 :

  • Contactez votre responsable de compte Google et demandez à être ajouté à la liste d'autorisation des applications de chiffrement dans Vertex AI Agent Builder.

  • 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.

  • Rôle IAM "Chiffreur/Déchiffreur de clés cryptographiques" (roles/cloudkms.cryptoKeyEncrypterDecrypter) de 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.

  • Rôle IAM "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 magasins de données 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 :

  1. 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 du projet contenant le . Le numéro de projet ne fonctionne pas.
    • KMS_LOCATION : multirégion de votre clé KMS : us ou europe.
    • 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 ou eu).
    • 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"
     }
    }
    

  2. 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 obtenir des informations générales sur la création de datastores, consultez Créez un data store de recherche.

Afficher les clés Cloud KMS

Pour afficher une clé enregistrée pour Vertex AI Agent Builder, effectuez l'une des opérations suivantes:

  • Si vous disposez du nom de 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 magasin de données : us ou eu.
    • PROJECT_ID: ID du 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
    }
    

  • 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 magasin de données : us ou eu.
    • PROJECT_ID: ID du 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"
        }
      ]
    }
    

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 la clé. Si vous souhaitez confirmer qu'un data store spécifique est protégé par votre clé, procédez comme suit:

  1. 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 ou eu).
    • PROJECT_ID: ID du projet contenant les données Google Store.
    • 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"
    

  2. Examinez la sortie de la commande : si le champ cmekConfig figure dans la sortie et que le champ kmsKey affiche la clé que vous avez enregistrée, le datastore 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. Conserver la version d'origine de la clé activée pendant un certain temps avant de la désactiver. Ainsi, les modèles de longue durée les opérations susceptibles d'utiliser l'ancien temps de clé.

La procédure suivante décrit les étapes à suivre pour alterner les clés d'une Data store de Vertex AI Agent Builder. Pour obtenir des informations générales sur la rotation des clés, consultez la section Rotation des clés du guide Cloud KMS.

Important:N'alternez pas les clés des data stores associés aux recommandations applications ou avec des applications nécessitant des analyses. Consultez la section Limites de Cloud KMS dans Vertex AI Agent Builder.

  1. Réenregistrez votre clé. Pour ce faire, répétez l'étape 1 de la section Enregistrer votre Clé Cloud KMS

  2. Consultez les instructions de la section Gérer les clés de Guide Cloud KMS pour effectuer les opérations suivantes:

    1. Créez une version de clé, activez-la et définissez-la comme version principale.

    2. Laissez l'ancienne version de clé activée.

    3. Après environ une semaine, désactivez l'ancienne version de clé et assurez-vous que tout fonctionne comme avant.

    4. À une date ultérieure, lorsque vous êtes certain qu'aucun problème n'a été causé par désactiver 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 est révoqué, le data store cesse d'ingérer des données et cesse de les diffuser dans les minutes. Toutefois, la réactivation d'une clé ou la restauration des autorisations prend beaucoup de temps. Il peut il peut s'écouler jusqu'à 24 heures avant que le data store puisse reprendre la diffusion des données.

Par conséquent, ne désactivez pas une clé, sauf si c'est nécessaire. La désactivation et l'activation d'une clé sur un magasin de données est une opération chronophage. Par exemple, changer de manière répétée si une clé est désactivée ou activée, cela signifie que l'activation pour accéder à 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 magasin de données, puis réactivée.