En esta página se explica cómo recuperar la parte de clave pública de una versión de clave asimétrica habilitada.
En el caso de los algoritmos de computación poscuántica (PQC) (vista previa), la clave pública tiene el formato identificado en los estándares de PQC del NIST FIPS-203, FIPS-204 y FIPS-205. En el caso de todos los demás algoritmos (que no son PQC), la clave pública está en formato de correo electrónico con privacidad mejorada (PEM). Para obtener más información, consulta las secciones RFC 7468 sobre consideraciones generales y codificación textual de la información de la clave pública del asunto.
Roles obligatorios
Para obtener los permisos que necesitas para recuperar una clave pública, pide a tu administrador que te conceda el rol de gestión de identidades y accesos Lector de claves públicas de CryptoKey de Cloud KMS (roles/cloudkms.publicKeyViewer
) en tu clave o en un recurso principal.
Para obtener más información sobre cómo conceder roles, consulta el artículo Gestionar el acceso a proyectos, carpetas y organizaciones.
Este rol predefinido contiene los permisos necesarios para obtener una clave pública. Para ver los permisos exactos que se necesitan, despliega la sección Permisos necesarios:
Permisos obligatorios
Para recuperar una clave pública, se necesitan los siguientes permisos:
-
cloudkms.cryptoKeyVersions.viewPublicKey
-
cloudkms.locations.get
-
cloudkms.locations.list
-
resourcemanager.projects.get
También puedes obtener estos permisos con roles personalizados u otros roles predefinidos.
Obtener una clave pública
Puedes especificar el formato en el que quieres obtener la clave pública.
Si se especifica el formato, la clave se devolverá en el formato especificado
en el campo public_key
de la respuesta. De lo contrario, se devuelve en el campo pem
de la respuesta.
Para descargar la clave pública de una versión de clave asimétrica habilitada, sigue estos pasos:
Consola
En la consola de Google Cloud , ve a la página Gestión de claves.
Haga clic en el nombre del conjunto de claves que contiene la clave asimétrica de la que quiere obtener la clave pública.
Haga clic en el nombre de la clave de la que quiera obtener la clave pública.
En la fila correspondiente a la versión de la clave de la que quieras obtener la clave pública, haz clic en Ver más
.Haz clic en Descargar clave pública.
La clave pública se muestra en la petición. Puedes copiar la clave pública en el portapapeles. Para descargar la clave pública, haga clic en Descargar.
Si no ves la opción Obtener clave pública, comprueba lo siguiente:
- La clave es una clave asimétrica.
- La versión de la clave está habilitada.
- Tienes el permiso
cloudkms.cryptoKeyVersions.viewPublicKey
.
El nombre de archivo de una clave pública descargada de la consola Google Cloud tiene el siguiente formato:
KEY_RING-KEY_NAME-KEY_VERSION.pub
Cada parte del nombre de archivo está separada por un guion. Por ejemplo:
ringname-keyname-version.pub
gcloud
Para usar Cloud KMS en la línea de comandos, primero instala o actualiza a la versión más reciente de la CLI de Google Cloud.
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
Haz los cambios siguientes:
KEY_VERSION
: número de versión de la clave.KEY_NAME
: el nombre de la clave.KEY_RING
: el nombre del conjunto de claves que contiene la clave.LOCATION
: la ubicación de Cloud KMS del conjunto de claves.PUBLIC_KEY_FORMAT
: el formato en el que quieres exportar la clave pública. Para los algoritmos PQC (vista previa), usanist-pqc
. Para todas las demás claves, puede usarpem
u omitir este parámetro.OUTPUT_FILE_PATH
: la ruta en la que quieres guardar el archivo de clave pública. Por ejemplo,public-key.pub
.
Para obtener información sobre todas las marcas y los valores posibles, ejecuta el comando con la marca --help
.
C#
Para ejecutar este código, primero debes configurar un entorno de desarrollo de C# e instalar el SDK de Cloud KMS para C#.
Go
Para ejecutar este código, primero debes configurar un entorno de desarrollo de Go e instalar el SDK de Go de Cloud KMS.
Java
Para ejecutar este código, primero debes configurar un entorno de desarrollo de Java e instalar el SDK de Java de Cloud KMS.
Node.js
Para ejecutar este código, primero debes configurar un entorno de desarrollo de Node.js e instalar el SDK de Node.js de Cloud KMS.
PHP
Para ejecutar este código, primero debes consultar información sobre cómo usar PHP en Google Cloud e instalar el SDK de PHP de Cloud KMS.
Python
Para ejecutar este código, primero debes configurar un entorno de desarrollo de Python e instalar el SDK de Python de Cloud KMS.
Ruby
Para ejecutar este código, primero debes configurar un entorno de desarrollo de Ruby e instalar el SDK de Ruby de Cloud KMS.
API
En estos ejemplos se usa curl como cliente HTTP para mostrar cómo se usa la API. Para obtener más información sobre el control de acceso, consulta el artículo sobre cómo acceder a la API Cloud KMS.
Recupera la clave pública llamando al método 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"
Haz los cambios siguientes:
PROJECT_ID
: el ID del proyecto que contiene el conjunto de claves.LOCATION
: la ubicación de Cloud KMS del conjunto de claves.KEY_RING
: el nombre del conjunto de claves que contiene la clave.KEY_NAME
: el nombre de la clave.KEY_VERSION
: número de versión de la clave.PUBLIC_KEY_FORMAT
: el formato en el que quieres exportar la clave pública. Para los algoritmos PQC (vista previa), usaNIST_PQC
. Para todas las demás claves, puede usarPEM
u omitir este parámetro.
Si se omite el formato de clave pública de una clave no PQC, el resultado será similar al siguiente:
{ "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" }
En el caso de un algoritmo PQC con formato de clave pública NIST_PQC
, el resultado es similar al siguiente:
{ "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" }