Gestion des clés Google (GCP KMS) : Guide de démarrage

Sécuriser les données est une priorité absolue pour toute organisation, et le chiffrement est l’un des moyens les plus efficaces de protéger les données. Mais comment exactement? La plateforme Google Cloud (GCP) propose un service de gestion des clés appelé Google Key Management Service (KMS), qui vous permet de créer et de gérer rapidement des clés de chiffrement.

Dans ce tutoriel, vous apprendrez à créer et à utiliser une clé dans GCP KMS. Vous découvrirez également quelques concepts importants liés à la gestion des clés, tels que les clés, les trousseaux de clés et les versions de clés.

Prêt ? Continuez à lire et améliorez la sécurité de vos données !

Prérequis

Ce tutoriel sera une démonstration pratique. Pour suivre, assurez-vous d’avoir un compte GCP avec une facturation active, mais un essai gratuit suffirait.

A Google Cloud Project is a collection of resources you create and manage in GCP. Note that you should create separate projects for each of your applications. Doing so lets you efficiently manage the resources for each application. In the end, you can delete all the resources associated with a project, which is helpful for clean-up.

Pour créer un nouveau projet Google Cloud :

1. Ouvrez votre navigateur web préféré et connectez-vous à la Console GCP. Comme la console AWS, la console GCP est une interface basée sur le web pour gérer vos ressources dans Google Cloud.

2. Sur votre console GCP, accédez à la page Gérer les ressources, où vous pouvez voir et gérer tous vos projets existants.

3. Ensuite, cliquez sur le bouton CRÉER UN PROJET pour créer un nouveau projet.

Creating a new Google Cloud project

Enfin, configurez les paramètres suivants pour votre nouveau projet, et cliquez sur CRÉER pour créer votre projet.

  • Nom du projet – Entrez un nom pour votre projet, qui n’a pas besoin d’être unique et peut être modifié ultérieurement. Le choix de ce tutoriel pour le nom du projet est gcp-kms-demo.

  • Emplacement – Sélectionnez l’organisation parente ou le dossier où vous souhaitez créer ce projet. Votre projet nouvellement créé sera le parent supérieur. Mais vous pouvez sauter ce champ si vous n’avez pas d’organisation.

Le champ Emplacement peut ne pas apparaître si vous utilisez un compte d’essai.

Configuring a new Google Cloud project

Si réussi, vous verrez votre projet Google Cloud nouvellement créé répertorié, comme indiqué ci-dessous.

Viewing the newly-created Google Cloud project

Activation de l’API Cloud KMS pour le projet Google Cloud

Vous venez de créer votre premier Si réussi, vous verrez votre projet Google Cloud nouvellement créé répertorié, comme indiqué ci-dessous.projet Cloud, et en général, vous ne pouvez pas le laisser sans protection. Ne vous inquiétez pas ! L’API Cloud KMS est un ensemble d’API de chiffrement fournies par Google que vous pouvez utiliser pour protéger vos données.

Pour utiliser l’API Cloud KMS, vous devez l’activer pour votre projet :

1. Accédez à la page sélecteur de projet Google et sélectionnez votre projet Google Cloud (gcp-kms-demo).

Selecting a project

2. Ensuite, accédez à la page Activer l’accès à l’API et cliquez sur SUIVANT pour confirmer l’activation de l’API pour le projet sélectionné.

Confirming the selected Google Cloud project

3. Maintenant, cliquez sur ACTIVER pour activer l’API Cloud KMS.

Enabling the Cloud KMS API

À ce stade, l’API Cloud KMS est activée pour votre projet. Vous pouvez maintenant commencer à utiliser l’API Cloud KSM pour créer et gérer des clés de chiffrement.

Verifying the Cloud KMS API is enabled

Démarrage de Cloud Shell pour créer des clés et des trousseaux de clés

Activer l’API Cloud KMS vous prépare à créer des clés et des trousseaux de clés pour chiffrer et déchiffrer vos données. Les clés et les trousseaux de clés sont des concepts fondamentaux dans Cloud KMS.

