Cette page explique comment récupérer la partie clé publique d'une version de clé asymétrique activée.
Le format de la clé publique dépend de l'algorithme utilisé (algorithme post-quantique ou conventionnel) :
Pour les algorithmes non PQC, le format par défaut de la clé publique est le format PEM (Privacy-enhanced Electronic Mail). Vous pouvez également récupérer des clés publiques non PQC au format DER (Distinguished Encoding Rules). Pour en savoir plus, consultez la RFC 7468, en particulier 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).
Pour les algorithmes de cryptographie post-quantique standardisés par le NIST (aperçu), vous pouvez récupérer la clé publique au format identifié dans les normes NIST PCQ pour cet algorithme. Pour en savoir plus, consultez FIPS-203, FIPS-204 et FIPS-205. Les formats PEM et DER ne sont pas compatibles avec ces clés.
Pour X-Wing (Preview), vous pouvez récupérer la clé publique au format octets bruts spécifié par la norme X-Wing. Les formats PEM et DER ne sont pas compatibles avec ces clés.
Rôles requis
Pour obtenir les autorisations dont vous avez besoin pour récupérer une clé publique, demandez à votre administrateur de vous attribuer le rôle IAM Lecteur de clé publique CryptoKey Cloud KMS (roles/cloudkms.publicKeyViewer) sur votre clé ou une ressource parente.
Pour en savoir plus sur l'attribution de rôles, consultez Gérer l'accès aux projets, aux dossiers et aux organisations.
Ce rôle prédéfini contient les autorisations requises pour récupérer une clé publique. Pour connaître les autorisations exactes requises, développez la section Autorisations requises :
Autorisations requises
Les autorisations suivantes sont requises pour récupérer une clé publique :
-
cloudkms.cryptoKeyVersions.viewPublicKey -
cloudkms.locations.get -
cloudkms.locations.list -
resourcemanager.projects.get
Vous pouvez également obtenir ces autorisations avec des rôles personnalisés ou d'autres rôles prédéfinis.
Récupérer une clé publique
Vous pouvez spécifier le format dans lequel vous souhaitez récupérer la clé publique.
Si le format est spécifié, la clé sera renvoyée dans le format spécifié dans le champ public_key de la réponse. Sinon, il est renvoyé dans le champ pem de la réponse.
Pour télécharger la clé publique d'une version de clé asymétrique activée :
Console
Dans la console Google Cloud , accédez à la page Gestion des clés.
Cliquez sur le nom du trousseau de clés contenant la clé asymétrique pour laquelle vous souhaitez récupérer la clé publique.
Cliquez sur le nom de la clé pour laquelle vous souhaitez récupérer la clé publique.
Sur la ligne correspondant à la version de clé pour laquelle vous souhaitez récupérer la clé publique, cliquez sur View more (Afficher plus) .
Cliquez sur Get the public key (Obtenir la clé publique).
La clé publique s'affiche dans l'invite. Vous pouvez copier la clé publique dans votre presse-papiers. Pour télécharger la clé publique, cliquez sur Download (Télécharger).
Si vous ne voyez pas l'option Get public key (Obtenir la clé publique), vérifiez les points suivants :
- La clé est une clé asymétrique.
- La version de clé est activée.
- Vous disposez de l'autorisation
cloudkms.cryptoKeyVersions.viewPublicKey.
Le nom de fichier d'une clé publique téléchargée à partir de la console Google Cloud se présente sous la forme :
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 :
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 NIST PQC (version bêta), utiliseznist-pqc. Pour X-Wing (version bêta), utilisezxwing-raw-bytes. Pour toutes les autres clés, vous pouvez utiliserpem,derou omettre ce paramètre.OUTPUT_FILE_PATH: chemin d'accès où vous souhaitez enregistrer le 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?public_key_format=PUBLIC_KEY_FORMAT" \
--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é.PUBLIC_KEY_FORMAT: format dans lequel vous souhaitez exporter la clé publique. Pour les algorithmes PQC (preview), utilisezNIST_PQC. Pour toutes les autres clés, vous pouvez utiliserPEMou omettre ce paramètre.
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" }