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 clé Cloud KMS et l'ajouter à un trousseau de clés 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 :
- Ressource de projet Trusted Cloud contenant vos ressources Cloud KMS. Nous vous recommandons d'utiliser un projet distinct pour vos ressources Cloud KMS, qui ne contient aucune autre ressource Trusted Cloud .
- Nom et emplacement du trousseau de clés dans lequel vous souhaitez créer votre clé. Choisissez un trousseau de clés dans un emplacement proche de vos autres ressources et qui prend en charge le niveau de protection que vous avez choisi. Pour créer un trousseau de clés, consultez Créer un trousseau de 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
Dans la console Trusted 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 un nom pour votre clé.
Pour le niveau de protection, sélectionnez Logiciel.
Pour Matériel de clé, sélectionnez 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.
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.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 de signature HMAC (par exemple,HMAC_SHA256
). Pour afficher tous les algorithmes HMAC compatibles, consultez Algorithmes de signature HMAC.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 de À partir du pour que la première rotation automatique commence une période de rotation des clés après la création 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.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 ne doit pas être inférieure à un jour ni supérieure à 100 ans. Pour en savoir plus, consultez CryptoKey.rotationPeriod.NEXT_ROTATION_TIME
: code temporel auquel effectuer la première rotation (par exemple,2023-01-01T01:02:03
). Vous pouvez omettre--next-rotation-time
pour programmer la première rotation pour une période de rotation à compter du moment où vous exécutez la commande. Pour en savoir plus, consultez la page concernantCryptoKey.nextRotationTime
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 ne doit pas être inférieure à un jour ni supérieure à 100 ans. Pour en savoir plus, consultez CryptoKey.rotationPeriod.NEXT_ROTATION_TIME
: code temporel auquel effectuer la première rotation (par exemple,2023-01-01T01:02:03
). Pour en savoir plus, consultez la sectionCryptoKey.nextRotationTime
.- 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 ultérieurement.
- La durée minimale est de 24 heures pour toutes les clés, sauf pour les clés uniquement importées, pour lesquelles 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.
Dans la console Trusted 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", sélectionnez le nombre de jours pendant lesquels la clé restera à l'état Destruction programmée avant d'être définitivement détruite.
Cliquez sur Créer une 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.PURPOSE
: objectif de la clé, par exempleencryption
.DURATION
: durée pendant laquelle la clé reste à l'état Destruction programmée avant d'être définitivement détruite.Dans la console Trusted 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 un nom pour votre clé.
Pour le niveau de protection, sélectionnez Logiciel.
Pour Matériel de clé, sélectionnez Clé générée.
Sous Objectif, sélectionnez 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.
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 exemplersa-decrypt-oaep-3072-sha256
. Pour obtenir la liste des algorithmes de chiffrement asymétrique compatibles, consultez Algorithmes de chiffrement asymétrique.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 exempleRSA_DECRYPT_OAEP_3072_SHA256
. Pour obtenir la liste des algorithmes de chiffrement asymétrique compatibles, consultez Algorithmes de chiffrement asymétrique.Dans la console Trusted 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 un nom pour votre clé.
Pour le niveau de protection, sélectionnez Logiciel.
Pour Matériel de clé, sélectionnez Clé générée.
Pour Objectif, sélectionnez Signature asymétrique.
Pour Algorithme, sélectionnez Courbe elliptique P-256 - Condensé SHA256. Vous pouvez modifier cette valeur sur les futures versions de clé.
Cliquez sur Créer.
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 Algorithmes de signature asymétrique.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 exempleEC_SIGN_P256_SHA256
. Pour obtenir la liste des algorithmes acceptés, consultez Algorithmes de signature asymétrique.Dans la console Trusted 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).
- La clé est une clé asymétrique.
- La version de clé est activée.
- Vous disposez de l'autorisation
cloudkms.cryptoKeyVersions.viewPublicKey
. 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.PUBLIC_KEY_FORMAT
: format dans lequel vous souhaitez exporter la clé publique. Pour les algorithmes PQC (aperçu), utiliseznist-pqc
. Pour toutes les autres clés, vous pouvez utiliserpem
ou omettre ce paramètre.OUTPUT_FILE_PATH
: chemin d'accès où vous souhaitez enregistrer le fichier de clé publique, par exemplepublic-key.pub
.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é.PUBLIC_KEY_FORMAT
: format dans lequel vous souhaitez exporter la clé publique. Pour les algorithmes PQC (aperçu), utilisezNIST_PQC
. Pour toutes les autres clés, vous pouvez utiliserPEM
ou omettre ce paramètre.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.Dans la console Trusted 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 un nom pour votre clé.
Pour le champ Niveau de protection, sélectionnez Logiciel.
Pour Matériel de clé, sélectionnez 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.
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 Algorithmes de signature HMAC.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 de signature HMAC, par exempleHMAC_SHA256
. Pour afficher tous les algorithmes HMAC compatibles, consultez Algorithmes de signature HMAC.- En savoir plus sur la rotation des clés
- Découvrez comment créer et valider des signatures.
- Apprenez-en plus sur le chiffrement et le déchiffrement des données avec une clé RSA.
- Apprenez à récupérer une clé publique.
Rôles requis
Pour obtenir les autorisations nécessaires 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 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 :
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
gcloud
Pour utiliser Cloud KMS sur la ligne de commande, commencez par installer ou mettre à jour Google Cloud CLI.
gcloud kms keys create KEY_NAME \ --keyring KEY_RING \ --location LOCATION \ --purpose "encryption"
Remplacez les éléments suivants :
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 Trusted 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": "SOFTWARE", "algorithm": "ALGORITHM" }}'
Remplacez les éléments suivants :
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 la clé. Vous pouvez également spécifier indépendamment la date de la prochaine rotation, de sorte qu'elle ait lieu plus tôt ou plus tard qu'une période de rotation à partir de maintenant.
Console
Lorsque vous utilisez la console Trusted Cloud pour créer une clé, 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 d'en spécifier d'autres.
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 Créer :
gcloud
Pour utiliser Cloud KMS sur la ligne de commande, commencez par installer ou mettre à jour 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 :
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 Trusted 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 :
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 :
Il est possible que votre organisation ait défini une valeur minimale de durée de suppression planifiée dans les règles d'administration. Pour en savoir plus, consultez Contrôler la destruction d'une clé.
Pour créer une clé qui utilise une durée personnalisée pour l'état Programmé pour destruction, procédez comme suit :
Console
gcloud
Pour utiliser Cloud KMS sur la ligne de commande, commencez par installer ou mettre à jour 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 :
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érents. Pour plus d'informations et d'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 États des versions de clé.
Console
gcloud
Pour utiliser Cloud KMS sur la ligne de commande, commencez par installer ou mettre à jour 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 :
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 Trusted 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 :
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érents. Pour plus d'informations et d'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 États des versions de clé.
Console
gcloud
Pour utiliser Cloud KMS sur la ligne de commande, commencez par installer ou mettre à jour 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 :
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 Trusted 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 :
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
Si vous ne voyez pas l'option Get public key (Obtenir la clé publique), vérifiez les points suivants :
Le nom de fichier d'une clé publique téléchargée à partir de la console Trusted 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 Google Cloud CLI.
gcloud kms keys versions get-public-key KEY_VERSION \ --key KEY_NAME \ --keyring KEY_RING \ --location LOCATION \ --public-key-format PUBLIC_KEY_FORMAT \ --output-file OUTPUT_FILE_PATH
Remplacez les éléments suivants :
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 Trusted 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?public_key_format=PUBLIC_KEY_FORMAT" \ --request "GET" \ --header "authorization: Bearer TOKEN"
Remplacez les éléments suivants :
Si le format de clé publique est omis pour une clé non PQC, le résultat est semblable à 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" }
Pour un algorithme PQC avec le format de clé publique NIST_PQC
, le résultat ressemble à ce qui suit :
{ "publicKeyFormat": "NIST_PQC", "publicKey": { "crc32cChecksum": "1985843562", "data": "kdcOIrFCC5kN8S4i0+R+AoSc9gYIJ9jEQ6zG235ZmCQ=" } "algorithm": "ALGORITHM", "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 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
gcloud
Pour utiliser Cloud KMS sur la ligne de commande, commencez par installer ou mettre à jour Google Cloud CLI.
gcloud kms keys create KEY_NAME \ --keyring KEY_RING \ --location LOCATION \ --purpose "mac" \ --default-algorithm "ALGORITHM"
Remplacez les éléments suivants :
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 Trusted 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": "SOFTWARE", "algorithm": "ALGORITHM" }}'
Remplacez les éléments suivants :