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

Par défaut, AI Applications chiffre le contenu client au repos. Applications d'IA 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 les applications d'IA. 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 de suivre l'utilisation des clés, 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 Applications d'IA 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).

Limites de Cloud KMS dans les applications d'IA

Les limites suivantes s'appliquent aux clés CMEK (Cloud KMS) dans les applications d'IA :

  • Les clés déjà appliquées à un data store ne peuvent pas être modifiées.
  • Une fois une clé enregistrée, elle ne peut plus être désenregistrée ni supprimée d'un data store.
  • Vous devez utiliser des applications et des data stores multirégionaux (US ou UE), et non globaux. Pour en savoir plus sur les régions multiples et la résidence des données, y compris sur les limites associées à l'utilisation d'emplacements non mondiaux, consultez la page Emplacements.
  • Si vous devez enregistrer plusieurs clés pour un projet, contactez l'équipe responsable de votre compte Google pour demander une augmentation du quota de configurations CMEK. Indiquez pourquoi vous avez besoin de plusieurs clés.

  • L'utilisation d'un gestionnaire de clés externe (EKM) avec CMEK est en disponibilité générale avec une liste d'autorisation. Pour utiliser EKM avec CMEK, contactez l'équipe chargée de votre compte Google.

    Les limites suivantes s'appliquent à EKM ou HSM avec CMEK :

    • Votre quota EKM et HSM pour les appels de chiffrement et de déchiffrement doit disposer d'une marge d'au moins 1 000 QPM. Pour savoir comment vérifier vos quotas, consultez Vérifier vos quotas Cloud KMS.

    • Si vous utilisez 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 durée, 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 problèmes persistants de dépassement de quota ou d'inaccessibilité persistante pendant plus de 12 heures, le service désactive automatiquement la configuration CmekConfig associée à la clé EKM ou HSM.

  • Les magasins de données créés avant l'enregistrement d'une clé dans le projet ne peuvent pas être protégés par la clé.

  • Vous ne pouvez pas ajuster les modèles de recherche pour les data stores protégés par des clés.

  • Pour les applications comportant plusieurs magasins de données, si l'un d'eux utilise une configuration CMEK, tous les autres magasins de données doivent également utiliser la même configuration CMEK.

  • La rotation des clés n'est pas compatible avec les clés monorégionales pour les connecteurs tiers. Si vous désactivez ou détruisez une version de clé qui protège un data store associé à un connecteur tiers, le connecteur cesse de fonctionner.

  • La rotation des clés n'est pas compatible avec Analytics. Si vous faites pivoter les clés d'un data store, les applications qui l'utilisent n'affichent plus d'analyses.

  • Vous ne pouvez pas utiliser Terraform pour configurer CMEK pour les applications d'IA.

À propos des clés à région unique pour les connecteurs tiers

Si vous utilisez des connecteurs tiers et que vous souhaitez utiliser vos propres clés pour protéger les données connectées, vous devez créer trois clés supplémentaires à une seule région en plus de la clé multirégionale. Les commandes permettant de créer des clés sont fournies dans la procédure suivante : Enregistrer votre clé Cloud KMS.

Les clés uniques doivent être créées pour les régions suivantes :

Multirégional Régions uniques
eu europe-west1 europe-west4 europe-north1
us us-east1 us-central1 us-west1

Avant de commencer

Assurez-vous de remplir les conditions préalables suivantes :

  • Créez une clé Cloud KMS symétrique multirégionale. Consultez Créer un trousseau de clés et Créer une clé dans la documentation Cloud KMS.

    • Définissez la période de rotation sur Jamais (rotation manuelle).

    • Pour Emplacement, sélectionnez Multirégional, puis europe ou us dans le menu déroulant.

  • Le rôle IAM Chiffreur/Déchiffreur de CryptoKeys (roles/cloudkms.cryptoKeyEncrypterDecrypter) sur la clé a été accordé à l'agent de service Discovery Engine. Le compte de l'agent de service possède une adresse e-mail au format suivant : service-PROJECT_NUMBER@gcp-sa-discoveryengine.iam.gserviceaccount.com. Pour obtenir des instructions générales sur l'ajout d'un rôle à un agent de service, consultez 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 data stores 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 qui sont nécessaires à l'importation.

  • Ne créez aucun data store ni aucune application 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.

Enregistrer votre clé Cloud KMS

Pour chiffrer des données à l'aide de CMEK, vous devez enregistrer votre clé multirégionale. Si vos données nécessitent des clés à région unique (par exemple, lorsque vous utilisez des connecteurs tiers), vous devez enregistrer vos clés à région unique.

REST

