Accédez à plus de 700 ateliers et cours

Utiliser des clés de chiffrement gérées par le client avec Cloud Storage et Cloud KMS

Atelier 1 heure 30 minutes universal_currency_alt 5 crédits show_chart Débutant
info Cet atelier peut intégrer des outils d'IA pour vous accompagner dans votre apprentissage.
Accédez à plus de 700 ateliers et cours

Présentation

Cloud Key Management Service (Cloud KMS) vous permet de gérer des clés de chiffrement sur Google Cloud. Cloud KMS crée les clés de chiffrement et vous les gérez de la même manière que vous le feriez sur site.

Cloud KMS vous permet de générer, d'utiliser, d'alterner et de détruire des clés de chiffrement symétriques AES256 pour une utilisation directe par tous vos services cloud.

Dans cet atelier, vous utiliserez Cloud KMS pour créer des trousseaux et des CryptoKeys, puis vous utiliserez ces clés avec Cloud Storage pour définir des clés par défaut sur des buckets et chiffrer des objets individuels avec une clé Cloud KMS.

De plus, vous effectuerez manuellement un chiffrement côté serveur à l'aide de vos clés Cloud KMS, et vous importerez les données chiffrées dans Cloud Storage.

Les autorisations Cloud KMS seront gérées via IAM, tandis que Cloud Audit Logs permettra de consulter toutes les activités liées aux CryptoKeys et aux trousseaux.

Objectifs

Au cours de cet atelier, vous allez apprendre à réaliser les opérations suivantes :

  • Gérer des clés et des données chiffrées à l'aide de Cloud KMS
  • Créer des trousseaux et des CryptoKeys
  • Définir une clé de chiffrement par défaut pour un bucket de stockage
  • Chiffrer un objet avec une clé Cloud KMS
  • Effectuer une rotation des clés de chiffrement
  • Effectuer manuellement un chiffrement côté serveur à l'aide de clés Cloud KMS

Préparation

Pour chaque atelier, nous vous attribuons un nouveau projet Google Cloud et un nouvel ensemble de ressources pour une durée déterminée, sans frais.

  1. Connectez-vous à Qwiklabs dans une fenêtre de navigation privée.

  2. Vérifiez le temps imparti pour l'atelier (par exemple : 01:15:00) : vous devez pouvoir le terminer dans ce délai.
    Une fois l'atelier lancé, vous ne pouvez pas le mettre en pause. Si nécessaire, vous pourrez le redémarrer, mais vous devrez tout reprendre depuis le début.

  3. Lorsque vous êtes prêt, cliquez sur Démarrer l'atelier.

  4. Notez vos identifiants pour l'atelier (Nom d'utilisateur et Mot de passe). Ils vous serviront à vous connecter à Google Cloud Console.

  5. Cliquez sur Ouvrir la console Google.

  6. Cliquez sur Utiliser un autre compte, puis copiez-collez les identifiants de cet atelier lorsque vous y êtes invité.
    Si vous utilisez d'autres identifiants, des messages d'erreur s'afficheront ou des frais seront appliqués.

  7. Acceptez les conditions d'utilisation et ignorez la page concernant les ressources de récupération des données.

Tâche 1 : Configurer les ressources requises

Dans cette tâche, vous allez configurer les ressources qui seront utilisées pendant cet atelier.

Créer un bucket Cloud Storage

Remarque : Chaque bucket doit avoir un nom unique. Pour cet atelier, vous indiquerez votre ID de projet Google Cloud dans le nom du bucket, pour garantir qu'il est unique. Votre ID de projet Google Cloud est automatiquement stocké dans une variable d'environnement Cloud Shell nommée DEVSHELL_PROJECT_ID.
  1. Dans la barre de titre de la console Google Cloud, cliquez sur Activer Cloud Shell (Icône Activer Cloud Shell). Si vous y êtes invité, cliquez sur Continuer.

  2. Exécutez la commande suivante pour créer le bucket :