Key A key is an encryption key stored in a keyring that you can use to encrypt and decrypt your data. Each key has a name, and the name must be unique within the keyring. You can use IAM ( Identity and Access Management) policies to control who has access to keys.
Keyring A keyring is a container in Cloud KMS that holds a set of keys. You can think of the keyring as a folder on your computer that contains many files. But in essence, a keyring holds a set of keys in a specific Cloud KMS location.

Mais avant de créer des clés et des trousseaux de clés, vous devez d’abord démarrer le Cloud Shell. Le Cloud Shell est un shell gratuit et interactif que vous pouvez utiliser pour exécuter des commandes sur la plateforme Google Cloud sans installer d’outils sur votre machine.

1. Dans la Console GCP, cliquez sur le bouton Activer Cloud Shell (en haut à droite), comme indiqué ci-dessous, pour démarrer le Cloud Shell.

Starting the Cloud Shell

A Cloud Shell session initializes, as shown below (at the bottom of the page), where you can run commands.

Viewing the Cloud Shell prompt

2. Ensuite, exécutez la commande gcloud suivante Cette invite apparaît la première fois que vous exécutez la commande gcloud dans le Cloud Shell, vous demandant d’autoriser l’outil gcloud à accéder à l’API KSM.dans le Cloud Shell pour créer un nouveau trousseau de clés (keyrings) appelé kms-demo-keyring dans l’emplacement global.

gcloud kms keyrings create "kms-demo-keyring" \
--location "global"

–location « global »

Lorsque vous y êtes invité, cliquez sur AUTORISER pour continuer à exécuter la commande.

Authorizing access to the KSM API

Cette invite apparaît la première fois que vous exécutez la commande gcloud dans le Cloud Shell, vous demandant d’autoriser l’outil gcloud à accéder à l’API KSM.

Creating a new keyring

Comme le montre ci-dessous, il n’y a pas de messages de sortie lorsque le trousseau de clés est créé avec succès.

Connexe:Utilisez les clés de chiffrement comme un pro avec AWS Key Management

gcloud kms keys create "kms-demo-key01" \
  --location "global" \
  --keyring "kms-demo-keyring" \
  --purpose "encryption"

Notez que l’emplacement (global) doit être le même que celui que vous avez défini pour le trousseau de clés.

–location « global » \

–keyring « kms-demo-keyring » \

Creating a key for encryption

–purpose « encryption »

gcloud kms keys list --location "global" --keyring "kms-demo-keyring"

Chaque fois que vous créez ou faites pivoter une clé, Cloud KMS crée une nouvelle version de la clé. Cette fonctionnalité vous permet de revenir facilement à une version précédente si nécessaire.

PURPOSE ENCRYPT_DECRYPT Indicates the purpose of the key (encryption and decryption).
ALGORITHM GOOGLE_SYMMETRIC_ENCRYPTION Indicates the key uses Google Symmetric Encryption, the default algorithm for Cloud KMS keys.
PROTECTION_LEVEL SOFTWARE Indicates the key is software-protected.
LABELS You can add labels to keys to categorize them or to add additional information.
PRIMARY ID 1 Indicates the key is the primary key for the keyring, which is what Cloud KMS uses by default when you do not specify a key.

Note that you can have only one primary key per keyring.

PRIMARY STATE ENABLED Shows the current status of the key. The ENABLED state indicates the key can be used for its specified purpose.
Listing the keys in a keyring

Comme pour la création d’un trousseau de clés, il n’y a pas de messages de sortie lorsque la clé est créée avec succès.

Mais à ce stade, vous disposez d’un trousseau de clés et d’une clé que vous pouvez utiliser pour chiffrer et déchiffrer vos données.

4. Maintenant, exécutez la commande suivante pour lister les clés dans un –keyring (kms-demo-keyring)

Vous verrez une sortie similaire à la capture d’écran ci-dessous avec les informations suivantes :

echo "This is some sensitive data that I want to encrypt." > gcp-kms-demo.txt

Chiffrement et déchiffrement des données avec GCP KMS

Le chiffrement est une ligne de défense cruciale pour dissuader l'accès des parties malveillantes aux données sensibles. Et maintenant que vous avez une clé de chiffrement, vous pouvez l'utiliser pour chiffrer vos données.
ls cat gcp-kms-demo.txt
Pour chiffrer des données avec GCP KMS :
cat gcp-kms-demo.txt
Listing the text file and verifying the data

