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 Google Cloud console pour créer des trousseaux de clés, des clés et des versions de clé dans Cloud KMS. Pour obtenir des instructions sur 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
- Connectez-vous à votre Google Cloud compte. Si vous débutez sur Google Cloud, créez un compte pour évaluer les performances de nos produits en conditions réelles. Les nouveaux clients bénéficient également de 300 $de crédits sans frais pour exécuter, tester et déployer des charges de travail.
-
Installez la 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 -
Créez ou sélectionnez un Google Cloud projet.
Rôles requis pour sélectionner ou créer un projet
- Sélectionner un projet : la sélection d'un projet ne nécessite pas de rôle IAM spécifique Vous pouvez sélectionner n'importe quel projet pour lequel un rôle vous a été attribué.
-
Créer un projet : pour créer un projet, vous avez besoin du rôle Créateur de projet
(
roles/resourcemanager.projectCreator), qui contient l'autorisationresourcemanager.projects.create. Découvrez comment attribuer des rôles.
-
Créez un Google Cloud projet :
gcloud projects create PROJECT_ID
Remplacez
PROJECT_IDpar le nom du Google Cloud projet que vous créez. -
Sélectionnez le Google Cloud projet que vous avez créé :
gcloud config set project PROJECT_ID
Remplacez
PROJECT_IDpar le nom de votre Google Cloud projet.
-
Vérifiez que la facturation est activée pour votre Google Cloud projet.
Activez l'API Cloud KMS :
Rôles requis pour activer les API
Pour activer les API, vous avez besoin du rôle IAM Administrateur d'utilisation du service (
roles/serviceusage.serviceUsageAdmin), qui contient l'serviceusage.services.enableautorisation. Découvrez comment attribuer des rôles.gcloud services enable cloudkms.googleapis.com
-
Attribuez des rôles à votre compte utilisateur. Exécutez la commande suivante une fois pour chacun des rôles IAM suivants :
roles/cloudkms.admin, roles/cloudkms.cryptoKeyEncrypterDecryptergcloud projects add-iam-policy-binding PROJECT_ID --member="user:USER_IDENTIFIER" --role=ROLE
Remplacez les éléments suivants :
PROJECT_ID: ID de votre projetUSER_IDENTIFIER: identifiant de votre compte utilisateur Par exemple,myemail@example.com.ROLE: rôle IAM que vous attribuez à votre compte utilisateur.
-
Installez la 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 -
Créez ou sélectionnez un Google Cloud projet.
Rôles requis pour sélectionner ou créer un projet
- Sélectionner un projet : la sélection d'un projet ne nécessite pas de rôle IAM spécifique Vous pouvez sélectionner n'importe quel projet pour lequel un rôle vous a été attribué.
-
Créer un projet : pour créer un projet, vous avez besoin du rôle Créateur de projet
(
roles/resourcemanager.projectCreator), qui contient l'autorisationresourcemanager.projects.create. Découvrez comment attribuer des rôles.
-
Créez un Google Cloud projet :
gcloud projects create PROJECT_ID
Remplacez
PROJECT_IDpar le nom du Google Cloud projet que vous créez. -
Sélectionnez le Google Cloud projet que vous avez créé :
gcloud config set project PROJECT_ID
Remplacez
PROJECT_IDpar le nom de votre Google Cloud projet.
-
Vérifiez que la facturation est activée pour votre Google Cloud projet.
Activez l'API Cloud KMS :
Rôles requis pour activer les API
Pour activer les API, vous avez besoin du rôle IAM Administrateur d'utilisation du service (
roles/serviceusage.serviceUsageAdmin), qui contient l'serviceusage.services.enableautorisation. Découvrez comment attribuer des rôles.gcloud services enable cloudkms.googleapis.com
-
Attribuez des rôles à votre compte utilisateur. Exécutez la commande suivante une fois pour chacun des rôles IAM suivants :
roles/cloudkms.admin, roles/cloudkms.cryptoKeyEncrypterDecryptergcloud projects add-iam-policy-binding PROJECT_ID --member="user:USER_IDENTIFIER" --role=ROLE
Remplacez les éléments suivants :
PROJECT_ID: ID de votre projetUSER_IDENTIFIER: identifiant de votre compte utilisateur Par exemple,myemail@example.com.ROLE: rôle IAM que vous attribuez à votre compte utilisateur.
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 Google Cloud compte pour les ressources utilisées sur cette page, supprimez le Google Cloud projet 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é que vous souhaitez détruire :
gcloud kms keys versions destroy 1 \
--location "global" \
--keyring "test" \
--key "quickstart"
Étapes suivantes
- Commencez à utiliser l'API.
- Consultez la documentation de référence sur l'API.
- Découvrez comment chiffrer des données au repos.