gcloud storage buckets create --location={{{project_0.default_region|Region}}} gs://$DEVSHELL_PROJECT_ID-kms
  1. Exécutez les commandes suivantes pour créer quelques exemples de fichiers qui seront importés dans le bucket :
echo "This is sample file 1" > file1.txt echo "This is sample file 2" > file2.txt echo "This is sample file 3" > file3.txt
  1. Exécutez la commande suivante pour copier file1.txt dans le bucket :
gcloud storage cp file1.txt gs://$DEVSHELL_PROJECT_ID-kms

Activer Cloud KMS

Remarque : Avant d'utiliser Cloud KMS, vous devez activer ce service dans votre projet. Celui-ci est normalement déjà activé dans le projet Qwiklab Google Cloud qui vous a été fourni. Par mesure de précaution, lancez tout de même la commande pour l'activer.
  • Exécutez la commande suivante dans Cloud Shell pour activer Cloud KMS :
gcloud services enable cloudkms.googleapis.com

Cliquez sur Vérifier ma progression pour valider l'objectif.

Créer un bucket Cloud Storage

Tâche 2 : Utiliser Cloud KMS

Dans cette tâche, vous allez utiliser Cloud KMS pour créer un trousseau et une CryptoKey.

Créer un trousseau et une CryptoKey

Remarque : Pour chiffrer des données, vous devez créer un trousseau et une CryptoKey. Les trousseaux permettent de regrouper plusieurs clés par environnement (de test, de préproduction ou de production, par exemple) ou selon tout autre groupe conceptuel. Dans cet atelier, votre trousseau s'appelle test et votre CryptoKey se nomme labkey.
  1. Dans Cloud Shell, exécutez les commandes suivantes pour créer des variables contenant le nom du trousseau et le nom de la CryptoKey :
KEYRING_NAME=lab-keyring CRYPTOKEY_1_NAME=labkey-1 CRYPTOKEY_2_NAME=labkey-2
  1. Exécutez la commande suivante pour créer le trousseau.
gcloud kms keyrings create $KEYRING_NAME --location {{{project_0.default_region|Region}}}
  1. Créez ensuite une CryptoKey nommée labkey-1 à l'aide du nouveau trousseau :
gcloud kms keys create $CRYPTOKEY_1_NAME --location {{{project_0.default_region|Region}}} \ --keyring $KEYRING_NAME --purpose encryption
  1. Créez une autre CryptoKey nommée labkey-2 :
gcloud kms keys create $CRYPTOKEY_2_NAME --location {{{project_0.default_region|Region}}} \ --keyring $KEYRING_NAME --purpose encryption

Vous pouvez consulter le trousseau et les clés dans la console Google Cloud.

  1. Dans la console Google Cloud, accédez au menu de navigation (Icône du menu de navigation), puis cliquez sur Sécurité > Gestion des clés.

Le trousseau nommé lab-keyring s'affiche.

  1. Cliquez sur le trousseau nommé lab-keyring pour afficher les clés de chiffrement labkey-1 et labkey-2.

Liste de clés du trousseau

Cliquez sur Vérifier ma progression pour valider l'objectif.

Créer un trousseau et une CryptoKey

Tâche 3 : Ajouter une clé par défaut pour un bucket

Dans cette tâche, vous allez ajouter une clé par défaut pour votre bucket.

Afficher la clé par défaut actuelle d'un bucket

  • Exécutez la commande suivante pour afficher la clé de chiffrement par défaut de votre bucket :
gsutil kms encryption gs://$DEVSHELL_PROJECT_ID-kms Remarque : Actuellement, le bucket ne doit pas comporter de clé de chiffrement par défaut. Toutes les données présentes dans le bucket seront donc chiffrées à l'aide de clés gérées par Google.

Attribuer des clés Cloud KMS à un compte de service

  • Exécutez les commandes suivantes pour autoriser votre compte de service Cloud Storage à utiliser vos deux clés Cloud KMS :
