arrow_back

Utiliser des clés de chiffrement fournies par le client avec Cloud Storage

Accédez à plus de 700 ateliers et cours

Utiliser des clés de chiffrement fournies par le client avec Cloud Storage

Atelier 1 heure 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 Storage chiffre toujours vos données côté serveur à l'aide d'une clé de chiffrement gérée par Google avant qu'elles ne soient écrites sur le disque, sans frais supplémentaires. Plutôt que d'utiliser une clé de chiffrement côté serveur gérée par Google, vous pouvez fournir votre propre clé AES-256, avec un encodage en base64 standard. Il s'agit d'une clé de chiffrement fournie par le client.

Dans cet atelier, vous allez configurer des clés de chiffrement fournies par le client (CSEK, Customer-Supplied Encryption Keys) pour Cloud Storage. Les fichiers seront ensuite importés dans un bucket de stockage. Vous générerez par la suite une nouvelle clé de chiffrement et effectuerez une rotation des clés CSEK.

Cloud Storage ne stocke pas votre clé de manière permanente sur les serveurs Google et ne la gère pas. Vous devez la fournir pour chaque opération Cloud Storage, et elle est supprimée définitivement des serveurs Google une fois l'opération terminée. Cloud Storage ne stocke qu'un hachage chiffré de la clé afin que les requêtes ultérieures puissent être validées par rapport à celui-ci.

Vous ne pouvez pas récupérer votre clé à partir de ce hachage, et le hachage ne peut pas être utilisé pour déchiffrer vos données.

Objectifs

Dans cet atelier, vous apprendrez à :

  • configurer des CSEK pour Cloud Storage ;
  • utiliser des CSEK pour chiffrer des fichiers dans Cloud Storage ;
  • supprimer des fichiers locaux de Cloud Storage et vérifier le chiffrement ;
  • alterner vos clés de chiffrement sans télécharger ni réimporter de données.

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 tout au long de l'atelier.

Créer un compte de service IAM

Remarque : Dans cet atelier, vous allez lancer une VM dans Compute Engine et y exécuter la plupart des tâches. Vous devez tout d'abord créer un compte de service pour fournir à la VM les autorisations requises pour réaliser l'atelier.
  1. Dans la console Google Cloud, accédez au menu de navigation > IAM et administration > Comptes de service.
  2. Cliquez sur Créer un compte de service.
  3. Spécifiez cseklab dans le champ Nom du compte de service.
  4. Cliquez sur Créer et continuer.
  5. Dans le champ Rôle, sélectionnez Cloud Storage > Administrateur Storage.
  6. Cliquez sur Continuer.
  7. Cliquez sur OK.

Créer une VM Compute Engine

  1. Dans la console Cloud, accédez au menu de navigation > Compute Engine > Instances de VM. Cliquez sur Créer une instance.

  2. Spécifiez les paramètres suivants et conservez les valeurs par défaut des autres paramètres.

  • Nom : cseklab-vm
  • Région :
  • Zone :
  • Série : E2
  • Type de machine : e2-micro
  • Compte de service : le compte de service cseklab qui vient d'être créé
  • Niveaux d'accès : sélectionnez Définir l'accès pour chaque API. Pour Stockage, sélectionnez Complet dans le menu déroulant.
  1. Cliquez sur Créer.
  2. Une fois la VM lancée, cliquez sur le bouton SSH pour vous connecter à la VM.

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. Vous pouvez copier cet ID depuis le volet Détails de connexion dans Qwiklabs.
  1. À partir du terminal SSH connecté à cseklab-vm, exécutez la commande suivante pour créer une variable d'environnement destinée à stocker le nom de votre bucket :
export NOM_DU_BUCKET=[AJOUTER ID_PROJET_GOOGLE_CLOUD ICI]-csek
  1. Saisissez la commande suivante pour créer le bucket :
gsutil mb -l us gs://$NOM_DU_BUCKET

Cliquez sur Vérifier ma progression pour valider l'objectif. Configurer les ressources requises

Télécharger un exemple de fichier avec CURL et créer deux copies

  1. Téléchargez un exemple de fichier à l'aide de la commande suivante (il s'agit d'un fichier HTML de documentation Hadoop accessible publiquement). Ce fichier sera copié dans le bucket de stockage de l'atelier :
curl \ https://hadoop.apache.org/docs/current/\ hadoop-project-dist/hadoop-common/\ ClusterSetup.html > setup.html
  1. Créez deux copies du fichier :
cp setup.html setup2.html cp setup.html setup3.html

Tâche 2 : Configurer des clés de chiffrement fournies par le client

Dans cette tâche, vous allez générer une CSEK, importer le fichier dans Cloud Console, puis supprimer la copie locale.

Générer une CSEK

