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 allez générer une nouvelle clé Cloud KMS ou Cloud HSM. et l'ajouter à 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 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 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 de clés situé à proximité de vos autres ressources et que est compatible avec la protection de votre choix niveau supérieur. Pour connaître les emplacements disponibles et les niveaux de protection qu'ils acceptent, consultez 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 dont vous
avez besoin pour créer des clés,
demandez à votre administrateur de vous accorder 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 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).
Dans 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 Installez 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 contenant 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
méthode:
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 contenant la clé.KEY_NAME
: nom de la clé.PROTECTION_LEVEL
: niveau de protection du (par exemple,SOFTWARE
ouHSM
).ALGORITHM
: algorithme de signature HMAC (par exemple,HMAC_SHA256
). Pour connaître tous les algorithmes HMAC compatibles, consultez la section Signature HMAC algorithmes.
Créer une clé de chiffrement symétrique avec rotation automatique personnalisée
Lorsque vous créez une clé, vous pouvez spécifier sa rotation (période), qui correspond à la durée écoulée entre la création automatique de nouvelles versions de 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 spécifier des valeurs différentes.
Pour spécifier une période de rotation et une date de début différentes, lorsque vous créez des votre clé, mais avant de cliquer 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 (Date de début) afin de démarrer la première rotation automatique une période de rotation de clé à 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 contenant la clé.LOCATION
: emplacement Cloud KMS du trousseau de clésROTATION_PERIOD
: l'intervalle à alterner la clé (par exemple,30d
) pour alterner la clé tous les 30 jours. La rotation la période doit durer au moins 1 jour et au maximum 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 auquel 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
: l'intervalle à alterner la clé (par exemple,30d
) pour alterner 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éfinissez la durée de "Destruction programmée" état
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. 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 clé créées par la suite.
- 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 défini une durée minimale pour la destruction programmée définie par des règles d'administration. Pour en savoir plus, consultez la page Contrôler la destruction des clés.
À créer une clé qui utilise une durée personnalisée pour la 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 la "Destruction programmée" l'état, choisissez le nombre jours où la clé reste programmée pour destruction avant d'être définitivement détruits.
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 contenant la clé.LOCATION
: emplacement Cloud KMS du trousseau de clésPURPOSE
: l'objectif de la clé (par exemple,encryption
).DURATION
: durée pendant laquelle la clé reste dans le 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 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 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é, la version initiale de la clé a l'état Génération en attente : Lorsque l'état passe à Activé, vous pouvez utiliser la clé. Pour en savoir plus sur les états des versions de clé, consultez la section Version de clé de sortie.
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 Protection level (Niveau de protection), sélectionnez Software (Logiciel) ou HSM (HSM).
Dans 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 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 contenant 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 instances asymétriques prises en charge, algorithmes de chiffrement, consultez la page Chiffrement asymétrique algorithmes.
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 contenant la clé.KEY_NAME
: nom de la clé.ALGORITHM
: algorithme à utiliser pour la clé (par exemple,RSA_DECRYPT_OAEP_3072_SHA256
). Pour obtenir une liste algorithmes de chiffrement asymétrique pris en charge, consultez la page Chiffrement asymétrique algorithmes.
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 indiquer un algorithme ou un niveau de protection. Pour en savoir plus et connaître les autres valeurs, consultez 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 Nom de la clé, saisissez le nom de 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 dans les futures versions de la 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 contenant 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 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 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 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 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 : étapes:
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 Installez 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 contenant la clé.LOCATION
: emplacement Cloud KMS du trousseau de clésOUTPUT_FILE_PATH
: chemin d'accès au fichier de clé publique, par exemplepublic-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 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": "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 JSON Web Key (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 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 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 Installez 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 contenant la clé.LOCATION
: emplacement Cloud KMS du trousseau de clésALGORITHM
: algorithme de signature HMAC (par exemple,hmac-sha256
). Pour connaître tous les algorithmes HMAC compatibles, consultez la section Signature HMAC algorithmes.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 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.
Étape suivante
- Apprenez-en plus sur la rotation des clés.
- Découvrez comment créer et valider signatures.
- Découvrez comment chiffrer et déchiffrer des données avec une clé RSA.
- Apprenez à récupérer une clé publique.