Créer des clés de chiffrement avec Cloud KMS
Ce guide de démarrage rapide vous explique comment créer et utiliser des clés de chiffrement avec Cloud Key Management Service dans un projet dont vous êtes propriétaire. Ces instructions utilisent la consoleGoogle Cloud pour créer des trousseaux de clés, des clés et des versions de clés dans Cloud KMS. Pour obtenir des instructions utilisant d'autres méthodes, consultez Présentation d'Autokey, Créer un trousseau de clés et Créer une clé.
Dans ce démarrage rapide, les requêtes sont envoyées à l'API Cloud KMS via la ligne de commande. Pour afficher des exemples de programmation où les requêtes sont envoyées à l'API Cloud KMS via des bibliothèques clientes, consultez la page Chiffrer et déchiffrer.
Avant de commencer
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
Install the Google Cloud CLI.
-
Si vous utilisez un fournisseur d'identité (IdP) externe, vous devez d'abord vous connecter à la gcloud CLI avec votre identité fédérée.
-
Pour initialiser la gcloud CLI, exécutez la commande suivante :
gcloud init -
Create or select a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Create a Google Cloud project:
gcloud projects create PROJECT_ID
Replace
PROJECT_IDwith a name for the Google Cloud project you are creating. -
Select the Google Cloud project that you created:
gcloud config set project PROJECT_ID
Replace
PROJECT_IDwith your Google Cloud project name.
-
Verify that billing is enabled for your Google Cloud project.
-
Enable the Cloud KMS API:
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.gcloud services enable cloudkms.googleapis.com
-
Grant roles to your user account. Run the following command once for each of the following IAM roles:
roles/cloudkms.admin, roles/cloudkms.cryptoKeyEncrypterDecrypter, roles/servicemanagement.serviceConsumergcloud projects add-iam-policy-binding PROJECT_ID --member="user:USER_IDENTIFIER" --role=ROLE
Replace the following:
PROJECT_ID: Your project ID.USER_IDENTIFIER: The identifier for your user account. For example,myemail@example.com.ROLE: The IAM role that you grant to your user account.
-
Install the Google Cloud CLI.
-
Si vous utilisez un fournisseur d'identité (IdP) externe, vous devez d'abord vous connecter à la gcloud CLI avec votre identité fédérée.
-
Pour initialiser la gcloud CLI, exécutez la commande suivante :
gcloud init -
Create or select a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Create a Google Cloud project:
gcloud projects create PROJECT_ID
Replace
PROJECT_IDwith a name for the Google Cloud project you are creating. -
Select the Google Cloud project that you created:
gcloud config set project PROJECT_ID
Replace
PROJECT_IDwith your Google Cloud project name.
-
Verify that billing is enabled for your Google Cloud project.
-
Enable the Cloud KMS API:
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.gcloud services enable cloudkms.googleapis.com
-
Grant roles to your user account. Run the following command once for each of the following IAM roles:
roles/cloudkms.admin, roles/cloudkms.cryptoKeyEncrypterDecrypter, roles/servicemanagement.serviceConsumergcloud projects add-iam-policy-binding PROJECT_ID --member="user:USER_IDENTIFIER" --role=ROLE
Replace the following:
PROJECT_ID: Your project ID.USER_IDENTIFIER: The identifier for your user account. For example,myemail@example.com.ROLE: The IAM role that you grant to your user account.
- Commencez à utiliser l'API.
- Consultez la documentation de référence sur l'API.
- En savoir plus sur le chiffrement des données au repos
Trousseaux de clés et clés
Pour chiffrer et déchiffrer du contenu, vous avez besoin d'une clé Cloud KMS qui fait partie d'un trousseau de clés.
Créez un trousseau de clés nommé test et une clé nommée quickstart. Consultez la présentation de la hiérarchie des objets pour plus d'informations sur ces objets et sur leurs relations.
gcloud kms keyrings create "test" \
--location "global"gcloud kms keys create "quickstart" \
--location "global" \
--keyring "test" \
--purpose "encryption"Vous pouvez utiliser l'option list pour afficher le nom et les métadonnées de la clé que vous venez de créer.
gcloud kms keys list \
--location "global" \
--keyring "test"Vous devriez voir les éléments suivants :
NAME PURPOSE PRIMARY_STATE projects/PROJECT_ID/locations/global/keyRings/test/cryptoKeys/quickstart ENCRYPT_DECRYPT ENABLED
Chiffrer des données
Maintenant que vous avez une clé, vous pouvez vous en servir pour chiffrer un texte ou un contenu binaire.
Stockez du texte à chiffrer dans un fichier nommé "mysecret.txt".
echo -n "Some text to be encrypted" > mysecret.txtPour chiffrer les données avec gcloud kms encrypt, fournissez les informations relatives à votre clé et spécifiez le nom du fichier texte à chiffrer ainsi que celui du fichier qui contiendra les contenus chiffrés :
gcloud kms encrypt \
--location "global" \
--keyring "test" \
--key "quickstart" \
--plaintext-file ./mysecret.txt \
--ciphertext-file ./mysecret.txt.encryptedLa méthode encrypt enregistre vos contenus chiffrés dans le fichier spécifié par l'indicateur --ciphertext-file.
Déchiffrer le texte chiffré
Pour chiffrer les données avec gcloud kms decrypt, fournissez les informations relatives à votre clé et spécifiez le nom du fichier texte chiffré (fichier ciphertext) à déchiffrer ainsi que celui du fichier qui contiendra les contenus déchiffrés :
gcloud kms decrypt \
--location "global" \
--keyring "test" \
--key "quickstart" \
--ciphertext-file ./mysecret.txt.encrypted \
--plaintext-file ./mysecret.txt.decryptedLa méthode decrypt enregistre vos contenus déchiffrés dans le fichier spécifié par l'indicateur --plaintext-file.
Pour déchiffrer le contenu chiffré, vous devez utiliser la même clé que celle qui a servi à chiffrer le contenu.
Effectuer un nettoyage
Pour éviter que les ressources utilisées dans cette démonstration soient facturées sur votre compte Google Cloud , supprimez le projet Google Cloud qui les contient.
Dressez une liste des versions disponibles pour votre clé :
gcloud kms keys versions list \
--location "global" \
--keyring "test" \
--key "quickstart"Pour détruire une version, exécutez la commande suivante, où 1 correspond au numéro de la version de clé à détruire :
gcloud kms keys versions destroy 1 \
--location "global" \
--keyring "test" \
--key "quickstart"