Remarque : Quand vous utilisez des clés de chiffrement fournies par le client, c'est à vous de les générer et de les gérer. Vous devez fournir à Cloud Storage une clé composée d'une chaîne de 256 bits encodée en base64 selon la norme RFC 4648. Dans cet atelier, vous allez générer une clé composée d'un nombre aléatoire.
  1. Dans le terminal SSH de cseklab-vm, exécutez la commande suivante pour créer une clé :
openssl rand 32 > mykey.txt openssl base64 -in mykey.txt

Exemple de résultat :

tmxElCaabWvJqR7uXEWQF39DhWTcDvChzuCmpHe6sb0=
  1. Copiez la valeur de la clé générée. Vous en aurez besoin pour une utilisation ultérieure.

Modifier le fichier .boto

Remarque : Les paramètres de contrôle du chiffrement se trouvent dans un fichier de configuration gsutil nommé .boto.
  1. Exécutez la commande suivante dans le terminal SSH afin de vérifier que le fichier .boto existe :
ls -al
  1. Si le fichier .boto n'apparaît pas, exécutez les commandes suivantes pour le générer et l'ajouter à la liste :
gsutil config -n ls -al
  1. Pour modifier le fichier .boto, exécutez la commande suivante :
nano .boto
  1. Dans le fichier .boto, recherchez la ligne contenant #encryption_key=. Pour rechercher dans nano, cliquez sur le clavier situé en haut à droite de la fenêtre SSH, sélectionnez Ctrl+W et saisissez #encrypt.

Ctrl+W sur un clavier virtuel

  1. Supprimez le caractère # pour annuler la mise en commentaire de la ligne "encryption_key", puis collez la valeur de la clé précédemment générée.

Exemple :

Avant : # encryption_key= Après : encryption_key=tmxElCaabWvJqR7uXEWQF39DhWTcDvChzuCmpHe6sb0=
  1. Appuyez sur Ctrl+X pour quitter, puis sur Y pour enregistrer le fichier. Appuyez ensuite sur Entrée pour confirmer le nom de fichier.

Importer les fichiers (chiffrés) et vérifier le résultat dans Cloud Console

  1. Exécutez les commandes suivantes pour importer les deux fichiers :
gsutil cp setup.html gs://$NOM_DU_BUCKET gsutil cp setup2.html gs://$NOM_DU_BUCKET
  1. Revenez dans la console Cloud et consultez le contenu du bucket de stockage. Pour cela, accédez au menu de navigation > Cloud Storage, puis cliquez sur le bucket.
Remarque : Les fichiers setup.html et setup2.html indiquent qu'ils sont chiffrés par le client.

Cliquez sur Vérifier ma progression pour valider l'objectif. Configurer des clés de chiffrement fournies par le client

Supprimer un fichier local, le copier depuis Cloud Storage et vérifier le chiffrement

  1. Supprimez le fichier local setup.html en exécutant la commande suivante :
rm setup.html
  1. Pour copier de nouveau le fichier à partir du bucket, exécutez la commande suivante :
gsutil cp gs://$NOM_DU_BUCKET/setup.html ./
  1. Pour consulter le fichier et vérifier qu'il a bien été rétabli, exécutez la commande suivante :
cat setup.html

Tâche 3 : Alterner des CSEK

Dans cette tâche, vous allez alterner vos CSEK. Pour alterner des CSEK, vous devez remplacer la valeur de configuration encryption_key par une valeur de configuration decryption_key, puis utiliser une nouvelle valeur pour encryption_key.

Vous pouvez ensuite exécuter la commande de réécriture pour alterner des clés dans le cloud sans télécharger ni réimporter les données.

Générer une autre CSEK et l'ajouter au fichier .boto

  1. Dans le terminal SSH, exécutez cette commande pour générer une nouvelle clé :
openssl rand 32 > mykey.txt openssl base64 -in mykey.txt
  1. Copiez la valeur de la clé générée depuis le résultat de la commande. La clé doit être sous la forme tmxElCaabWvJqR7uXEWQF39DhWTcDvChzuCmpHe6sb0=.

  2. Pour ouvrir le fichier .boto, exécutez la commande suivante :

nano .boto
  1. Recherchez la ligne encryption_key et ajoutez le caractère # au début pour la mettre en commentaire.
  2. Ajoutez une ligne commençant par encryption_key=, puis collez la valeur de la nouvelle clé.

Résultat :

Avant : encryption_key=2dFWQGnKhjOcz4h0CudPdVHLG2g+OoxP8FQOIKKTzsg= Après : # encryption_key=2dFWQGnKhjOcz4h0CudPdVHLG2g+OoxP8FQOIKKTzsg= encryption_key=HbFK4I8CaStcvKKIx6aNpdTse0kTsfZNUjFpM+YUEjY=
  1. Supprimez le caractère # pour annuler la mise en commentaire de la ligne decryption_key1=.
  2. Copiez la valeur encryption_key d'origine à partir de la ligne ayant été mise en commentaire et collez-la sur la ligne decryption_key1.

