arrow_back

Premiers pas avec Cloud KMS

Testez vos connaissances et partagez-les avec notre communauté
done
Accédez à plus de 700 ateliers pratiques, badges de compétence et cours

Premiers pas avec Cloud KMS

Atelier 45 minutes universal_currency_alt 1 crédit show_chart Débutant
info Cet atelier peut intégrer des outils d'IA pour vous accompagner dans votre apprentissage.
Testez vos connaissances et partagez-les avec notre communauté
done
Accédez à plus de 700 ateliers pratiques, badges de compétence et cours

GSP079

Google Cloud – Ateliers adaptés au rythme de chacun

Présentation

Dans cet atelier, vous allez apprendre à utiliser certaines fonctionnalités avancées des API de sécurité et de confidentialité Google Cloud pour réaliser les tâches suivantes :

  • Configurer un bucket Cloud Storage sécurisé
  • Gérer des clés et des données chiffrées à l'aide de Key Management Service
  • Consulter des journaux d'audit Cloud Storage

Pour cela, vous allez utiliser des données partielles du corpus Enron, les chiffrer et les charger dans Cloud Storage.

Points abordés

  • Apprendre à chiffrer des données et gérer des clés de chiffrement à l'aide de Cloud Key Management Service (KMS)

Préparation

Avant de cliquer sur le bouton "Démarrer l'atelier"

Lisez ces instructions. Les ateliers sont minutés, et vous ne pouvez pas les mettre en pause. Le minuteur, qui démarre lorsque vous cliquez sur Démarrer l'atelier, indique combien de temps les ressources Google Cloud resteront accessibles.

Cet atelier pratique vous permet de suivre vous-même les activités dans un véritable environnement cloud, et non dans un environnement de simulation ou de démonstration. Nous vous fournissons des identifiants temporaires pour vous connecter à Google Cloud le temps de l'atelier.

