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. Les clés CMEK sont intégrées à la personnalisation du code pour Gemini Code Assist. Gemini Code Assist n'est pas compatible avec les clés Cloud EKM.
Ce document vous accompagne dans les tâches suivantes :
- Apprenez à créer une clé CMEK.
- Accordez des autorisations au compte de service Gemini Code Assist.
- Créez un index 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 les contenus client au repos. Gemini gère le chiffrement sans intervention de votre part. Cette option est appelée chiffrement par défaut de Google.
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
Dans l'un des environnements de développement suivants, configurez la gcloud CLI :
Cloud Shell : pour utiliser un terminal en ligne avec la gcloud CLI déjà configurée, lancez l'éditeur Cloud Shell.
Shell local : pour utiliser un environnement de développement local, installez et initialisez la gcloud CLI.
Si vous utilisez un fournisseur d'identité (IdP) externe, vous devez d'abord vous connecter à la gcloud CLI avec votre identité fédérée.
Dans l'environnement de développement où vous avez configuré la gcloud CLI, exécutez la commande
gcloud components update
pour vous assurer d'avoir mis à jour tous les composants installés de gcloud vers la dernière version.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é, suivez ces étapes :
Dans le projet Google Cloud dans lequel vous souhaitez gérer vos clés, procédez comme suit :
Créez le trousseau de clés et la clé directement dans Cloud KMS.
Accordez le rôle IAM de chiffreur/déchiffreur de CryptoKeys (
roles/cloudkms.cryptoKeyEncrypterDecrypter
) au compte de service Gemini Code Assist. Accordez cette autorisation sur la clé que vous avez créée.Console
Accédez à la page Gestion des clés.
Sélectionnez la clé que vous avez créée.
Accordez l'accès au compte de service Gemini Code Assist :
- Cliquez sur Ajouter un compte principal.
- Ajoutez le compte de service Gemini Code Assist. Le compte de service est désigné par
service-PROJECT_NUMBER@gcp-sa-cloudaicompanions.
, où PROJECT_NUMBER correspond au numéro du projet Google Cloud dans lequel Gemini Code Assist est activé. - Dans Sélectionner un rôle, sélectionnez Cloud KMS > Chiffreur/Déchiffreur de CryptoKeys Cloud KMS.
- Cliquez sur Enregistrer.
Répétez l'étape précédente pour accorder l'accès au compte chargé de créer l'index du dépôt de code avec une clé CMEK.
Revenez à la page Gestion des clés, puis sélectionnez à nouveau la clé.
Sélectionnez Afficher le panneau d'informations. Des rôles doivent s'afficher dans la colonne Rôle/Membre.
gcloud
Pour accorder l'accès au compte de service Gemini Code Assist, utilisez la commande
kms keys add-iam-policy-binding
dans un environnement de shell :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." \ --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 où Gemini Code Assist est activé.
Répétez l'étape précédente pour accorder l'accès au compte chargé de créer l'index du dépôt de code avec une clé 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 index de dépôt de code avec une clé CMEK en utilisant l'API et spécifier la clé à utiliser pour le chiffrement.
Créer un index de dépôt de code avec une clé CMEK
Pour créer un dépôt protégé par CMEK, effectuez l'une des opérations suivantes :
gcloud
Exécutez la commande gemini code-repository-indexes create
:
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 du nouvel index de dépôt de code que vous allez créer.
- LOCATION : emplacement de la clé.
- KEY_PROJECT_ID : ID du projet de la clé.
- KEYRING_NAME : nom du trousseau de clés.
- KEY_NAME : nom de la clé.
API
Créez un fichier JSON contenant les informations suivantes :
{ "kmsKey": "projects/KEY_PROJECT_ID/locations/KEY_LOCATION/keyRings/KEYRING_NAME/cryptoKeys/KEY_NAME" }
Remplacez les éléments suivants :
KEY_PROJECT_ID
: ID du projet de la cléKEY_LOCATION
: emplacement de la cléKEYRING_NAME
: nom du trousseau de clésKEY_NAME
: nom de la clé
Utilisez une commande
cURL
pour appeler la méthodeprojects.locations.codeRepositoryIndexes.create
:curl -X POST --data-binary @JSON_FILE_NAME \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://cloudaicompanion.googleapis.com/v1/projects/PROJECT_ID/locations/KEY_LOCATION/codeRepositoryIndexes?codeRepositoryIndexId=CODE_REPOSITORY_INDEX_NAME"
Remplacez les éléments suivants :
JSON_FILE_NAME
: chemin d'accès au fichier JSON que vous avez créé à l'étape précédente.PROJECT_ID
: ID du projet dans lequel créer le dépôt.KEY_LOCATION
: emplacement où créer le dépôt, qui doit correspondre à l'emplacement où se trouve la clé CMEK.CODE_REPOSITORY_INDEX_NAME
: nom du nouvel index de dépôt de code que vous allez créer. Exemple :zg-btf-0001
.
La réponse renvoie un ensemble d'entrées de journal.
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 :
- Révoquez le rôle de chiffreur/déchiffreur de CryptoKeys Cloud KMS du compte de service Gemini Code Assist en utilisant la console API ou gcloud.
- Désactivez temporairement la clé CMEK.
- Détruisez définitivement la clé 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 étant cohérentes en quelques secondes, vous pouvez observer tout de suite les conséquences de la désactivation ou de la destruction d'une clé.