Chiffrer des données avec des clés de chiffrement gérées par le client

Ce document explique comment utiliser des clés de chiffrement gérées par le client (CMEK) pour chiffrer et contrôler les données au repos dans un service cloud via Cloud Key Management Service. CMEK est intégré à la personnalisation du code pour Gemini Code Assist.

Si vous n'utilisez pas de clé CMEK, Google gère automatiquement les clés qui chiffrent les données par défaut. Ce comportement est appelé chiffrement par défaut de Google. Avec ce comportement par défaut, vous n'avez aucun contrôle sur les clés de chiffrement.

Dans ce document, vous allez:

  • Découvrez comment créer une clé CMEK.
  • Accordez des autorisations au compte de service Gemini Code Assist.
  • Créez un indice de dépôt de code avec une clé CMEK.
  • Supprimez l'accès à un dépôt CMEK.

Par défaut, Gemini pour Google Cloud chiffre le contenu client au repos. Gemini 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 Gemini. 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 Gemini 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).

Avant de commencer

  1. In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

  2. Dans votre environnement shell, exécutez la commande gcloud components update pour vous assurer que vous avez mis à jour tous les composants installés de la CLI gcloud vers la dernière version. Pour cette étape, vous pouvez installer et initialiser gcloud CLI ou utiliser Cloud Shell.

    gcloud components update
    

Créer une clé CMEK et accorder des autorisations

Pour créer une clé CMEK et accorder des autorisations au compte de service Gemini Code Assist sur la clé, procédez comme suit:

  1. Dans le projet Google Cloud dans lequel vous souhaitez gérer vos clés, procédez comme suit:

    1. Activez l'API Cloud Key Management Service.

    2. Créez un trousseau de clés et une clé à l'aide de l'une des options suivantes :

  2. Accordez le rôle IAM de chiffreur/déchiffreur de clés cryptographiques (roles/cloudkms.cryptoKeyEncrypterDecrypter) au compte de service Gemini Code Assist. Accordez cette autorisation à la clé que vous avez créée.

    Console

    1. Accédez à Gestion des clés.

      Accéder à la page "Gestion des clés"

    2. Sélectionnez la clé que vous avez créée.

    3. Accordez l'accès au compte de service Gemini Code Assist:

      1. Cliquez sur Ajouter un compte principal.
      2. Ajoutez le compte de service Gemini Code Assist. Le compte de service est service-PROJECT_NUMBER@gcp-sa-cloudaicompanion.iam.gserviceaccount.com, où PROJECT_NUMBER correspond au numéro de projet du projet Google Cloud sur lequel Gemini Code Assist est activé.
      3. Dans Sélectionner un rôle, sélectionnez Cloud KMS > Chiffreur/Déchiffreur de clés cryptographiques Cloud KMS.
      4. Cliquez sur Enregistrer.
    4. Répétez l'étape précédente pour accorder l'accès au compte qui créera l'index du dépôt de code avec un CMEK.

    5. Revenez à la page Gestion des clés, puis sélectionnez à nouveau la clé.

    6. Sélectionnez Afficher le panneau d'informations. Des rôles doivent s'afficher dans la colonne Rôle/Membre.

    gcloud

    1. Pour accorder l'accès au compte de service Gemini Code Assist, dans un environnement shell, utilisez la commande kms keys add-iam-policy-binding:

      gcloud kms keys add-iam-policy-binding KEY_NAME \
          --project=PROJECT_ID \
          --location=LOCATION \
          --keyring=KEYRING_NAME \
          --member="serviceAccount:service-PROJECT_NUMBER@gcp-sa-cloudaicompanion.iam.gserviceaccount.com" \
          --role="roles/cloudkms.cryptoKeyEncrypterDecrypter"
      

      Remplacez les éléments suivants :

      • KEY_NAME: nom de la clé.
      • PROJECT_ID: ID du projet contenant la clé.
      • LOCATION: emplacement de la clé.
      • KEYRING_NAME: nom du trousseau de clés.
      • PROJECT_NUMBER: numéro de projet du projet Google Cloud avec l'assistance de code Gemini activée.
    2. Répétez l'étape précédente pour accorder l'accès au compte qui créera l'index du dépôt de code avec un CMEK.

    Pour en savoir plus sur cette commande, consultez la documentation gcloud kms keys add-iam-policy-binding.

Vous pouvez désormais créer un indice de dépôt de code avec un CMEK à l'aide de l'API et spécifier la clé à utiliser pour le chiffrement.

Créer un indice de dépôt de code avec une clé CMEK

Dans gcloud CLI, créez un dépôt dans le service protégé par une clé CMEK:

gcloud gemini code-repository-indexes create CODE_REPOSITORY_INDEX_NAME \
    --location=LOCATION \
    --kms-key="projects/KEY_PROJECT_ID/locations/LOCATION/keyRings/KEYRING_NAME/cryptoKeys/KEY_NAME"

Remplacez les éléments suivants :

  • CODE_REPOSITORY_INDEX_NAME: nom de l'index du nouveau dépôt de code que vous allez créer.
  • LOCATION: emplacement de la clé.
  • KEY_PROJECT_ID: ID du projet de clé.
  • KEYRING_NAME: nom du trousseau de clés.
  • KEY_NAME: nom de la clé.

Supprimer l'accès à un dépôt CMEK

Il existe plusieurs façons de supprimer l'accès à un dépôt chiffré par CMEK :

Nous vous recommandons de révoquer les autorisations du compte de service Gemini Code Assist avant de désactiver ou de détruire une clé. Les modifications apportées aux autorisations sont cohérentes en quelques secondes. Vous pouvez donc observer les conséquences de la désactivation ou de la destruction d'une clé.