Pour enregistrer votre propre clé pour les applications d'IA, procédez comme suit :

  1. Appelez la méthode UpdateCmekConfig avec la clé que vous souhaitez enregistrer.

    curl -X PATCH \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    -d '{"kmsKey":"projects/KMS_PROJECT_ID/locations/KMS_LOCATION/keyRings/KEY_RING/cryptoKeys/KEY_NAME"}' \
    "https://LOCATION-discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/cmekConfigs/CMEK_CONFIG_ID?set_default=SET_DEFAULT"
    

    Remplacez les éléments suivants :

    • KMS_PROJECT_ID : ID du projet contenant la clé. Le numéro de projet ne fonctionnera pas.
    • KMS_LOCATION : région multirégionale de votre clé (us ou europe).
    • KEY_RING : nom du trousseau de clés qui inclut la clé.
    • KEY_NAME : nom de la clé.
    • PROJECT_ID : ID du projet contenant le data store.
    • LOCATION : emplacement multirégional de votre data store (us ou eu).
    • CMEK_CONFIG_ID : définissez un ID unique pour la ressource CmekConfig, par exemple default_cmek_config.
    • SET_DEFAULT : défini sur true pour utiliser la clé comme clé par défaut pour les magasins de données ultérieurs créés dans la multirégion.
  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 data stores, consultez À propos des applications et des data stores.

Console

Avant de commencer

Assurez-vous que la région n'est pas déjà protégée par une clé. La procédure suivante échoue si une clé est déjà enregistrée pour la région via la commande REST.

Pour déterminer si une clé est active dans AI Applications pour un emplacement, consultez Afficher les clés Cloud KMS.

Procédure

Pour enregistrer votre propre clé pour les applications d'IA, procédez comme suit :

  1. Dans la console Google Cloud , accédez à la page AI Applications.

    AI Applications

  2. Cliquez sur Paramètres, puis sélectionnez l'onglet CMEK.

  3. Cliquez sur Add key (Ajouter une clé) pour l'emplacement us (États-Unis) ou eu (Europe).

    Cliquez sur "Ajouter une clé" pour un emplacement.
    Cliquez sur "Ajouter une clé".
    1. Cliquez sur le menu déroulant Sélectionner une clé Cloud KMS, puis sélectionnez la clé.

      • Si la clé se trouve dans un autre projet, cliquez sur Changer de projet, cliquez sur le nom de votre projet, saisissez le nom de la clé que vous avez créée, puis sélectionnez-la.

      • Si vous connaissez le nom de ressource de la clé, cliquez sur Saisir manuellement, collez le nom de ressource de la clé, puis cliquez sur Enregistrer.

    2. Cliquez sur OK > Enregistrer.

Cela enregistre votre clé et crée une ressource CmekResource appelée default_cmek_config.

Plusieurs heures peuvent s'écouler avant que les données ingérées n'apparaissent dans les résultats de recherche.

Afficher les clés Cloud KMS

Pour afficher une clé enregistrée pour les applications d'IA, 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/v1/projects/PROJECT_ID/locations/LOCATION/cmekConfigs/CMEK_CONFIG_ID"
    

    Remplacez les éléments suivants :

    • LOCATION : emplacement multirégional de votre data store (us ou eu).
    • PROJECT_ID : ID du projet contenant les données.
    • CMEK_CONFIG_ID : ID de la ressource CmekConfig. Si vous avez enregistré votre clé à l'aide de la console, l'ID est default_cmek_config.

    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/v1/projects/my-ai-app-project-123/locations/us/cmekConfigs/default_cmek_config"
    
    { "name": "projects/my-ai-app-project-123/locations/us/cmekConfigs/default_cmek_config", "kmsKey": "projects/key-project-456/locations/us/keyRings/my-key-ring/cryptoKeys/my-key" "state": "ACTIVE" "isDefault": true }

  • Si vous ne disposez pas du nom de ressource CmekConfig, appelez la méthode ListCmekConfigs :

    curl -X GET \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    "https://LOCATION-discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/cmekConfigs"
    

    Remplacez les éléments suivants :

    • LOCATION : emplacement multirégional de votre data store : 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/v1/projects/my-ai-app-project-123/locations/us/cmekConfigs"
    
    { "cmek_configs": [ { "name": "projects/my-ai-app-project-123/locations/us/cmekConfigs/default_cmek_config", "kmsKey": "projects/key-project-456/locations/us/keyRings/my-key-ring/cryptoKeys/my-key" "state": "ACTIVE" "isDefault": true } ] }

Désenregistrer votre clé Cloud KMS