gsutil kms authorize -p $DEVSHELL_PROJECT_ID -k \ projects/$DEVSHELL_PROJECT_ID/locations/{{{project_0.default_region|Region}}}/keyRings\ /$KEYRING_NAME/cryptoKeys/$CRYPTOKEY_1_NAME gsutil kms authorize -p $DEVSHELL_PROJECT_ID -k \ projects/$DEVSHELL_PROJECT_ID/locations/{{{project_0.default_region|Region}}}/keyRings\ /$KEYRING_NAME/cryptoKeys/$CRYPTOKEY_2_NAME

Vous trouverez ci-dessous la syntaxe générale des commandes précédentes :

gsutil kms authorize -p [PROJECT_STORING_OBJECTS] -k [KEY_RESOURCE]

Le format de [KEY_RESOURCE] est le suivant :

projects/[PROJECT_STORING_KEYS]/locations/[LOCATION]/keyRings/[KEY_RING_NAME]/cryptoKeys/[KEY_NAME]

Définir la clé par défaut d'un bucket

Vous pouvez définir une clé Cloud KMS comme clé par défaut pour chiffrer les objets lorsqu'ils sont écrits sur un bucket.

Quand vous définissez la clé par défaut, vous devez spécifier la ressource de clé dans le même format que la commande précédente : projects/[PROJECT_STORING_KEYS]/locations/[LOCATION]/keyRings/ [KEY_RING_NAME]/cryptoKeys/[KEY_NAME].

  1. Exécutez la commande suivante pour définir la première clé que vous avez générée comme clé par défaut de votre bucket :
gsutil kms encryption -k \ projects/$DEVSHELL_PROJECT_ID/locations/{{{project_0.default_region|Region}}}/keyRings\ /$KEYRING_NAME/cryptoKeys/$CRYPTOKEY_1_NAME \ gs://$DEVSHELL_PROJECT_ID-kms
  1. Exécutez la commande suivante pour afficher la clé par défaut du bucket et vérifier que la dernière commande a bien été effectuée :
gsutil kms encryption gs://$DEVSHELL_PROJECT_ID-kms

La clé de chiffrement par défaut du bucket devrait désormais être votre première clé de chiffrement.

Remarque : Les objets qui ont été écrits sur un bucket avant l'ajout ou la modification de la clé par défaut restent chiffrés avec la méthode de chiffrement précédente.
  1. Exécutez la commande suivante pour copier file2.txt dans le bucket :
gcloud storage cp file2.txt gs://$DEVSHELL_PROJECT_ID-kms

Afficher les fichiers d'un bucket

  • Dans la console Google Cloud, accédez au menu de navigation (Icône du menu de navigation), cliquez sur Cloud Storage > Buckets, puis sur le bucket utilisé pour cet atelier.

Vous constaterez que le fichier 1 a été chiffré à l'aide d'une clé gérée par Google et que le fichier 2 a été chiffré à l'aide d'une clé gérée par le client.

Cliquez sur Vérifier ma progression pour valider l'objectif.

Ajouter une clé par défaut pour le bucket

Tâche 4 : Chiffrer des objets individuels avec une clé Cloud KMS

Dans cette tâche, vous allez chiffrer un objet individuel avec une clé Cloud KMS. Ceci est utile si vous souhaitez utiliser une clé différente de celle définie par défaut sur le bucket ou si aucune clé par défaut n'est définie sur le bucket. Pour ce faire, il suffit de transmettre la clé à utiliser dans chaque commande gsutil à l'aide de l'option -o : -o "GSUtil:encryption_key=[KEY_RESOURCE]"

  1. Exécutez la commande suivante pour copier file3.txt dans le bucket, en le chiffrant avec votre deuxième clé de chiffrement :
gsutil -o \ "GSUtil:encryption_key=projects/$DEVSHELL_PROJECT_ID/locations/{{{project_0.default_region|Region}}}/keyRings\ /$KEYRING_NAME/cryptoKeys/$CRYPTOKEY_2_NAME" \ cp file3.txt gs://$DEVSHELL_PROJECT_ID-kms
  1. Dans la console Google Cloud, actualisez l'écran Informations sur le bucket. Vous constaterez que file3.txt est également chiffré à l'aide d'une clé gérée par le client.

