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. Gemini Code Assist n'est pas compatible avec les clés Cloud EKM.
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 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 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.
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 gcloud CLI :
Cloud Shell : pour utiliser un terminal en ligne avec gcloud CLI déjà configuré, lancez l'éditeur Cloud Shell.
Shell local : pour utiliser un environnement de développement local, installez et initialisez gcloud CLI.
Si vous utilisez un fournisseur d'identité (IdP) externe, vous devez d'abord vous connecter à gcloud CLI avec votre identité fédérée.
Dans votre environnement shell, 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. Pour cette étape, vous pouvez installer et initialiser gcloud, 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 :
Dans le projet Google Cloud dans lequel vous souhaitez gérer vos clés, procédez comme suit :
Créez un trousseau de clés et une clé à l'aide de l'une des options suivantes :
- Créez le trousseau de clés et la clé directement dans Cloud KMS.
- Utilisez une clé gérée en externe. Créez la clé externe, puis créez une clé Cloud EKM pour la rendre disponible via Cloud KMS.
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 sur la clé que vous avez créée.Console
Accédez à 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
service-PROJECT_NUMBER@gcp-sa-cloudaicompanions.
, où PROJECT_NUMBER correspond au numéro du projet Google Cloud sur lequel Gemini Code Assist est activé. - Dans Sélectionner un rôle, sélectionnez Cloud KMS > Chiffreur/Déchiffreur de clés cryptographiques Cloud KMS.
- Cliquez sur Enregistrer.
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 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 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 pour lequel Gemini Code Assist est activé.
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 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 à l'aide de 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, procédez comme suit :
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 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 cléKEY_LOCATION
: emplacement de la cléKEYRING_NAME
: nom du trousseau de clés.KEY_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 clés cryptographiques Cloud KMS du compte de service Gemini Code Assist à l'aide de la console API ou de gcloud.
- Désactivez temporairement la 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 sont cohérentes en quelques secondes. Vous pouvez donc observer les conséquences de la désactivation ou de la destruction d'une clé.