Résultat :

Avant : # encryption_key=2dFWQGnKhjOcz4h0CudPdVHLG2g+OoxP8FQOIKKTzsg= encryption_key=HbFK4I8CaStcvKKIx6aNpdTse0kTsfZNUjFpM+YUEjY== # decryption_key1= Après : # encryption_key=2dFWQGnKhjOcz4h0CudPdVHLG2g+OoxP8FQOIKKTzsg= encryption_key=HbFK4I8CaStcvKKIx6aNpdTse0kTsfZNUjFpM+YUEjY== decryption_key1=2dFWQGnKhjOcz4h0CudPdVHLG2g+OoxP8FQOIKKTzsg=

La ligne "encryption_key" d'origine qui a été mise en commentaire peut également être totalement supprimée du fichier.

  1. Appuyez sur Ctrl+X pour quitter, puis sur Y pour enregistrer le fichier. Appuyez ensuite sur Entrée pour confirmer le nom de fichier.

Chiffrer un fichier à l'aide de la nouvelle clé et le déchiffrer à l'aide de l'ancienne clé

  1. Importez un nouveau fichier dans le bucket. Ce fichier sera chiffré avec la nouvelle clé :
gsutil cp setup3.html gs://$NOM_DU_BUCKET Remarque : À ce stade, les fichiers setup.html et setup2.html ont été chiffrés à l'aide de la clé d'origine, et le fichier setup3.html a été chiffré avec la nouvelle clé.
  1. Supprimez les fichiers locaux setup2.html et setup3.html à l'aide des commandes suivantes :
rm setup2.html rm setup3.html
  1. Pour copier de nouveau les fichiers à partir du bucket de stockage, exécutez les commandes suivantes :
gsutil cp gs://$NOM_DU_BUCKET/setup2.html ./ gsutil cp gs://$NOM_DU_BUCKET/setup3.html ./
  1. Pour consulter les fichiers chiffrés et vérifier qu'ils ont bien été rétablis, exécutez les commandes suivantes :
cat setup2.html cat setup3.html Remarque : Dans cet atelier, vous voyez comment générer de nouvelles clés pour de nouvelles données, mais notez que les fichiers chiffrés à l'aide des anciennes clés peuvent toujours être déchiffrés.

Réécrire la clé pour le premier fichier et mettre en commentaire l'ancienne clé de déchiffrement

Si un fichier chiffré est réécrit, il peut être déchiffré à l'aide de la clé "decryption_key1" définie précédemment et chiffré à l'aide de la nouvelle clé "encryption_key".

  1. Exécutez la commande suivante pour réécrire setup.html :
gsutil rewrite -k gs://$NOM_DU_BUCKET/setup.html Remarque : À ce stade, le fichier setup.html a été réécrit à l'aide de la nouvelle clé de chiffrement et le fichier setup3.html a été chiffré, également à l'aide de cette clé. Le fichier setup2.html est toujours chiffré à l'aide de la clé d'origine, pour que vous puissiez observer ce qu'il se passe si vous n'alternez pas correctement vos clés.
  1. Ouvrez le fichier .boto à l'aide de la commande suivante :
nano .boto
  1. Ajoutez le caractère # au début de la ligne decryption_key1 actuelle pour la remettre en commentaire.

  2. Appuyez sur Ctrl+X pour quitter, puis sur Y pour enregistrer le fichier. Appuyez ensuite sur Entrée pour confirmer le nom de fichier.

  3. Supprimez les trois fichiers locaux à l'aide la commande suivante :

rm setup*.html
  1. Téléchargez setup.html et setup3.html (tous les deux chiffrés à l'aide de la nouvelle clé) en exécutant les commandes suivantes :
gsutil cp gs://$NOM_DU_BUCKET/setup.html ./ gsutil cp gs://$NOM_DU_BUCKET/setup3.html ./
  1. Pour consulter les fichiers chiffrés et vérifier qu'ils ont bien été rétablis, exécutez les commandes suivantes :
cat setup.html cat setup3.html
  1. Essayez de télécharger setup2.html (chiffré avec la clé d'origine) à l'aide de la commande suivante :
gsutil cp gs://$NOM_DU_BUCKET/setup2.html ./ Remarque : Que s'est-il passé ? Le fichier setup2.html n'a pas été réécrit avec la nouvelle clé. Cela signifie qu'il ne peut plus être déchiffré, et que l'opération de copie du fichier a échoué.

Vous avez réussi à alterner des CSEK.

Félicitations !

Dans cet atelier, vous avez :

  • configuré des CSEK pour Cloud Storage ;
  • utilisé des CSEK pour chiffrer des fichiers dans Cloud Storage ;
  • supprimé des fichiers locaux de Cloud Storage et vérifié leur chiffrement ;
  • alterné des clés de chiffrement sans télécharger ni réimporter de données.

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 2020 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.

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.