En esta página, se muestra cómo recuperar la parte de clave pública de una versión de clave asimétrica habilitada.
La clave pública se encuentra en el formato de correo electrónico con privacidad mejorada (PEM). Para obtener más información, consulta las secciones sobre consideraciones generales y codificación textual de la información sobre la clave pública del sujeto de RFC 7468.
Roles obligatorios
Para obtener los permisos que necesitas para recuperar una clave pública,
pídele a tu administrador que te otorgue el rol de IAM de Visualizador de claves públicas de CryptoKey de Cloud KMS (roles/cloudkms.publicKeyViewer
) en tu clave o en un recurso superior.
Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.
Este rol predefinido contiene los permisos necesarios para recuperar una clave pública. Para ver los permisos exactos que son necesarios, expande la sección Permisos requeridos:
Permisos necesarios
Se requieren los siguientes permisos para recuperar una clave pública:
-
cloudkms.cryptoKeyVersions.viewPublicKey
-
cloudkms.locations.get
-
cloudkms.locations.list
-
resourcemanager.projects.get
También puedes obtener estos permisos con roles personalizados o con otros roles predefinidos.
Cómo recuperar una clave pública
Sigue estos pasos para descargar la clave pública de una versión de clave asimétrica habilitada:
Console
En la consola de Google Cloud, ve a la página Administración de claves.
Haz clic en el nombre del llavero de claves que contiene la clave asimétrica para la que quieres recuperar la clave pública.
Haz clic en el nombre de la clave de la que quieres recuperar la clave pública.
En la fila que corresponde a la versión de clave para la que quieres recuperar la clave pública, haz clic en Ver más
.Haz clic en Obtener clave pública.
La clave pública se muestra en el mensaje. Puedes copiar la clave pública en el portapapeles. Para descargar la clave pública, haz clic en Descargar.
Si no ves la opción Obtener clave pública, verifica lo siguiente:
- La clave es asimétrica.
- La versión de clave está habilitada.
- Tienes el permiso
cloudkms.cryptoKeyVersions.viewPublicKey
.
El nombre de archivo de una clave pública descargada de la consola de Google Cloud tiene el siguiente formato:
KEY_RING-KEY_NAME-KEY_VERSION.pub
Cada parte del nombre del 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 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
Reemplaza lo siguiente:
KEY_VERSION
: Es el número de versión de la clave.KEY_NAME
: el nombre de la clave.KEY_RING
: Es el nombre del llavero de claves que contiene la clave.LOCATION
: Es la ubicación de Cloud KMS del llavero de claves.OUTPUT_FILE_PATH
: Es la ruta de acceso en la que deseas 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 configura un entorno de desarrollo de C# e instala el SDK de C# para Cloud KMS.
Go
Para ejecutar este código, primero configura un entorno de desarrollo de Go y, luego, instala el SDK de Go para Cloud KMS.
Java
Para ejecutar este código, primero configura un entorno de desarrollo de Java y, luego, instala el SDK de Java para Cloud KMS.
Node.js
Para ejecutar este código, primero configura un entorno de desarrollo de Node.js y, luego, instala el SDK de Node.js para Cloud KMS.
PHP
Para ejecutar este código, primero obtén información sobre cómo usar PHP en Google Cloud y, luego, instala el SDK de PHP para Cloud KMS.
Python
Para ejecutar este código, primero configura un entorno de desarrollo de Python y, luego, instala el SDK de Python para Cloud KMS.
Ruby
Para ejecutar este código, primero configura un entorno de desarrollo de Ruby y, luego, instala el SDK de Ruby para Cloud KMS.
API
En estos ejemplos, se usa curl como un cliente HTTP para demostrar el uso de la API. Para obtener más información sobre el control de acceso, consulta Accede a la API de Cloud KMS.
Recupera la clave pública mediante una llamada 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" \ --request "GET" \ --header "authorization: Bearer TOKEN"
Reemplaza lo siguiente:
PROJECT_ID
: El ID del proyecto que contiene el llavero.LOCATION
: Es la ubicación de Cloud KMS del llavero de claves.KEY_RING
: Es el nombre del llavero de claves que contiene la clave.KEY_NAME
: el nombre de la clave.KEY_VERSION
: Es el número de versión de la clave.
El resultado debería 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" }