Identifier la clé utilisée pour chiffrer un objet

Dans la console, observez la colonne de chiffrement. Elle vous indique le type de clé utilisé : une clé gérée par Google ou par le client. Vous pouvez accéder aux informations sur la clé en passant la souris sur celle-ci. Vous pouvez également accéder aux informations sur la clé en utilisant gsutil. Nous verrons comment à l'étape suivante.

  1. Exécutez la commande suivante pour afficher les informations d'un objet (l'option -L permet à gsutil ls d'afficher toutes les informations relatives au fichier) :
gsutil ls -L gs://$DEVSHELL_PROJECT_ID-kms/file3.txt
  1. Dans les informations renvoyées, repérez la ligne correspondant à la clé KMS.

Cette ligne indique la clé de chiffrement utilisée par ce fichier.

  1. Exécutez à nouveau la commande précédente pour file1.txt et file2.txt.

Cliquez sur Vérifier ma progression pour valider l'objectif.

Chiffrer des objets individuels avec une clé Cloud KMS

Tâche 5 : Effectuer une rotation des clés

Dans cette tâche, vous allez effectuer des rotations automatique et manuelle des clés.

Remarque : Dans Cloud KMS, le processus de rotation des clés est déclenché en générant une nouvelle version d'une clé et en définissant cette version comme version principale. Chaque clé possède à tout moment une version principale désignée, qui permet à Cloud KMS de chiffrer des données. Après la rotation d'une clé, ses versions précédentes (qui ne sont plus des versions principales) ne sont ni désactivées ni détruites. Elles restent disponibles pour déchiffrer des données.

Rotation automatique des clés

Remarque : Créer un calendrier de rotation permet à Cloud KMS d'effectuer automatiquement la rotation de vos clés pour vous. Ce calendrier peut être défini à l'aide de l'outil de ligne de commande gcloud ou depuis la console Google Cloud.
  1. Dans la console Google Cloud, accédez au menu de navigation (Icône du menu de navigation), puis cliquez sur Sécurité > Gestion des clés. Cliquez ensuite sur le trousseau lab-keyring pour afficher les clés de chiffrement labkey-1 et labkey-2.
Remarque : Si lab-keyring ne s'affiche pas, cliquez sur Actualiser.
  1. Cliquez sur la clé nommée labkey-1 pour afficher toutes les versions.

Actuellement, vous ne possédez qu'une seule version.

  1. Cliquez sur le bouton Modifier la période de rotation.

  2. Dans la liste déroulante Période de rotation, sélectionnez 30 jours.

Notez que vous pouvez également définir une période personnalisée comme période de rotation, ce qui vous permet de spécifier toutes les périodes souhaitées.

  1. Cliquez sur Enregistrer.

La console affiche maintenant la prochaine date de rotation pour cette clé.

Rotation manuelle des clés

Remarque : Vous pouvez également effectuer la rotation des clés manuellement à l'aide de l'outil de ligne de commande gcloud ou depuis la console Google Cloud.
  1. Dans la console, accédez de nouveau au trousseau lab-keyring, puis cliquez sur la clé labkey-2 pour afficher toutes les versions.

  2. Cliquez sur le bouton Alterner la clé, puis sur Effectuer une rotation.

Vous possédez désormais deux versions de cette clé. La version principale est version 2.

Remarque : Lorsque vous utilisez les commandes ci-dessus, la rotation des clés ne permet PAS de rechiffrer des données déjà chiffrées à l'aide de la nouvelle version de clé générée. Si vous suspectez une utilisation non autorisée d'une clé, vous devez rechiffrer les données protégées par celle-ci, puis désactiver la version de clé précédente ou programmer sa destruction.

Détruire d'anciennes clés

Remarque : Si vous détruisez une clé qui chiffre des objets existants, vous ne pourrez pas récupérer ces données, mais le stockage de vos objets continuera à vous être facturé jusqu'à ce que vous les supprimiez.