Pour annuler l'enregistrement de votre clé dans les applications d'IA, procédez comme suit :

  1. Appelez la méthode DeleteCmekConfig avec le nom de ressource CmekConfig que vous souhaitez annuler.

    curl -X DELETE \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    "https://LOCATION-discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/cmekConfigs/CMEK_CONFIG_ID"
    

    Remplacez les éléments suivants :

    • LOCATION : emplacement multirégional de votre data store : us ou eu.
    • PROJECT_ID : ID du projet contenant le data store.
    • CMEK_CONFIG_ID : ID de la ressource CmekConfig. Si vous avez enregistré votre clé à l'aide de la console, l'ID est default_cmek_config.

    Voici un exemple d'appel et de réponse curl :

    $ curl -X DELETE
    -H "Authorization: Bearer $(gcloud auth print-access-token)"
    "https://us-discoveryengine.googleapis.com/v1/projects/my-ai-app-project-123/locations/us/cmekConfigs/default_cmek_config"
     
    {
     "name": "projects/my-ai-app-project-123/locations/us/operations/delete-cmek-config-56789",
     "metadata": {
      "@type": "type.googleapis.com/google.cloud.discoveryengine.v1.DeleteCmekConfigMetadata"
     }
    }
    

  2. Facultatif : Enregistrez la valeur name renvoyée par la méthode et suivez les instructions de la section Obtenir des détails sur une opération de longue durée pour savoir quand l'opération est terminée.

    La suppression d'une clé prend généralement quelques minutes.

Vérifier qu'un data store est protégé par une clé

Les datastores créés avant l'enregistrement de votre clé ne sont pas protégés par celle-ci. Pour vérifier 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/v1/projects/PROJECT_ID/locations/LOCATION/collections/default_collection/dataStores/DATA_STORE_ID"
    

    Remplacez les éléments suivants :

    • LOCATION : emplacement multirégional de votre data store (us ou eu).
    • PROJECT_ID : ID du projet contenant le data 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/v1/projects/my-ai-app-project-123/locations/us/collections/default_collection/dataStores/my-data-store-1"
    

  2. Examinez le résultat de la commande : si le champ cmekConfig figure dans le résultat et que le champ kmsKey affiche la clé que vous avez enregistrée, cela signifie que 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/default_cmek_config",
       "kmsKey": "projects/my-ai-app-project-123/locations/us/keyRings/my-key-ring/cryptoKeys/my-key"
     }
    }
    

Autres données protégées par la clé Cloud KMS

En plus des données stockées dans les magasins de données, vos clés peuvent protéger d'autres types d'informations de base appartenant à l'application et détenues par les applications d'IA, comme les données de session générées lors de la recherche avec suivi. Ce type d'informations de base est protégé par des CMEK si les data stores associés à l'application sont protégés par des CMEK.

Bien que vous ne puissiez pas exécuter de commande spécifique pour vérifier que les sessions sont protégées, si vous exécutez la commande Vérifier qu'un data store est protégé par une clé et que la clé s'affiche dans la ressource cmekConfig, vous savez que les données de session sont protégées.

Effectuer une rotation des clés Cloud KMS

Lorsque vous effectuez une rotation de clés, vous créez une nouvelle version de la clé et la définissez comme version principale. Laissez la version d'origine de la clé activée pendant un certain temps avant de la désactiver. Cela donne le temps aux opérations de longue durée qui pourraient utiliser l'ancienne clé de se terminer.

La procédure suivante décrit les étapes à suivre pour faire pivoter les clés d'un data store Applications d'IA. Pour obtenir des informations générales sur la rotation des clés, consultez Rotation des clés dans le guide Cloud KMS.

Important : Ne faites pas de rotation des clés sur les data stores associés aux applications de recommandations ou à toute application nécessitant des analyses. Ne faites pas non plus de rotation des clés à région unique utilisées pour les connecteurs tiers. Consultez Limites de Cloud KMS dans les applications d'IA.

  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 du 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. Au bout d'une semaine environ, désactivez l'ancienne version de clé et assurez-vous que tout fonctionne comme avant.

    4. Plus tard, lorsque vous serez certain que la désactivation de l'ancienne version de clé n'a causé aucun problème, vous pourrez la détruire.

Si une clé Cloud KMS est désactivée ou révoquée

Si une clé est désactivée ou si les autorisations pour la clé sont révoquées, le data store cesse d'ingérer et de diffuser des données dans les 15 minutes. Toutefois, la réactivation d'une clé ou la restauration des autorisations prennent du temps. Il peut s'écouler jusqu'à 24 heures avant que le data store puisse à nouveau diffuser des données.

Par conséquent, ne désactivez une clé que si nécessaire. L'activation et la désactivation d'une clé dans un data store sont des opérations chronophages. Par exemple, si vous activez et désactivez une clé à plusieurs reprises, le data store mettra beaucoup de temps à atteindre un état protégé. Si vous désactivez une clé et la réactivez immédiatement après, cela peut entraîner des jours d'indisponibilité, car la clé est d'abord désactivée dans le data store, puis réactivée.