1. Exécutez la commande ci-dessous, qui ne fournit pas de sortie, mais crée un fichier texte (gcp-kms-demo.txt) avec certains textes à chiffrer.

2. Ensuite, exécutez chaque commande ci-dessous pour lister (ls) le fichier texte (gcp-kms-demo.txt) et afficher (cat) son contenu pour vérifier les données.

gcloud kms encrypt \
    --location "global" \
    --keyring "kms-demo-keyring" \
    --key "kms-demo-key01" \
    --plaintext-file ./gcp-kms-demo.txt \
    --ciphertext-file ./gcp-kms-demo.txt.encrypted
Encrypting data

# Liste le fichier texte

cat gcp-kms-demo.txt.encrypted

# Affiche le contenu du fichier texte

3. Une fois vérifié, exécutez la commande ci-dessous pour chiffrer les données dans votre fichier (gcp-kms-demo.txt) en utilisant votre clé (kms-demo-key01). Les données chiffrées seront alors stockées dans un nouveau fichier appelé gcp-kms-demo.txt.encrypted.

Verifying the file data is encrypted

–location « global » \

–keyring « kms-demo-keyring » \

gcloud kms decrypt \
  --location "global" \
  --keyring "kms-demo-keyring" \
  --key "kms-demo-key01" \
  --ciphertext-file ./gcp-kms-demo.txt.encrypted \
  --plaintext-file ./gcp-kms-demo.txt.decrypted
Decrypting encrypted data

–key « kms-demo-key01 » \

cat gcp-kms-demo.txt.decrypted

–plaintext-file ./gcp-kms-demo.txt \

Verifying the encrypted file has been decrypted

–ciphertext-file ./gcp-kms-demo.txt.encrypted

4. Maintenant, exécutez la commande suivante pour essayer de visualiser les données du fichier chiffré (gcp-kms-demo.txt.encrypted).

Vous verrez des symboles cassés, étranges et illisibles, comme indiqué ci-dessous. Cette sortie indique que le fichier a été chiffré avec succès.

gcloud kms keys versions list \
  --location "global" \
  --keyring "kms-demo-keyring" \
  --key "kms-demo-key01"

Vous devez stocker ce fichier chiffré dans un endroit sécurisé. Par exemple, vous pouvez stocker plusieurs copies dans AWS S3, GCP Cloud Storage, ou Azure Blob Storage. Google Cloud ne sauvegarde pas la version en texte clair de vos données. Ainsi, si vous perdez le fichier chiffré, le décryptage du fichier pour récupérer les données originales est impossible.

Listing all the key versions

Articles connexes:Comment téléverser un fichier vers S3 avec AWS CLI

5. Une fois chiffré, exécutez la commande ci-dessous pour décrypter vos données (gcp-kms-demo.txt.encrypted) en utilisant la même clé (kms-demo-key01). Mais cette fois, les données décryptées sont stockées dans un nouveau fichier appelé gcp-kms-demo.txt.decrypted.

gcloud kms keys versions destroy 1\
  --location "global" \
  --keyring "kms-demo-keyring" \
  --key "kms-demo-key01"

Tout comme avec le chiffrement, cette commande ne fournit pas de sortie, mais vous vérifierez le déchiffrement à l’étape suivante.

gcloud kms keys versions list

–location « global » \

–keyring « kms-demo-keyring » \

Verifying the key has been scheduled for destruction

–key « kms-demo-key01 » \

Deleting the Google Cloud project

–ciphertext-file ./gcp-kms-demo.txt.encrypted \

–plaintext-file ./gcp-kms-demo.txt.decrypted

Confirming Google Cloud project deletion

6. Enfin, exécutez la commande suivante pour afficher (cat) le fichier décrypté (gcp-kms-demo.txt.decrypted) et vérifiez que les données ont été décryptées avec succès.

Ci-dessous, vous pouvez voir les données originales que vous avez enregistrées dans le fichier texte. Félicitations ! Vous avez réussi à chiffrer et déchiffrer des données en utilisant Google Cloud KMS.

Nettoyage des ressources Google Cloud

Source:
https://adamtheautomator.com/gcp-kms/