En esta página se describe cómo acceder a una versión de un secreto. Al acceder a una versión de un secreto, se devuelven el contenido del secreto y metadatos adicionales sobre la versión del secreto. Para acceder a una versión de un secreto mediante la CLI de Google Cloud o la API Secret Manager, debes especificar su ID de versión o su alias, si se le ha asignado. También puedes acceder a la versión más reciente de un secreto especificando latest
como ID de versión.
Roles obligatorios
Para obtener los permisos que necesitas para acceder a una versión de un secreto, pide a tu administrador que te conceda el rol de gestión de identidades y accesos Permiso para acceder a los recursos de Secret Manager (roles/secretmanager.secretAccessor
) en un secreto.
Para obtener más información sobre cómo conceder roles, consulta el artículo Gestionar el acceso a proyectos, carpetas y organizaciones.
También puedes conseguir los permisos necesarios a través de roles personalizados u otros roles predefinidos.
Acceder a una versión de secreto
Para acceder a un secreto, usa uno de los siguientes métodos:
Consola
-
En la Google Cloud consola, ve a la página Secret Manager.
-
En la página Secret Manager, haz clic en un secreto para acceder a sus versiones.
-
En la página de detalles del secreto, en la pestaña Versiones, selecciona la versión del secreto a la que quieras acceder.
-
Haz clic en el menú
Acciones asociado a la versión del secreto y, a continuación, en Ver valor del secreto. -
Aparecerá un cuadro de diálogo con el valor de la versión del secreto. Haz clic en Hecho para cerrar el cuadro de diálogo.
gcloud
Acceder a una versión de secreto
Antes de usar los datos de los comandos que se indican a continuación, haz los siguientes cambios:
- VERSION_ID: nombre del recurso de la versión del secreto
- SECRET_ID: el ID del secreto
Ejecuta el siguiente comando:
Linux, macOS o Cloud Shell
gcloud secrets versions access VERSION_ID --secret=SECRET_ID
Windows (PowerShell)
gcloud secrets versions access VERSION_ID --secret=SECRET_ID
Windows (cmd.exe)
gcloud secrets versions access VERSION_ID --secret=SECRET_ID
Acceder a una versión de secreto binario
Para escribir bytes sin formato en un archivo, usa la marca --out-file:
Antes de usar los datos de los comandos que se indican a continuación, haz los siguientes cambios:
- VERSION_ID: el ID de la versión del secreto
- SECRET_ID: el ID del secreto
- PATH_TO_SECRET: la ruta completa (incluido el nombre del archivo) donde quieras guardar el valor del secreto recuperado
Ejecuta el siguiente comando:
Linux, macOS o Cloud Shell
gcloud secrets versions access VERSION_ID --secret=SECRET_ID --out-file="PATH_TO_SECRET"
Windows (PowerShell)
gcloud secrets versions access VERSION_ID --secret=SECRET_ID --out-file="PATH_TO_SECRET"
Windows (cmd.exe)
gcloud secrets versions access VERSION_ID --secret=SECRET_ID --out-file="PATH_TO_SECRET"
Obtener los bytes sin procesar
Para obtener los bytes sin procesar, haz que el SDK de Google Cloud imprima la respuesta codificada en base64 y decodifícala:
Antes de usar los datos de los comandos que se indican a continuación, haz los siguientes cambios:
- VERSION_ID: el ID de la versión del secreto
- SECRET_ID: el ID del secreto
Ejecuta el siguiente comando:
Linux, macOS o Cloud Shell
gcloud secrets versions access VERSION_ID --secret=SECRET_ID --format='get(payload.data)' | tr '_-' '/+' | base64 -d
Windows (PowerShell)
gcloud secrets versions access VERSION_ID --secret=SECRET_ID --format='get(payload.data)' | tr '_-' '/+' | base64 -d
Windows (cmd.exe)
gcloud secrets versions access VERSION_ID --secret=SECRET_ID --format='get(payload.data)' | tr '_-' '/+' | base64 -d
La respuesta contiene la versión del secreto.
REST
Acceder a una versión de secreto
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- PROJECT_ID: el ID del proyecto Google Cloud
- SECRET_ID: el ID del secreto
- VERSION_ID: el ID de la versión del secreto
Método HTTP y URL:
GET https://secretmanager.googleapis.com/v1/projects/PROJECT_ID/secrets/SECRET_ID/versions/VERSION_ID:access
Cuerpo JSON de la solicitud:
{}
Para enviar tu solicitud, elige una de estas opciones:
curl
Guarda el cuerpo de la solicitud en un archivo llamado request.json
y ejecuta el siguiente comando:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://secretmanager.googleapis.com/v1/projects/PROJECT_ID/secrets/SECRET_ID/versions/VERSION_ID:access"
PowerShell
Guarda el cuerpo de la solicitud en un archivo llamado request.json
y ejecuta el siguiente comando:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://secretmanager.googleapis.com/v1/projects/PROJECT_ID/secrets/SECRET_ID/versions/VERSION_ID:access" | Select-Object -Expand Content
Deberías recibir una respuesta JSON similar a la siguiente:
{ "name": "projects/PROJECT_ID/locations/LOCATION/secrets/SECRET_ID/versions/VERSION_ID", "payload": { "data": "c2VDcjN0Cg==", "dataCrc32c": "3131222104" } }
Extraer el secreto con la herramienta jq
La respuesta payload.data
es el contenido codificado en base64 de la versión del secreto.
El siguiente comando es un ejemplo de cómo extraer el secreto con la herramienta jq
.
$ curl "https://secretmanager.googleapis.com/v1/projects/PROJECT_ID/secrets/SECRET_ID/versions/VERSION_ID:access" \
--request "GET" \
--header "authorization: Bearer $(gcloud auth print-access-token)" \
--header "content-type: application/json" \
| jq -r ".payload.data" | base64 --decode
C#
Para ejecutar este código, primero debes configurar un entorno de desarrollo de C# e instalar el SDK de C# de Secret Manager. En Compute Engine o GKE, debes autenticarte con el ámbito cloud-platform.
Go
Para ejecutar este código, primero debes configurar un entorno de desarrollo de Go e instalar el SDK de Go de Secret Manager. En Compute Engine o GKE, debes autenticarte con el ámbito cloud-platform.
Java
Para ejecutar este código, primero debes configurar un entorno de desarrollo de Java e instalar el SDK de Java de Secret Manager. En Compute Engine o GKE, debes autenticarte con el ámbito cloud-platform.
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 Secret Manager. En Compute Engine o GKE, debes autenticarte con el ámbito cloud-platform.
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 Secret Manager. En Compute Engine o GKE, debes autenticarte con el ámbito cloud-platform.
Python
Para ejecutar este código, primero debes configurar un entorno de desarrollo de Python e instalar el SDK de Python de Secret Manager. En Compute Engine o GKE, debes autenticarte con el ámbito cloud-platform.
Ruby
Para ejecutar este código, primero debes configurar un entorno de desarrollo de Ruby e instalar el SDK de Ruby de Secret Manager. En Compute Engine o GKE, debes autenticarte con el ámbito cloud-platform.
Coherencia de recursos
En Secret Manager, añadir una versión de un secreto y, a continuación, acceder inmediatamente a esa versión por número de versión es una operación con coherencia fuerte.
Otras operaciones de Secret Manager acaban siendo coherentes. Las operaciones de coherencia final suelen converger en unos minutos, pero pueden tardar varias horas.
La propagación de los permisos de gestión de identidades y accesos acaba siendo coherente. Esto significa que es posible que la concesión o revocación del acceso a los secretos no se aplique de inmediato. Para obtener más información, consulta Propagación de cambios de acceso.
Siguientes pasos
- Consulta cómo asignar un alias a una versión de un secreto.
- Consulta cómo inhabilitar una versión secreta.
- Consulta cómo destruir una versión de un secreto.