Cette page explique comment créer une clé dans Cloud KMS. Une clé peut être une clé de chiffrement symétrique ou asymétrique, une clé de signature asymétrique ou une clé de signature MAC.
Lorsque vous créez une clé, vous l'ajoutez à un trousseau de clés dans un emplacement Cloud KMS spécifique. Vous pouvez créer un trousseau ou utiliser un trousseau existant. Sur cette page, vous allez générer une nouvelle clé Cloud KMS ou Cloud HSM et l'ajouter à un trousseau de clés existant. Pour créer une clé Cloud EKM, consultez la section Créer une clé externe. Pour importer une clé Cloud KMS ou Cloud HSM, consultez la section Importer une clé.
Avant de commencer
Avant d'effectuer les tâches décrites sur cette page, vous devez disposer des éléments suivants:
- Une ressource de projet Google Cloud qui contiendra vos ressources Cloud KMS Nous vous recommandons d'utiliser un projet distinct pour vos ressources Cloud KMS ne contenant aucune autre ressource Google Cloud.
- Nom et emplacement du trousseau de clés dans lequel vous souhaitez créer votre clé. Choisissez un trousseau de clés situé à proximité de vos autres ressources et offrant le niveau de protection souhaité. Pour afficher les emplacements disponibles et les niveaux de protection compatibles, consultez la page Emplacements Cloud KMS. Pour créer un trousseau de clés, consultez la section Créer un trousseau de clés.
- Facultatif: Pour utiliser la gcloud CLI, préparez votre environnement.
gcloud CLI
Dans la console Google Cloud, activez Cloud Shell.
Rôles requis
Pour obtenir les autorisations nécessaires à la création de clés, demandez à votre administrateur de vous attribuer le rôle IAM Administrateur Cloud KMS (roles/cloudkms.admin
) sur le projet ou une ressource parente.
Pour en savoir plus sur l'attribution de rôles, consultez la section Gérer les accès.
Ce rôle prédéfini contient les autorisations requises pour créer des clés. Pour connaître les autorisations exactes requises, développez la section Autorisations requises :
Autorisations requises
Les autorisations suivantes sont requises pour créer des clés:
-
cloudkms.cryptoKeys.create
-
cloudkms.cryptoKeys.get
-
cloudkms.cryptoKeys.list
-
cloudkms.cryptoKeyVersions.create
-
cloudkms.cryptoKeyVersions.get
-
cloudkms.cryptoKeyVersions.list
-
cloudkms.keyRings.get
-
cloudkms.keyRings.list
-
cloudkms.locations.get
-
cloudkms.locations.list
-
resourcemanager.projects.get
-
Pour récupérer une clé publique :
cloudkms.cryptoKeyVersions.viewPublicKey
Vous pouvez également obtenir ces autorisations avec des rôles personnalisés ou d'autres rôles prédéfinis.
Créer une clé de chiffrement symétrique
Console
Dans la console Google Cloud, accédez à la page Gestion des clés.
Cliquez sur le nom du trousseau de clés pour lequel vous souhaitez créer une clé.
Cliquez sur Créer une clé.
Dans le champ Nom de la clé, saisissez le nom de votre clé.
Pour Niveau de protection, sélectionnez Logiciel ou HSM.
Pour Key material (Matériel de la clé), sélectionnez Generated key (Clé générée).
Sous Purpose (Objectif), sélectionnez Symmetric encrypt/decrypt.
Acceptez les valeurs par défaut pour Rotation period (Période de rotation) et Starting on (Rotation à partir du).
Cliquez sur Créer.
gcloud
Pour utiliser Cloud KMS sur la ligne de commande, commencez par installer la dernière version de Google Cloud CLI ou une mise à niveau vers la dernière version.
gcloud kms keys create KEY_NAME \ --keyring KEY_RING \ --location LOCATION \ --purpose "encryption" \ --protection-level "PROTECTION_LEVEL"
Remplacez les éléments suivants :
KEY_NAME
: nom de la clé.KEY_RING
: nom du trousseau de clés contenant la clé.LOCATION
: emplacement Cloud KMS du trousseau de clésPROTECTION_LEVEL
: niveau de protection à utiliser pour la clé (par exemple,software
ouhsm
). Vous pouvez omettre l'option--protection-level
pour les cléssoftware
.
Pour en savoir plus sur toutes les options et valeurs possibles, exécutez la commande avec l'option --help
.
C#
Pour exécuter ce code, commencez par configurer un environnement de développement C#, puis installez le SDK Cloud KMS pour C#.
Go
Pour exécuter ce code, commencez par configurer un environnement de développement Go, puis installez le SDK Cloud KMS pour Go.
Java
Pour exécuter ce code, commencez par configurer un environnement de développement Java et installez le SDK Cloud KMS pour Java.
Node.js
Pour exécuter ce code, commencez par configurer un environnement de développement Node.js, puis installez le SDK Cloud KMS pour Node.js.
PHP
Pour exécuter ce code, commencez par en apprendre plus sur l'utilisation de PHP sur Google Cloud, puis installez le SDK Cloud KMS pour PHP.
Python
Pour exécuter ce code, commencez par configurer un environnement de développement Python, puis installez le SDK Cloud KMS pour Python.
Ruby
Pour exécuter ce code, commencez par configurer un environnement de développement Ruby, puis installez le SDK Cloud KMS pour Ruby.
API
Ces exemples utilisent curl comme client HTTP pour démontrer l'utilisation de l'API. Pour en savoir plus sur le contrôle des accès, consultez la page Accéder à l'API Cloud KMS.
Pour créer une clé, utilisez la méthode CryptoKey.create
:
curl "https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys?crypto_key_id=KEY_NAME" \ --request "POST" \ --header "authorization: Bearer TOKEN" \ --header "content-type: application/json" \ --data '{"purpose": "ENCRYPT_DECRYPT", "versionTemplate": { "protectionLevel": "PROTECTION_LEVEL", "algorithm": "ALGORITHM" }}'
Remplacez les éléments suivants :
PROJECT_ID
: ID du projet contenant le trousseau de clésLOCATION
: emplacement Cloud KMS du trousseau de clésKEY_RING
: nom du trousseau de clés contenant la clé.KEY_NAME
: nom de la clé.PROTECTION_LEVEL
: niveau de protection de la clé (par exemple,SOFTWARE
ouHSM
).ALGORITHM
: algorithme de signature HMAC (par exemple,HMAC_SHA256
). Pour afficher tous les algorithmes HMAC compatibles, consultez la page Algorithmes de signature HMAC.
Créer une clé de chiffrement symétrique avec rotation automatique personnalisée
Lorsque vous créez une clé, vous pouvez spécifier sa période de rotation, qui correspond au délai entre la création automatique de nouvelles versions de clé. Vous pouvez également spécifier indépendamment la prochaine date de rotation, de sorte que la rotation suivante ait lieu avant ou après une période de rotation à compter d'aujourd'hui.
Console
Lorsque vous créez une clé à l'aide de la console Google Cloud, Cloud KMS définit automatiquement la période de rotation et la date de la prochaine rotation. Vous pouvez choisir d'utiliser les valeurs par défaut ou de spécifier des valeurs différentes.
Pour spécifier une période de rotation et une date de début différentes, effectuez la procédure de création de la clé, mais avant de cliquer sur le bouton Create (Créer) :
Pour Période de rotation des clés, sélectionnez une option.
Pour le champ À partir du, sélectionnez la date à laquelle vous souhaitez que la première rotation automatique ait lieu. Vous pouvez conserver la valeur par défaut du paramètre Commencer le pour démarrer la première rotation automatique à une période de rotation des clés à compter de leur création.
gcloud
Pour utiliser Cloud KMS sur la ligne de commande, commencez par installer la dernière version de Google Cloud CLI ou une mise à niveau vers la dernière version.
gcloud kms keys create KEY_NAME \ --keyring KEY_RING \ --location LOCATION \ --purpose "encryption" \ --rotation-period ROTATION_PERIOD \ --next-rotation-time NEXT_ROTATION_TIME
Remplacez les éléments suivants :
KEY_NAME
: nom de la clé.KEY_RING
: nom du trousseau de clés contenant la clé.LOCATION
: emplacement Cloud KMS du trousseau de clésROTATION_PERIOD
: intervalle de rotation de la clé (par exemple,30d
pour alterner la clé tous les 30 jours). La période de rotation doit être comprise entre 1 et 100 ans. Pour en savoir plus, consultez la page sur CryptoKey.rotationPeriod.NEXT_ROTATION_TIME
: code temporel correspondant à la première rotation (par exemple,"2023-01-01T01:02:03"
) Vous pouvez omettre--next-rotation-time
pour planifier la première rotation sur sept jours à compter de l'exécution de la commande. Pour en savoir plus, consultez la page CryptoKey.nextRotationTime.
Pour en savoir plus sur toutes les options et valeurs possibles, exécutez la commande avec l'option --help
.
C#
Pour exécuter ce code, commencez par configurer un environnement de développement C#, puis installez le SDK Cloud KMS pour C#.
Go
Pour exécuter ce code, commencez par configurer un environnement de développement Go, puis installez le SDK Cloud KMS pour Go.
Java
Pour exécuter ce code, commencez par configurer un environnement de développement Java et installez le SDK Cloud KMS pour Java.
Node.js
Pour exécuter ce code, commencez par configurer un environnement de développement Node.js, puis installez le SDK Cloud KMS pour Node.js.
PHP
Pour exécuter ce code, commencez par en apprendre plus sur l'utilisation de PHP sur Google Cloud, puis installez le SDK Cloud KMS pour PHP.
Python
Pour exécuter ce code, commencez par configurer un environnement de développement Python, puis installez le SDK Cloud KMS pour Python.
Ruby
Pour exécuter ce code, commencez par configurer un environnement de développement Ruby, puis installez le SDK Cloud KMS pour Ruby.
API
Ces exemples utilisent curl comme client HTTP pour démontrer l'utilisation de l'API. Pour en savoir plus sur le contrôle des accès, consultez la page Accéder à l'API Cloud KMS.
Pour créer une clé, utilisez la méthode CryptoKey.create
:
curl "https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys?crypto_key_id=KEY_NAME" \ --request "POST" \ --header "authorization: Bearer TOKEN" \ --header "content-type: application/json" \ --data '{"purpose": "PURPOSE", "rotationPeriod": "ROTATION_PERIOD", "nextRotationTime": "NEXT_ROTATION_TIME"}'
Remplacez les éléments suivants :
PURPOSE
: objectif de la cléROTATION_PERIOD
: intervalle de rotation de la clé (par exemple,30d
pour alterner la clé tous les 30 jours). La période de rotation doit être comprise entre 1 et 100 ans. Pour en savoir plus, consultez la page sur CryptoKey.rotationPeriod.NEXT_ROTATION_TIME
: code temporel correspondant à la première rotation (par exemple,"2023-01-01T01:02:03"
) Vous pouvez omettre--next-rotation-time
pour planifier la première rotation sur sept jours à compter de l'exécution de la commande. Pour en savoir plus, consultez la page CryptoKey.nextRotationTime.
Définissez la durée de l'état "Destruction programmée"
Par défaut, les versions de clé dans Cloud KMS passent à l'état de destruction programmée (DESTROY_SCHEDULED
) pendant 30 jours avant d'être détruites. L'état "Destruction programmée" est parfois appelé état "supprimé de façon réversible". Vous pouvez configurer la durée pendant laquelle les versions de clé restent dans cet état, en tenant compte des contraintes suivantes:
- Vous ne pouvez définir la durée que lors de la création de la clé.
- Une fois la durée de la clé spécifiée, elle ne peut plus être modifiée.
- La durée s'applique à toutes les versions de la clé créées par la suite.
- La durée minimale est de 24 heures pour toutes les clés, à l'exception des clés réservées à l'importation, dont la durée minimale est de 0.
- La durée maximale est de 120 jours.
- La durée par défaut est de 30 jours.
Il est possible que votre organisation impose une valeur minimale pour la durée de destruction programmée. Elle est définie par des règles d'administration d'administration. Pour en savoir plus, consultez la section Contrôler la destruction des clés.
Pour créer une clé utilisant une durée personnalisée pour l'état Destruction programmée, procédez comme suit:
Console
Dans la console Google Cloud, accédez à la page Gestion des clés.
Cliquez sur le nom du trousseau de clés pour lequel vous souhaitez créer une clé.
Cliquez sur Créer une clé.
Configurez les paramètres de la clé pour votre application.
Cliquez sur Paramètres supplémentaires.
Dans Durée de l'état "Destruction programmée", choisissez le nombre de jours pendant lesquels la clé restera programmée pour destruction avant d'être définitivement détruite.
Cliquez sur Créer une clé.
gcloud
Pour utiliser Cloud KMS sur la ligne de commande, commencez par installer la dernière version de Google Cloud CLI ou une mise à niveau vers la dernière version.
gcloud kms keys create KEY_NAME \ --keyring KEY_RING \ --location LOCATION \ --purpose PURPOSE \ --destroy-scheduled-duration DURATION
Remplacez les éléments suivants :
KEY_NAME
: nom de la clé.KEY_RING
: nom du trousseau de clés contenant la clé.LOCATION
: emplacement Cloud KMS du trousseau de clésPURPOSE
: objectif de la clé (par exemple,encryption
).DURATION
: durée pendant laquelle la clé reste à l'état destruction programmée avant d'être définitivement détruite.
Pour en savoir plus sur toutes les options et valeurs possibles, exécutez la commande avec l'option --help
.
Nous vous recommandons d'utiliser la durée par défaut de 24 heures pour toutes les clés, sauf si vous avez des exigences réglementaires ou d'application spécifiques qui nécessitent une valeur différente.
Créer une clé asymétrique
Créer une clé de déchiffrement asymétrique
Suivez ces étapes pour créer une clé de déchiffrement asymétrique sur le trousseau de clés et l'emplacement spécifiés. Ces exemples peuvent être adaptés pour spécifier un niveau de protection ou un algorithme différent. Pour en savoir plus et connaître les valeurs alternatives, consultez les pages Algorithmes et Niveaux de protection.
Lorsque vous créez la clé pour la première fois, la version initiale de la clé est à l'état Génération en attente. Lorsque l'état passe à Enabled (Activé), vous pouvez utiliser la clé. Pour en savoir plus sur les états des versions de clé, consultez la section États des versions de clé.
Console
Dans la console Google Cloud, accédez à la page Gestion des clés.
Cliquez sur le nom du trousseau de clés pour lequel vous souhaitez créer une clé.
Cliquez sur Créer une clé.
Dans le champ Nom de la clé, saisissez le nom de votre clé.
Pour Niveau de protection, sélectionnez Logiciel ou HSM.
Pour Key material (Matériel de la clé), sélectionnez Generated key (Clé générée).
Dans le champ Objectif, sélectionnez Déchiffrement asymétrique.
Dans le champ Algorithme, sélectionnez RSA 3 072 bits - Marge intérieure OAEP - Condensé SHA256. Vous pouvez modifier cette valeur sur les futures versions de clé.
Cliquez sur Créer.
gcloud
Pour utiliser Cloud KMS sur la ligne de commande, commencez par installer la dernière version de Google Cloud CLI ou une mise à niveau vers la dernière version.
gcloud kms keys create KEY_NAME \ --keyring KEY_RING \ --location LOCATION \ --purpose "asymmetric-encryption" \ --default-algorithm "ALGORITHM"
Remplacez les éléments suivants :
KEY_NAME
: nom de la clé.KEY_RING
: nom du trousseau de clés contenant la clé.LOCATION
: emplacement Cloud KMS du trousseau de clésALGORITHM
: algorithme à utiliser pour la clé (par exemple,rsa-decrypt-oaep-3072-sha256
). Pour obtenir la liste des algorithmes de chiffrement asymétrique compatibles, consultez la page Algorithmes de chiffrement asymétrique.
Pour en savoir plus sur toutes les options et valeurs possibles, exécutez la commande avec l'option --help
.
C#
Pour exécuter ce code, commencez par configurer un environnement de développement C#, puis installez le SDK Cloud KMS pour C#.
Go
Pour exécuter ce code, commencez par configurer un environnement de développement Go, puis installez le SDK Cloud KMS pour Go.
Java
Pour exécuter ce code, commencez par configurer un environnement de développement Java et installez le SDK Cloud KMS pour Java.
Node.js
Pour exécuter ce code, commencez par configurer un environnement de développement Node.js, puis installez le SDK Cloud KMS pour Node.js.
PHP
Pour exécuter ce code, commencez par en apprendre plus sur l'utilisation de PHP sur Google Cloud, puis installez le SDK Cloud KMS pour PHP.
Python
Pour exécuter ce code, commencez par configurer un environnement de développement Python, puis installez le SDK Cloud KMS pour Python.
Ruby
Pour exécuter ce code, commencez par configurer un environnement de développement Ruby, puis installez le SDK Cloud KMS pour Ruby.
API
Ces exemples utilisent curl comme client HTTP pour démontrer l'utilisation de l'API. Pour en savoir plus sur le contrôle des accès, consultez la page Accéder à l'API Cloud KMS.
Créez une clé de déchiffrement asymétrique en appelant CryptoKey.create
.
curl "https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys?crypto_key_id=KEY_NAME" \ --request "POST" \ --header "authorization: Bearer TOKEN" \ --header "content-type: application/json" \ --data '{"purpose": "ASYMMETRIC_DECRYPT", "versionTemplate": {"algorithm": "ALGORITHM"}}'
Remplacez les éléments suivants :
PROJECT_ID
: ID du projet contenant le trousseau de clésLOCATION
: emplacement Cloud KMS du trousseau de clésKEY_RING
: nom du trousseau de clés contenant la clé.KEY_NAME
: nom de la clé.ALGORITHM
: algorithme à utiliser pour la clé (par exemple,RSA_DECRYPT_OAEP_3072_SHA256
). Pour obtenir la liste des algorithmes de chiffrement asymétrique compatibles, consultez la page Algorithmes de chiffrement asymétrique.
Créer une clé de signature asymétrique
Suivez ces étapes pour créer une clé de signature asymétrique sur le trousseau de clés et l'emplacement spécifiés. Ces exemples peuvent être adaptés pour spécifier un niveau de protection ou un algorithme différent. Pour en savoir plus et connaître les valeurs alternatives, consultez les pages Algorithmes et Niveaux de protection.
Lorsque vous créez la clé pour la première fois, la version initiale de la clé est à l'état Génération en attente. Lorsque l'état passe à Enabled (Activé), vous pouvez utiliser la clé. Pour en savoir plus sur les états des versions de clé, consultez la section États des versions de clé.
Console
Dans la console Google Cloud, accédez à la page Gestion des clés.
Cliquez sur le nom du trousseau de clés pour lequel vous souhaitez créer une clé.
Cliquez sur Créer une clé.
Dans le champ Nom de la clé, saisissez le nom de votre clé.
Pour Niveau de protection, sélectionnez Logiciel ou HSM.
Pour Key material (Matériel de la clé), sélectionnez Generated key (Clé générée).
Dans le champ Objectif, sélectionnez Signature asymétrique.
Dans Algorithme, sélectionnez Courbe elliptique P-256 - Condensé SHA256. Vous pourrez modifier cette valeur dans les futures versions de la clé.
Cliquez sur Créer.
gcloud
Pour utiliser Cloud KMS sur la ligne de commande, commencez par installer la dernière version de Google Cloud CLI ou une mise à niveau vers la dernière version.
gcloud kms keys create KEY_NAME \ --keyring KEY_RING \ --location LOCATION \ --purpose "asymmetric-signing" \ --default-algorithm "ALGORITHM"
Remplacez les éléments suivants :
KEY_NAME
: nom de la clé.KEY_RING
: nom du trousseau de clés contenant la clé.LOCATION
: emplacement Cloud KMS du trousseau de clésALGORITHM
: algorithme à utiliser pour la clé (par exemple,ec-sign-p256-sha256
). Pour obtenir la liste des algorithmes compatibles, consultez la page Algorithmes de signature asymétrique.
Pour en savoir plus sur toutes les options et valeurs possibles, exécutez la commande avec l'option --help
.
C#
Pour exécuter ce code, commencez par configurer un environnement de développement C#, puis installez le SDK Cloud KMS pour C#.
Go
Pour exécuter ce code, commencez par configurer un environnement de développement Go, puis installez le SDK Cloud KMS pour Go.
Java
Pour exécuter ce code, commencez par configurer un environnement de développement Java et installez le SDK Cloud KMS pour Java.
Node.js
Pour exécuter ce code, commencez par configurer un environnement de développement Node.js, puis installez le SDK Cloud KMS pour Node.js.
PHP
Pour exécuter ce code, commencez par en apprendre plus sur l'utilisation de PHP sur Google Cloud, puis installez le SDK Cloud KMS pour PHP.
Python
Pour exécuter ce code, commencez par configurer un environnement de développement Python, puis installez le SDK Cloud KMS pour Python.
Ruby
Pour exécuter ce code, commencez par configurer un environnement de développement Ruby, puis installez le SDK Cloud KMS pour Ruby.
API
Ces exemples utilisent curl comme client HTTP pour démontrer l'utilisation de l'API. Pour en savoir plus sur le contrôle des accès, consultez la page Accéder à l'API Cloud KMS.
Créez une clé de signature asymétrique en appelant CryptoKey.create
.
curl "https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys?crypto_key_id=KEY_NAME" \ --request "POST" \ --header "authorization: Bearer TOKEN" \ --header "content-type: application/json" \ --data '{"purpose": "ASYMMETRIC_SIGN", "versionTemplate": {"algorithm": "ALGORITHM"}}'
Remplacez les éléments suivants :
PROJECT_ID
: ID du projet contenant le trousseau de clésLOCATION
: emplacement Cloud KMS du trousseau de clésKEY_RING
: nom du trousseau de clés contenant la clé.KEY_NAME
: nom de la clé.ALGORITHM
: algorithme à utiliser pour la clé (par exemple,EC_SIGN_P256_SHA256
). Pour obtenir la liste des algorithmes compatibles, consultez la page Algorithmes de signature asymétrique.
Récupérer la clé publique
Lorsque vous créez une clé asymétrique, Cloud KMS crée une paire de clés publique/privée. Vous pouvez récupérer la clé publique d'une clé asymétrique activée à tout moment après la génération de la clé.
La clé publique est au format PEM (Privacy-enhanced Electronic Mail). Pour en savoir plus, consultez les sections de la RFC 7468 sur les considérations générales et l'encodage textuel des informations sur la clé publique de l'objet.
Pour télécharger la clé publique d'une version de clé asymétrique existante, procédez comme suit:
Console
Dans la console Google Cloud, accédez à la page Gestion des clés.
Cliquez sur le nom du trousseau de clés contenant la clé asymétrique pour laquelle vous souhaitez récupérer la clé publique.
Cliquez sur le nom de la clé pour laquelle vous souhaitez récupérer la clé publique.
Sur la ligne correspondant à la version de clé pour laquelle vous souhaitez récupérer la clé publique, cliquez sur View more (Afficher plus)
.Cliquez sur Get the public key (Obtenir la clé publique).
La clé publique s'affiche dans l'invite. Vous pouvez copier la clé publique dans votre presse-papiers. Pour télécharger la clé publique, cliquez sur Download (Télécharger).
Si vous ne voyez pas l'option Get public key (Obtenir la clé publique), vérifiez les points suivants:
- La clé est une clé asymétrique.
- La version de clé est activée.
- Vous disposez de l'autorisation
cloudkms.cryptoKeyVersions.viewPublicKey
.
Le nom de fichier d'une clé publique téléchargée à partir de la console Google Cloud se présente sous la forme suivante:
KEY_RING-KEY_NAME-KEY_VERSION.pub
Chaque partie du nom de fichier est séparée par un trait d'union (par exemple, ringname-keyname-version.pub
).
gcloud
Pour utiliser Cloud KMS sur la ligne de commande, commencez par installer la dernière version de Google Cloud CLI ou une mise à niveau vers la dernière version.
gcloud kms keys versions get-public-key KEY_VERSION \ --key KEY_NAME \ --keyring KEY_RING \ --location LOCATION \ --output-file OUTPUT_FILE_PATH
Remplacez les éléments suivants :
KEY_VERSION
: numéro de version de la cléKEY_NAME
: nom de la clé.KEY_RING
: nom du trousseau de clés contenant la clé.LOCATION
: emplacement Cloud KMS du trousseau de clésOUTPUT_FILE_PATH
: chemin d'accès où vous souhaitez enregistrer le fichier de clé publique (par exemple,public-key.pub
).
Pour en savoir plus sur toutes les options et valeurs possibles, exécutez la commande avec l'option --help
.
C#
Pour exécuter ce code, commencez par configurer un environnement de développement C#, puis installez le SDK Cloud KMS pour C#.
Go
Pour exécuter ce code, commencez par configurer un environnement de développement Go, puis installez le SDK Cloud KMS pour Go.
Java
Pour exécuter ce code, commencez par configurer un environnement de développement Java et installez le SDK Cloud KMS pour Java.
Node.js
Pour exécuter ce code, commencez par configurer un environnement de développement Node.js, puis installez le SDK Cloud KMS pour Node.js.
PHP
Pour exécuter ce code, commencez par en apprendre plus sur l'utilisation de PHP sur Google Cloud, puis installez le SDK Cloud KMS pour PHP.
Python
Pour exécuter ce code, commencez par configurer un environnement de développement Python, puis installez le SDK Cloud KMS pour Python.
Ruby
Pour exécuter ce code, commencez par configurer un environnement de développement Ruby, puis installez le SDK Cloud KMS pour Ruby.
API
Ces exemples utilisent curl comme client HTTP pour démontrer l'utilisation de l'API. Pour en savoir plus sur le contrôle des accès, consultez la page Accéder à l'API Cloud KMS.
Récupérez la clé publique en appelant la méthode CryptoKeyVersions.getPublicKey.
curl "https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KEY_NAME/cryptoKeyVersions/KEY_VERSION/publicKey" \ --request "GET" \ --header "authorization: Bearer TOKEN"
Remplacez les éléments suivants :
PROJECT_ID
: ID du projet contenant le trousseau de clésLOCATION
: emplacement Cloud KMS du trousseau de clésKEY_RING
: nom du trousseau de clés contenant la clé.KEY_NAME
: nom de la clé.KEY_VERSION
: numéro de version de la clé
Le résultat doit ressembler à ce qui suit :
{ "pem": "-----BEGIN PUBLIC KEY-----\nQ29uZ3JhdHVsYXRpb25zLCB5b3UndmUgZGlzY292ZX JlZCB0aGF0IHRoaXMgaXNuJ3QgYWN0dWFsbHkgYSBwdWJsaWMga2V5ISBIYXZlIGEgbmlj ZSBkYXkgOik=\n-----END PUBLIC KEY-----\n", "algorithm": "ALGORITHM", "pemCrc32c": "2561089887", "name": "projects/PROJECT_ID/locations/LOCATION/keyRings/ KEY_RING/cryptoKeys/KEY_NAME/cryptoKeyVersions/ KEY_VERSION", "protectionLevel": "SOFTWARE" }
Convertir une clé publique au format JWK
Cloud KMS vous permet de récupérer une clé publique au format PEM. Certaines applications peuvent nécessiter d'autres formats de clé tels que JSON Web Key (JWK). Pour en savoir plus sur le format JWK, consultez le document RFC 7517.
Pour convertir une clé publique au format JWK, procédez comme suit:
Go
Pour exécuter ce code, commencez par configurer un environnement de développement Go, puis installez le SDK Cloud KMS pour Go.
Java
Pour exécuter ce code, commencez par configurer un environnement de développement Java et installez le SDK Cloud KMS pour Java.
Python
Pour exécuter ce code, commencez par configurer un environnement de développement Python, puis installez le SDK Cloud KMS pour Python.
Contrôler l'accès aux clés asymétriques
Un signataire ou un validateur doit disposer de l'autorisation ou du rôle approprié sur la clé asymétrique.
Pour un utilisateur ou un service qui effectue la signature, accordez l'autorisation
cloudkms.cryptoKeyVersions.useToSign
sur la clé asymétrique.Pour un utilisateur ou un service qui récupère la clé publique, accordez l'autorisation
cloudkms.cryptoKeyVersions.viewPublicKey
sur la clé asymétrique. La clé publique est nécessaire à la validation de la signature.
Pour en savoir plus sur les autorisations et les rôles dans la version de Cloud KMS, consultez la page Autorisations et rôles.
Créer une clé de signature MAC
Console
Dans la console Google Cloud, accédez à la page Gestion des clés.
Cliquez sur le nom du trousseau de clés pour lequel vous souhaitez créer une clé.
Cliquez sur Créer une clé.
Dans le champ Nom de la clé, saisissez le nom de votre clé.
Pour le champ Niveau de protection, sélectionnez Logiciel ou HSM.
Pour Key material (Matériel de la clé), sélectionnez Generated key (Clé générée).
Dans le champ Objectif, sélectionnez Signature/validation MAC.
Facultatif: pour Algorithme, sélectionnez un algorithme de signature HMAC.
Cliquez sur Créer.
gcloud
Pour utiliser Cloud KMS sur la ligne de commande, commencez par installer la dernière version de Google Cloud CLI ou une mise à niveau vers la dernière version.
gcloud kms keys create KEY_NAME \ --keyring KEY_RING \ --location LOCATION \ --purpose "mac" \ --default-algorithm "ALGORITHM" \ --protection-level "PROTECTION_LEVEL"
Remplacez les éléments suivants :
KEY_NAME
: nom de la clé.KEY_RING
: nom du trousseau de clés contenant la clé.LOCATION
: emplacement Cloud KMS du trousseau de clésALGORITHM
: algorithme de signature HMAC (par exemple,hmac-sha256
). Pour afficher tous les algorithmes HMAC compatibles, consultez la page Algorithmes de signature HMAC.PROTECTION_LEVEL
: niveau de protection de la clé (par exemple,hsm
). Vous pouvez omettre l'option--protection-level
pour les cléssoftware
.
Pour en savoir plus sur toutes les options et valeurs possibles, exécutez la commande avec l'option --help
.
C#
Pour exécuter ce code, commencez par configurer un environnement de développement C#, puis installez le SDK Cloud KMS pour C#.
Go
Pour exécuter ce code, commencez par configurer un environnement de développement Go, puis installez le SDK Cloud KMS pour Go.
Java
Pour exécuter ce code, commencez par configurer un environnement de développement Java et installez le SDK Cloud KMS pour Java.
Node.js
Pour exécuter ce code, commencez par configurer un environnement de développement Node.js, puis installez le SDK Cloud KMS pour Node.js.
PHP
Pour exécuter ce code, commencez par en apprendre plus sur l'utilisation de PHP sur Google Cloud, puis installez le SDK Cloud KMS pour PHP.
Python
Pour exécuter ce code, commencez par configurer un environnement de développement Python, puis installez le SDK Cloud KMS pour Python.
Ruby
Pour exécuter ce code, commencez par configurer un environnement de développement Ruby, puis installez le SDK Cloud KMS pour Ruby.
API
Ces exemples utilisent curl comme client HTTP pour démontrer l'utilisation de l'API. Pour en savoir plus sur le contrôle des accès, consultez la page Accéder à l'API Cloud KMS.
Pour créer une clé, utilisez la méthode CryptoKey.create
:
curl "https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys?crypto_key_id=KEY_NAME" \ --request "POST" \ --header "authorization: Bearer TOKEN" \ --header "content-type: application/json" \ --data '{"purpose": "MAC", "versionTemplate": { "protectionLevel": "PROTECTION_LEVEL", "algorithm": "ALGORITHM" }}'
Remplacez les éléments suivants :
PROJECT_ID
: ID du projet contenant le trousseau de clésLOCATION
: emplacement Cloud KMS du trousseau de clésKEY_RING
: nom du trousseau de clés contenant la clé.KEY_NAME
: nom de la clé.PROTECTION_LEVEL
: niveau de protection de la clé, par exempleSOFTWARE
ouHSM
.ALGORITHM
: algorithme de signature HMAC, par exempleHMAC_SHA256
. Pour afficher tous les algorithmes HMAC compatibles, consultez la page Algorithmes de signature HMAC.
Étapes suivantes
- Apprenez-en plus sur la rotation des clés.
- Découvrez comment créer et valider des signatures.
- Découvrez comment chiffrer et déchiffrer des données avec une clé RSA.
- Apprenez à récupérer une clé publique.