Dans cette partie, vous ne devrez pas vraiment détruire une clé, mais vous étudierez le processus de destruction.

  1. Depuis l'écran des versions labkey-2, cliquez sur les trois points verticaux situés tout à droite de la ligne version 1 de la clé et sélectionnez Détruire.

  2. Lisez le message qui apparaît dans la fenêtre Programmer la destruction de la version de clé 1 et cliquez sur Annuler lorsque vous avez terminé.

Vous avez utilisé des clés Cloud KMS pour chiffrer des données dans Cloud Storage.

Cliquez sur Vérifier ma progression pour valider l'objectif.

Rotation des clés

Tâche bonus : Chiffrer des données avec l'API REST

Le service Cloud KMS fournit également une API REST pour effectuer des opérations de chiffrement et de déchiffrement. Le contenu à chiffrer est indiqué dans un document JSON dans la requête REST. Ce contenu doit être encodé en base64. Le format du document JSON est le suivant :

{"plaintext":"Base64 encoded data to encrypt"}.

Dans cette section bonus de l'atelier, vous appelez manuellement l'API REST à l'aide de commandes curl pour démontrer la capacité de l'API.

  1. Cette section repose sur le principe que la session Cloud Shell est toujours ouverte et que les variables d'environnement suivantes sont définies :

KEYRING_NAME

CRYPTOKEY_1_NAME

CRYPTOKEY_2_NAME

Si ces variables ne sont plus définies, revenez à la section précédente de l'atelier permettant de créer ces variables.

  1. Exécutez la commande suivante pour encoder un exemple de texte en base64 et le stocker dans une variable nommée PLAIN_TEXT :
PLAIN_TEXT=$(echo -n "Some text to be encrypted" | base64)
  1. Affichez la variable PLAIN_TEXT pour vérifier que le texte a bien été encodé :
echo $PLAIN_TEXT

Le texte encodé en base64 devrait s'afficher.

  1. Utilisez l'API REST pour chiffrer le texte encodé en appelant la méthode encrypt de votre clé.

  2. Fournissez le contenu encodé en base64 dans le champ de texte brut du fichier JSON pour votre requête :

curl \ "https://cloudkms.googleapis.com/v1/projects/$DEVSHELL_PROJECT_ID/locations/{{{project_0.default_region|Region}}}/keyRings/$KEYRING_NAME/cryptoKeys/$CRYPTOKEY_1_NAME:encrypt" \ -d "{\"plaintext\":\"$PLAIN_TEXT\"}" \ -H "Authorization:Bearer $(gcloud auth application-default \ print-access-token)" \ -H "Content-Type: application/json"

La réponse est une charge utile JSON contenant le texte chiffré dans le champ de texte chiffré.

Remarque : Vous pouvez facilement extraire le texte chiffré de la réponse JSON et l'enregistrer dans un fichier à l'aide de l'utilitaire de ligne de commande jq. La réponse à l'appel précédent peut être redirigée vers jq, qui peut analyser la propriété du texte chiffré et l'enregistrer dans data1.encrypted.
  1. Exécutez la commande suivante qui répète le chiffrement, mais qui analyse cette fois la propriété du texte chiffré et l'enregistre dans le fichier data1.encrypted :
curl \ "https://cloudkms.googleapis.com/v1/projects/$DEVSHELL_PROJECT_ID/locations/{{{project_0.default_region|Region}}}/keyRings/$KEYRING_NAME/cryptoKeys/$CRYPTOKEY_1_NAME:encrypt" \ -d "{\"plaintext\":\"$PLAIN_TEXT\"}" \ -H "Authorization:Bearer $(gcloud auth application-default \ print-access-token)" \ -H "Content-Type: application/json" \ | jq .ciphertext -r > data1.encrypted
  1. Affichez le contenu du fichier data1.encrypted avec la commande suivante :
more data1.encrypted Remarque : Le texte chiffré peut être déchiffré en appelant la méthode de déchiffrement de votre clé. Vous devez utiliser la même clé que celle qui a servi à chiffrer le contenu.
  1. Exécutez la commande suivante pour déchiffrer le contenu du fichier data1.encrypted et l'enregistrer dans le fichier nommé data1.decrypted :