Pour réaliser cet atelier :

  • vous devez avoir accès à un navigateur Internet standard (nous vous recommandons d'utiliser Chrome) ;
Remarque : Ouvrez une fenêtre de navigateur en mode incognito/navigation privée pour effectuer cet atelier. Vous éviterez ainsi les conflits entre votre compte personnel et le temporaire étudiant, qui pourraient entraîner des frais supplémentaires facturés sur votre compte personnel.
  • vous disposez d'un temps limité ; une fois l'atelier commencé, vous ne pouvez pas le mettre en pause.
Remarque : Si vous possédez déjà votre propre compte ou projet Google Cloud, veillez à ne pas l'utiliser pour réaliser cet atelier afin d'éviter que des frais supplémentaires ne vous soient facturés.

Démarrer l'atelier et se connecter à la console Google Cloud

  1. Cliquez sur le bouton Démarrer l'atelier. Si l'atelier est payant, un pop-up s'affiche pour vous permettre de sélectionner un mode de paiement. Sur la gauche, vous trouverez le panneau Détails concernant l'atelier, qui contient les éléments suivants :

    • Le bouton Ouvrir la console Google Cloud
    • Le temps restant
    • Les identifiants temporaires que vous devez utiliser pour cet atelier
    • Des informations complémentaires vous permettant d'effectuer l'atelier
  2. Cliquez sur Ouvrir la console Google Cloud (ou effectuez un clic droit et sélectionnez Ouvrir le lien dans la fenêtre de navigation privée si vous utilisez le navigateur Chrome).

    L'atelier lance les ressources, puis ouvre la page Se connecter dans un nouvel onglet.

    Conseil : Réorganisez les onglets dans des fenêtres distinctes, placées côte à côte.

    Remarque : Si la boîte de dialogue Sélectionner un compte s'affiche, cliquez sur Utiliser un autre compte.
  3. Si nécessaire, copiez le nom d'utilisateur ci-dessous et collez-le dans la boîte de dialogue Se connecter.

    {{{user_0.username | "Username"}}}

    Vous trouverez également le nom d'utilisateur dans le panneau Détails concernant l'atelier.

  4. Cliquez sur Suivant.

  5. Copiez le mot de passe ci-dessous et collez-le dans la boîte de dialogue Bienvenue.

    {{{user_0.password | "Password"}}}

    Vous trouverez également le mot de passe dans le panneau Détails concernant l'atelier.

  6. Cliquez sur Suivant.

    Important : Vous devez utiliser les identifiants fournis pour l'atelier. Ne saisissez pas ceux de votre compte Google Cloud. Remarque : Si vous utilisez votre propre compte Google Cloud pour cet atelier, des frais supplémentaires peuvent vous être facturés.
  7. Accédez aux pages suivantes :

    • Acceptez les conditions d'utilisation.
    • N'ajoutez pas d'options de récupération ni d'authentification à deux facteurs (ce compte est temporaire).
    • Ne vous inscrivez pas à des essais gratuits.

Après quelques instants, la console Cloud s'ouvre dans cet onglet.

Remarque : Pour afficher un menu contenant la liste des produits et services Google Cloud, cliquez sur le menu de navigation en haut à gauche. Icône du menu de navigation

Activer Cloud Shell

Cloud Shell est une machine virtuelle qui contient de nombreux outils pour les développeurs. Elle comprend un répertoire d'accueil persistant de 5 Go et s'exécute sur Google Cloud. Cloud Shell vous permet d'accéder via une ligne de commande à vos ressources Google Cloud.

  1. Cliquez sur Activer Cloud Shell Icône Activer Cloud Shell en haut de la console Google Cloud.

Une fois connecté, vous êtes en principe authentifié et le projet est défini sur votre ID_PROJET. Le résultat contient une ligne qui déclare YOUR_PROJECT_ID (VOTRE_ID_PROJET) pour cette session :

Your Cloud Platform project in this session is set to YOUR_PROJECT_ID

gcloud est l'outil de ligne de commande pour Google Cloud. Il est préinstallé sur Cloud Shell et permet la complétion par tabulation.

  1. (Facultatif) Vous pouvez lister les noms des comptes actifs à l'aide de cette commande :
gcloud auth list
  1. Cliquez sur Autoriser.

  2. Vous devez à présent obtenir le résultat suivant :

Résultat :

ACTIVE: * ACCOUNT: student-01-xxxxxxxxxxxx@qwiklabs.net To set the active account, run: $ gcloud config set account `ACCOUNT`
  1. (Facultatif) Vous pouvez lister les ID de projet à l'aide de cette commande :
gcloud config list project

Résultat :

[core] project = <ID_Projet>

Exemple de résultat :

[core] project = qwiklabs-gcp-44776a13dea667a6 Remarque : Pour consulter la documentation complète sur gcloud, dans Google Cloud, accédez au guide de présentation de la gcloud CLI.

Tâche 1 : Créer un bucket Cloud Storage

Pour stocker les données utilisées au cours de cet atelier, vous devez créer votre propre bucket Cloud Storage.

  1. Choisissez un nom pour votre bucket Cloud Storage, par exemple -enron_corpus. Pour en savoir plus sur l'attribution de noms aux buckets, consultez les consignes relatives aux noms des buckets Cloud Storage. Exécutez la commande suivante dans Cloud Shell pour définir une variable et l'associer au nom de votre bucket :
BUCKET_NAME="{{{ project_0.project_id }}}-enron_corpus"
  1. À présent, exécutez la commande suivante pour créer ce bucket :
gsutil mb gs://${BUCKET_NAME}

Cette commande permet également de vérifier que le client de ligne de commande gsutil est correctement configuré, que l'authentification fonctionne et que vous disposez d'un accès en écriture au projet cloud sur lequel vous travaillez.

  1. Une fois votre bucket créé, passez à l'étape suivante pour télécharger le corpus Enron.

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

Créer un bucket Cloud Storage

Tâche 2 : Examiner les données

Le corpus Enron est une vaste base de données contenant plus de 600 000 e-mails rédigés par 158 employés d'Enron Corporation. Ces données ont été copiées dans le bucket Cloud Storage gs://enron_emails/.

  1. Exécutez la commande suivante pour télécharger l'un des fichiers sources en local afin de voir à quoi il ressemble :
gsutil cp gs://enron_emails/allen-p/inbox/1. .
  1. Exécutez maintenant la commande tail sur le fichier téléchargé afin de vérifier que le texte de l'e-mail est présent :
tail 1.

Vous devez obtenir le résultat suivant :

Attached is the Delta position for 1/18, 1/31, 6/20, 7/16, 9/24 << File: west_delta_pos.xls >> Let me know if you have any questions.

Cette commande permet d'afficher le contenu du fichier de messagerie en texte brut. Deux types de fichiers sont susceptibles de vous intéresser : les fichiers de messagerie en texte brut et les fichiers image. Procédez de la même manière si vous souhaitez afficher leur contenu.

Tâche 3 : Activer Cloud KMS

Cloud KMS est un service de gestion des clés cryptographiques sur Google Cloud. Avant d'utiliser KMS, vous devez l'activer dans votre projet. Il est normalement déjà activé dans l'atelier qui vous est proposé ici. Pour le vérifier, exécutez l'une des commandes de la gcloud CLI.

  • Exécutez la commande suivante dans votre session Cloud Shell :
gcloud services enable cloudkms.googleapis.com Remarque : Vous pouvez également activer KMS et d'autres services dans votre projet depuis l'interface utilisateur de la console Cloud.

Vous ne devriez obtenir aucun résultat. Cloud KMS est à présent activé dans votre projet.

Tâche 4 : Créer un trousseau et une clé cryptographique

Vous devez créer un trousseau et une clé cryptographique pour pouvoir chiffrer les données. 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 clé cryptographique se nomme qwiklab.

  1. Exécutez la commande suivante dans Cloud Shell pour définir les variables d'environnement :
KEYRING_NAME=test CRYPTOKEY_NAME=qwiklab
  1. Exécutez la commande gcloud pour créer le trousseau. Dans cet atelier, nous utilisons une zone internationale, mais nous pourrions tout aussi bien définir une région spécifique :
gcloud kms keyrings create $KEYRING_NAME --location global
  1. Créez ensuite une clé cryptographique nommée qwiklab à l'aide du nouveau trousseau :
gcloud kms keys create $CRYPTOKEY_NAME --location global \ --keyring $KEYRING_NAME \ --purpose encryption Remarque : Vous ne pouvez pas supprimer les clés cryptographiques ni les trousseaux dans Cloud KMS.

Vous ne devriez obtenir aucun résultat. Vous venez de créer un trousseau et une clé cryptographique.

  1. Dans la console, cliquez sur le menu de navigation > Sécurité > Gestion des clés pour accéder à la page Gestion des clés.

L'interface utilisateur Web de gestion des clés vous permet d'afficher et de gérer vos clés cryptographiques et vos trousseaux. Vous l'utiliserez également plus tard pour gérer vos autorisations.

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

Créer un trousseau et une clé cryptographique

Tâche 5 : Chiffrer vos données

Vous allez maintenant essayer de chiffrer des données.

  1. Prenez le contenu de l'e-mail que vous venez d'examiner et encodez-le en base64 à l'aide de la commande suivante :
PLAINTEXT=$(cat 1. | base64 -w0) Remarque : L'encodage en base64 permet d'envoyer des données binaires à l'API sous forme de texte brut. Cette commande fonctionne pour les images, les vidéos ou tout autre type de données binaires.

Vous pouvez envoyer le texte encodé en base64 que vous souhaitez chiffrer à la clé spécifiée à l'aide du point de terminaison "encrypt".

  1. Exécutez la commande suivante :
curl -v "https://cloudkms.googleapis.com/v1/projects/$DEVSHELL_PROJECT_ID/locations/global/keyRings/$KEYRING_NAME/cryptoKeys/$CRYPTOKEY_NAME:encrypt" \ -d "{\"plaintext\":\"$PLAINTEXT\"}" \ -H "Authorization:Bearer $(gcloud auth application-default print-access-token)"\ -H "Content-Type: application/json" Remarque : L'action encrypt renvoie un résultat différent à chaque fois, même si vous utilisez un texte et une clé identiques.

La réponse est une charge utile JSON contenant le texte chiffré dans l'attribut ciphertext.

  1. Maintenant que vos données sont chiffrées, vous pouvez les enregistrer dans un fichier et les importer dans votre bucket Cloud Storage. Pour récupérer le texte chiffré à partir de la réponse JSON et l'enregistrer dans un fichier, utilisez 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é ciphertext dans le fichier 1.encrypted. Exécutez la commande suivante :
curl -v "https://cloudkms.googleapis.com/v1/projects/$DEVSHELL_PROJECT_ID/locations/global/keyRings/$KEYRING_NAME/cryptoKeys/$CRYPTOKEY_NAME:encrypt" \ -d "{\"plaintext\":\"$PLAINTEXT\"}" \ -H "Authorization:Bearer $(gcloud auth application-default print-access-token)"\ -H "Content-Type:application/json" \ | jq .ciphertext -r > 1.encrypted
  1. Pour vous assurer que les données peuvent être déchiffrées, appelez le point de terminaison decrypt afin de vérifier que le texte déchiffré correspond à l'e-mail d'origine. Les données chiffrées contiennent des informations sur la version de la clé cryptographique utilisée. Ainsi, la version spécifique n'est jamais fournie au point de terminaison de déchiffrement. Exécutez la commande suivante :
curl -v "https://cloudkms.googleapis.com/v1/projects/$DEVSHELL_PROJECT_ID/locations/global/keyRings/$KEYRING_NAME/cryptoKeys/$CRYPTOKEY_NAME:decrypt" \ -d "{\"ciphertext\":\"$(cat 1.encrypted)\"}" \ -H "Authorization:Bearer $(gcloud auth application-default print-access-token)"\ -H "Content-Type:application/json" \ | jq .plaintext -r | base64 -d Remarque : Le déchiffrement est généralement effectué au niveau de la couche application. Pour découvrir comment chiffrer et déchiffrer des données dans plusieurs langages de programmation, consultez le guide de démarrage rapide de Cloud KMS.
  1. Maintenant que vous avez vérifié que le texte a bien été chiffré, importez le fichier dans votre bucket Cloud Storage.
gsutil cp 1.encrypted gs://${BUCKET_NAME}

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

Chiffrer vos données avec la clé Cloud KMS et les importer dans le bucket de stockage

Tâche 6 : Configurer les autorisations IAM

Dans KMS, il existe deux types d'autorisations principales qui nous intéressent. Le premier permet à un utilisateur ou à un compte de service de gérer des ressources KMS. Le second permet de chiffrer et déchiffrer des données à l'aide de clés.

Tous les utilisateurs disposant de l'autorisation de gestion des clés (cloudkms.admin) peuvent créer des trousseaux ainsi que créer, modifier, désactiver et détruire des clés cryptographiques. L'autorisation cloudkms.cryptoKeyEncrypterDecrypter permet d'appeler les points de terminaison de l'API de chiffrement et de déchiffrement.

Pour cet exercice, vous allez passer par l'utilisateur actuellement autorisé pour attribuer des autorisations IAM.

  1. Pour ce faire, exécutez la commande ci-dessous :
USER_EMAIL=$(gcloud auth list --limit=1 2>/dev/null | grep '@' | awk '{print $2}')
  1. Attribuez ensuite l'autorisation de gestion des ressources KMS à cet utilisateur. Exécutez la commande gcloud suivante pour attribuer l'autorisation IAM permettant de gérer le trousseau que vous venez de créer :
gcloud kms keyrings add-iam-policy-binding $KEYRING_NAME \ --location global \ --member user:$USER_EMAIL \ --role roles/cloudkms.admin

Les clés cryptographiques appartiennent à des trousseaux, qui appartiennent eux-mêmes à des projets. Ainsi, un utilisateur disposant d'un rôle ou d'une autorisation spécifiques de niveau supérieur dans cette hiérarchie hérite des mêmes autorisations sur les ressources enfants. Par exemple, un utilisateur disposant du rôle de propriétaire d'un projet est également propriétaire de tous les trousseaux et de toutes les clés cryptographiques de ce projet. De même, si un utilisateur obtient le rôle cloudkms.admin sur un trousseau, il dispose des autorisations associées sur les clés cryptographiques de ce trousseau.

Sans l'autorisation cloudkms.cryptoKeyEncrypterDecrypter, l'utilisateur autorisé ne peut pas chiffrer ni déchiffrer des données à l'aide des clés.

  1. Exécutez la commande gcloud suivante pour attribuer l'autorisation IAM de chiffrement et de déchiffrement des données à toutes les clés du trousseau que vous avez créé :
gcloud kms keyrings add-iam-policy-binding $KEYRING_NAME \ --location global \ --member user:$USER_EMAIL \ --role roles/cloudkms.cryptoKeyEncrypterDecrypter

Vous pouvez maintenant consulter les autorisations attribuées dans la section "Clés cryptographiques" de la page Gestion de clés.

  1. Cochez la case à côté du nom du trousseau (test), puis cliquez sur Comptes principaux dans le panneau d'informations de droite.

Le menu qui s'affiche vous permet de voir les comptes et les autorisations du trousseau que vous venez d'ajouter.

Tâche 7 : Sauvegarder des données dans la ligne de commande

Maintenant que vous savez comment chiffrer un seul fichier et que vous êtes autorisé à le faire, vous pouvez exécuter un script afin de sauvegarder tous les fichiers d'un répertoire. Dans cet exemple, nous allons copier tous les e-mails associés à allen-p, puis nous allons les chiffrer et les importer dans un bucket Cloud Storage.

  1. Commencez par copier tous les e-mails du répertoire allen-p dans votre répertoire de travail actuel :
gsutil -m cp -r gs://enron_emails/allen-p .
  1. À présent, copiez et collez la commande suivante dans Cloud Shell pour sauvegarder et chiffrer tous les fichiers du répertoire allen-p dans votre bucket Cloud Storage :
MYDIR=allen-p FILES=$(find $MYDIR -type f -not -name "*.encrypted") for file in $FILES; do PLAINTEXT=$(cat $file | base64 -w0) curl -v "https://cloudkms.googleapis.com/v1/projects/$DEVSHELL_PROJECT_ID/locations/global/keyRings/$KEYRING_NAME/cryptoKeys/$CRYPTOKEY_NAME:encrypt" \ -d "{\"plaintext\":\"$PLAINTEXT\"}" \ -H "Authorization:Bearer $(gcloud auth application-default print-access-token)" \ -H "Content-Type:application/json" \ | jq .ciphertext -r > $file.encrypted done gsutil -m cp allen-p/inbox/*.encrypted gs://${BUCKET_NAME}/allen-p/inbox

Ce script parcourt en boucle tous les fichiers d'un répertoire donné, les chiffre à l'aide de l'API KMS, puis les importe dans Cloud Storage.

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

Chiffrer plusieurs fichiers à l'aide de l'API KMS et les importer dans Cloud Storage

Une fois l'exécution du script terminée, vous pouvez cliquer sur "Stockage" dans le menu de gauche de la console pour consulter les fichiers chiffrés.

  1. Pour retrouver les fichiers, accédez au menu de navigation > Cloud Storage > Buckets > VOTRE_BUCKET > allen-p > inbox. L'écran qui s'affiche devrait ressembler à ce qui suit :

Contenu du bucket

Remarque : Cloud Storage accepte le chiffrement côté serveur, qui gère la rotation des clés de vos données. Il s'agit de la méthode recommandée pour chiffrer des données dans Cloud Storage. L'exemple ci-dessus n'est fourni qu'à titre de démonstration.

Tâche 8 : Consulter les journaux Cloud Audit Logs

Les journaux Cloud Audit Logs se composent de deux flux de journaux (l'un pour les activités d'administration et l'autre pour les accès aux données), qui sont générés par les services Google Cloud pour vous aider à répondre à la question "qui a fait quoi, où et quand ?" dans vos projets Google Cloud.

  • Pour consulter l'activité associée à une ressource dans KMS, accédez au menu de navigation > Présentation du cloud > onglet Activité. L'interface utilisateur de l'activité Cloud s'affiche. Cliquez sur Afficher l'explorateur de journaux, puis sélectionnez Liste des clés Cloud KMS en tant que Type de ressource. Vous devriez voir apparaître des renseignements sur la création du trousseau et sur toutes les modifications apportées.

Vous savez maintenant comment chiffrer et importer des données à l'aide de KMS et de Cloud Storage.

Sujets abordés

  • Gérer des autorisations KMS avec IAM
  • Chiffrer des données avec KMS
  • Utiliser Cloud Storage pour stocker des données chiffrées.
  • Consulter toute l'activité des clés cryptographiques et des trousseaux avec Cloud Audit Logs

Tâche 9 : Tester vos connaissances

Testez vos connaissances sur Cloud KMS en répondant à ce questionnaire.

Félicitations !

Vous avez appris à chiffrer des données et à gérer des clés de chiffrement à l'aide de Cloud Key Management Service (KMS).

Étapes suivantes et informations supplémentaires

Dernière mise à jour du manuel : 15 avril 2024

Dernier test de l'atelier : 31 août 2023

Copyright 2024 Google LLC Tous droits réservés. Google et le logo Google sont des marques de Google LLC. Tous les autres noms d'entreprises et de produits peuvent être des marques des entreprises auxquelles ils sont associés.

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