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 dans un emplacement Cloud KMS spécifique. Vous pouvez créer un trousseau de clés ou en utiliser un existant. Sur cette page, vous générez une clé Cloud KMS ou Cloud HSM et l'ajoutez à un trousseau existant. Pour créer une clé Cloud EKM, consultez Créer une clé externe. Pour importer une clé Cloud KMS ou Cloud HSM, consultez Importer une clé.
Avant de commencer
Avant d'effectuer les tâches indiquées sur cette page, vous devez disposer des éléments suivants:
- Une ressource de projet Google Cloud pour contenir vos ressources Cloud KMS. Nous vous recommandons d'utiliser un projet distinct pour vos ressources Cloud KMS qui ne contient aucune autre ressource Google Cloud.
- Nom et emplacement du trousseau de clés dans lequel vous souhaitez créer votre clé. Choisissez un trousseau situé à proximité de vos autres ressources et compatible avec le niveau de protection que vous avez choisi. Pour afficher les emplacements disponibles et les niveaux de protection qu'ils prennent en charge, consultez la page Emplacements Cloud KMS. Pour créer un trousseau de clés, consultez Créer un trousseau de clés.
- Facultatif: Pour utiliser la gcloud CLI, préparez votre environnement.
In the Google Cloud console, activate Cloud Shell.
Rôles requis
Pour obtenir les autorisations nécessaires pour créer des clés, demandez à votre administrateur de vous attribuer le rôle IAM Administrateur Cloud KMS (roles/cloudkms.admin
) sur le projet ou sur une ressource parente.
Pour en savoir plus sur l'attribution de rôles, consultez la page Gérer l'accès aux projets, aux dossiers et aux organisations.
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 Key name (Nom de la clé), saisissez un nom pour votre clé.
Pour Protection level (Niveau de protection), sélectionnez Software (Logiciel) ou HSM (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 ou mettre à jour la dernière version de Google Cloud CLI.
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 qui inclut la cléLOCATION
: emplacement Cloud KMS du trousseau de clés.PROTECTION_LEVEL
: niveau de protection à utiliser pour la clé (par exemple,software
ouhsm
). Vous pouvez omettre l'indicateur--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és.LOCATION
: emplacement Cloud KMS du trousseau de clés.KEY_RING
: nom du trousseau de clés qui inclut 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 une 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 la clé. Vous pouvez également spécifier indépendamment la date de la prochaine rotation, de sorte qu'elle se produise plus tôt ou plus tard qu'une période de rotation à partir de maintenant.
Console
Lorsque vous créez une clé via la console Google Cloud, Cloud KMS définit automatiquement la période de rotation et la prochaine date de 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 effectuez les étapes ci-dessous avant de cliquer sur le bouton Create (Créer) :
Pour Période de rotation des clés, sélectionnez une option.
Pour À partir du, sélectionnez la date à laquelle vous souhaitez que la première rotation automatique ait lieu. Vous pouvez laisser la valeur par défaut pour Starting on (Début à) afin de démarrer la première rotation automatique une période de rotation des clés à compter de la création de la clé.
gcloud
Pour utiliser Cloud KMS sur la ligne de commande, commencez par installer ou mettre à jour la dernière version de Google Cloud CLI.
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 qui inclut la cléLOCATION
: emplacement Cloud KMS du trousseau de clés.ROTATION_PERIOD
: intervalle de rotation de la clé (par exemple,30d
pour effectuer une rotation de la clé tous les 30 jours). La période de rotation doit être d'au moins un jour et d'au plus 100 ans. Pour en savoir plus, consultez CryptoKey.rotationPeriod.NEXT_ROTATION_TIME
: code temporel à partir duquel effectuer la première rotation (par exemple,2023-01-01T01:02:03
). Vous pouvez omettre--next-rotation-time
pour planifier la première rotation pendant une période de rotation à compter du moment où vous exécutez la commande. Pour en savoir plus, consultez la page concernantCryptoKey.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 effectuer une rotation de la clé tous les 30 jours). La période de rotation doit être d'au moins un jour et d'au plus 100 ans. Pour en savoir plus, consultez CryptoKey.rotationPeriod.NEXT_ROTATION_TIME
: code temporel à partir duquel effectuer la première rotation (par exemple,2023-01-01T01:02:03
). Pour en savoir plus, consultez la sectionCryptoKey.nextRotationTime
.
Définir la durée de l'état "Destruction programmée"
Par défaut, les versions de clé dans Cloud KMS demeurent 30 jours à l'état "Destruction programmée" (DESTROY_SCHEDULED
) avant d'être détruites. L'état "Destruction programmée" est parfois appelé état de suppression réversible. La durée pendant laquelle les versions de clé restent dans cet état est configurable, avec les 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, vous ne pouvez plus la modifier.
- La durée s'applique à toutes les versions de la clé créées ultérieurement.
- La durée minimale est de 24 heures pour toutes les clés, à l'exception des clés uniquement destinées à l'importation, pour lesquelles la durée minimale est de zéro.
- La durée maximale est de 120 jours.
- La durée par défaut est de 30 jours.
Votre organisation peut avoir une valeur minimale de durée de destruction programmée définie par les règles d'administration. Pour en savoir plus, consultez la page Contrôler la destruction des clés.
Pour créer une clé qui utilise une durée personnalisée pour l'état planifié pour destruction, 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étruite définitivement.
Cliquez sur Créer une clé.
gcloud
Pour utiliser Cloud KMS sur la ligne de commande, commencez par installer ou mettre à jour la dernière version de Google Cloud CLI.
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 qui inclut la cléLOCATION
: emplacement Cloud KMS du trousseau de clés.PURPOSE
: l'objectif de la clé (par exemple,encryption
).DURATION
: durée pendant laquelle la clé doit rester à l'état destruction programmée avant d'être détruite définitivement.
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 30 jours pour toutes les clés, sauf en cas d'exigences réglementaires ou d'application spécifiques qui préconisent une valeur différente.
Créer une clé asymétrique
Les sections suivantes vous expliquent comment créer des clés asymétriques.
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 d'autres valeurs, consultez les pages Algorithmes et Niveaux de protection.
Lorsque vous créez la clé pour la première fois, sa version initiale présente l'état Génération en attente. Lorsqu'elle passe à l'état Activée, vous pouvez utiliser la clé. Pour en savoir plus sur les états des versions de clé, consultez la page É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 Key name (Nom de la clé), saisissez un nom pour votre clé.
Pour Protection level (Niveau de protection), sélectionnez Software (Logiciel) ou HSM (HSM).
Pour Key material (Matériel de la clé), sélectionnez Generated key (Clé générée).
Sous Purpose (Objectif), sélectionnez Asymmetric decrypt (Déchiffrement asymétrique).
Pour Algorithme, sélectionnez RSA 3 072 bits - Remplissage 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 ou mettre à jour la dernière version de Google Cloud CLI.
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 qui inclut la cléLOCATION
: emplacement Cloud KMS du trousseau de clés.ALGORITHM
: algorithme à utiliser pour la clé (par exemple,rsa-decrypt-oaep-3072-sha256
) Pour obtenir la liste des algorithmes de chiffrement asymétrique acceptés, 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és.LOCATION
: emplacement Cloud KMS du trousseau de clés.KEY_RING
: nom du trousseau de clés qui inclut 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 section 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 d'autres valeurs, consultez les pages Algorithmes et Niveaux de protection.
Lorsque vous créez la clé pour la première fois, sa version initiale présente l'état Génération en attente. Lorsqu'elle passe à l'état Activée, vous pouvez utiliser la clé. Pour en savoir plus sur les états des versions de clé, consultez la page É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 Key name (Nom de la clé), saisissez un nom pour votre clé.
Pour Protection level (Niveau de protection), sélectionnez Software (Logiciel) ou HSM (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.
Pour Algorithm (Algorithme), sélectionnez Elliptic Curve P-256 - SHA256 Digest (Courbe elliptique P-256 - 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 ou mettre à jour la dernière version de Google Cloud CLI.
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 qui inclut la cléLOCATION
: emplacement Cloud KMS du trousseau de clés.ALGORITHM
: algorithme à utiliser pour la clé (par exemple,ec-sign-p256-sha256
). Pour obtenir la liste des algorithmes compatibles, consultez la section 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és.LOCATION
: emplacement Cloud KMS du trousseau de clés.KEY_RING
: nom du trousseau de clés qui inclut 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 section 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 sa génération.
La clé publique est au format PEM (Privacy-enhanced Electronic Mail). Pour en savoir plus, consultez les sections General Considerations (Remarques générales) et Textual Encoding of Subject Public Key Info (Encodage textuel des informations sur la clé publique de l'objet) de la RFC 7468.
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 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:
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 ou mettre à jour la dernière version de Google Cloud CLI.
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 qui inclut la cléLOCATION
: emplacement Cloud KMS du trousseau de clés.OUTPUT_FILE_PATH
: chemin d'accès au fichier de clé publique que vous souhaitez enregistrer (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és.LOCATION
: emplacement Cloud KMS du trousseau de clés.KEY_RING
: nom du trousseau de clés qui inclut 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": "PROTECTION_LEVEL" }
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 les clés Web JSON (JWK). Pour en savoir plus sur le format JWK, consultez la 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 Key name (Nom de la clé), saisissez un nom pour votre clé.
Pour Protection level (Niveau de protection), sélectionnez Software (Logiciel) ou HSM (HSM).
Pour Key material (Matériel de la clé), sélectionnez Generated key (Clé générée).
Dans Purpose (Objectif), sélectionnez MAC signing/verification (Signature/Validation MAC).
Facultatif: pour Algorithm (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 ou mettre à jour la dernière version de Google Cloud CLI.
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 qui inclut la cléLOCATION
: emplacement Cloud KMS du trousseau de clés.ALGORITHM
: algorithme de signature HMAC (par exemple,hmac-sha256
). Pour afficher tous les algorithmes HMAC compatibles, consultez la section Algorithmes de signature HMAC.PROTECTION_LEVEL
: niveau de protection de la clé (par exemple,hsm
) Vous pouvez omettre l'indicateur--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és.LOCATION
: emplacement Cloud KMS du trousseau de clés.KEY_RING
: nom du trousseau de clés qui inclut 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.
Étape suivante
- Découvrez 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.