curl -v \ "https://cloudkms.googleapis.com/v1/projects/$DEVSHELL_PROJECT_ID/locations/{{{project_0.default_region|Region}}}/keyRings/$KEYRING_NAME/cryptoKeys/$CRYPTOKEY_1_NAME:decrypt" \ -d "{\"ciphertext\":\"$(cat data1.encrypted)\"}" \ -H "Authorization:Bearer $(gcloud auth application-default \ print-access-token)" \ -H "Content-Type:application/json" \ | jq .plaintext -r | base64 -d > data1.decrypted
  1. Affichez le contenu du fichier data1.decrypted avec la commande suivante :
more data1.decrypted

Vous avez utilisé des clés Cloud KMS.

Félicitations !

Dans cet atelier, vous avez effectué les tâches suivantes :

  • Gérer des clés et des données chiffrées à l'aide de Cloud KMS

  • Créer des trousseaux et des CryptoKeys

  • Définir une clé de chiffrement par défaut pour un bucket de stockage

  • Chiffrer un objet avec une clé Cloud KMS

  • Effectuer une rotation des clés de chiffrement

  • Effectuer manuellement un chiffrement côté serveur à l'aide de clés Cloud KMS

Terminer l'atelier

Une fois l'atelier terminé, cliquez sur Terminer l'atelier. Google Cloud Skills Boost supprime les ressources que vous avez utilisées, puis efface le compte.

Si vous le souhaitez, vous pouvez noter l'atelier. Sélectionnez un nombre d'étoiles, saisissez un commentaire, puis cliquez sur Envoyer.

Le nombre d'étoiles correspond à votre degré de satisfaction :

  • 1 étoile = très insatisfait(e)
  • 2 étoiles = insatisfait(e)
  • 3 étoiles = ni insatisfait(e), ni satisfait(e)
  • 4 étoiles = satisfait(e)
  • 5 étoiles = très satisfait(e)

Si vous ne souhaitez pas donner votre avis, vous pouvez fermer la boîte de dialogue.

Pour soumettre des commentaires, suggestions ou corrections, veuillez accéder à l'onglet Assistance.

Copyright 2025 Google LLC Tous droits réservés. Google et le logo Google sont des marques de Google LLC. Tous les autres noms de société et de produit peuvent être des marques des sociétés auxquelles ils sont associés.

Avant de commencer

  1. Les ateliers créent un projet Google Cloud et des ressources pour une durée déterminée.
  2. Les ateliers doivent être effectués dans le délai imparti et ne peuvent pas être mis en pause. Si vous quittez l'atelier, vous devrez le recommencer depuis le début.
  3. En haut à gauche de l'écran, cliquez sur Démarrer l'atelier pour commencer.

Utilisez la navigation privée

  1. Copiez le nom d'utilisateur et le mot de passe fournis pour l'atelier
  2. Cliquez sur Ouvrir la console en navigation privée

Connectez-vous à la console

  1. Connectez-vous à l'aide des identifiants qui vous ont été attribués pour l'atelier. L'utilisation d'autres identifiants peut entraîner des erreurs ou des frais.
  2. Acceptez les conditions d'utilisation et ignorez la page concernant les ressources de récupération des données.
  3. Ne cliquez pas sur Terminer l'atelier, à moins que vous n'ayez terminé l'atelier ou que vous ne vouliez le recommencer, car cela effacera votre travail et supprimera le projet.

Ce contenu n'est pas disponible pour le moment

Nous vous préviendrons par e-mail lorsqu'il sera disponible

Parfait !

Nous vous contacterons par e-mail s'il devient disponible

Un atelier à la fois

Confirmez pour mettre fin à tous les ateliers existants et démarrer celui-ci

Utilisez la navigation privée pour effectuer l'atelier

Ouvrez une fenêtre de navigateur en mode navigation privée pour effectuer cet atelier. Vous éviterez ainsi les conflits entre votre compte personnel et le compte temporaire de participant, qui pourraient entraîner des frais supplémentaires facturés sur votre compte personnel.