Cette page explique comment récupérer la partie clé publique d'une version de clé asymétrique activée.
Pour les algorithmes de calcul post-quantique (PQC) (Aperçu), la clé publique est au format identifié dans les normes PQC du NIST FIPS-203, FIPS-204 et FIPS-205. Pour tous les autres algorithmes (non-PQC), la clé publique est au format PEM (Privacy-enhanced Electronic Mail). Pour en savoir plus, consultez les sections de la RFC 7468 intitulées 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).
Rôles requis
Pour obtenir les autorisations nécessaires pour récupérer une clé publique, demandez à votre administrateur de vous accorder le rôle IAM Lecteur de clé publique de crypto-clé Cloud KMS (roles/cloudkms.publicKeyViewer
) sur votre clé 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 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é est renvoyée au 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 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 \ --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 PQC (Preview), utiliseznist-pqc
. Pour toutes les autres clés, vous pouvez utiliserpem
ou omettre ce paramètre.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 et 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 utiliserPEM
ou omettre ce paramètre.
Si le format de la clé publique est omis pour une clé non-PQC, la sortie est semblable à la suivante:
{ "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
, la sortie 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" }