En esta página, se describe cómo acceder a una versión de un secreto. Acceder a una versión del secreto muestra el contenido del secreto y metadatos adicionales sobre la versión del secreto. Para acceder a una versión secreta con Google Cloud CLI o la API de Secret Manager, debes especificar su ID de versión o su alias, si se le asignó uno. También puedes acceder a la versión más reciente de un secreto si especificas latest
como el ID de versión.
Roles obligatorios
Para obtener los permisos que necesitas para acceder a una versión de secreto, pídele a tu administrador que te otorgue el rol de IAM de Secret Manager Secret Accessor (roles/secretmanager.secretAccessor
) en un secreto.
Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.
También puedes obtener los permisos necesarios mediante roles personalizados o cualquier otro rol predefinido.
Accede a una versión del secreto
Para acceder a un secreto, usa uno de los siguientes métodos:
Console
-
En la consola de Google Cloud , ve a la página Secret Manager.
-
En la página de 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 deseas acceder.
-
Haz clic en el menú
Acciones asociado a la versión del secreto y, luego, en Ver valor del secreto. -
Aparecerá un diálogo que muestra el valor de la versión del secreto. Haz clic en Listo para salir del diálogo.
gcloud
Accede a una versión del secreto
Antes de usar cualquiera de los datos de comando a continuación, realiza los siguientes reemplazos:
- VERSION_ID: Es el nombre del recurso de la versión del secreto.
- SECRET_ID: ID del secreto o identificador completamente calificado 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
Accede a una versión del secreto binario
Para escribir bytes sin procesar en un archivo, usa la marca --out-file:
Antes de usar cualquiera de los datos de comando a continuación, realiza los siguientes reemplazos:
- VERSION_ID: ID de la versión del secreto
- SECRET_ID: ID del secreto o identificador completamente calificado del secreto
- PATH_TO_SECRET: Es la ruta de acceso completa (incluido el nombre del archivo) en la que deseas 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"
Obtén los bytes sin procesar
Para obtener los bytes sin procesar, haz que el SDK de Cloud imprima la respuesta como codificada en Base64 y decodificada:
Antes de usar cualquiera de los datos de comando a continuación, realiza los siguientes reemplazos:
- VERSION_ID: ID de la versión del secreto
- SECRET_ID: ID del secreto o identificador completamente calificado 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
Accede a una versión del secreto
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- PROJECT_ID: El Google Cloud ID del proyecto
- SECRET_ID: ID del secreto o identificador completamente calificado del secreto
- VERSION_ID: 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 que se muestra a continuación:
{ "name": "projects/PROJECT_ID/locations/LOCATION/secrets/SECRET_ID/versions/VERSION_ID", "payload": { "data": "c2VDcjN0Cg==", "dataCrc32c": "3131222104" } }
Extrae el secreto con la herramienta de jq
La respuesta payload.data
es el contenido codificado en base64 de la versión del secreto.
El siguiente comando es un ejemplo de extracción del secreto con la herramienta de 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 configura un entorno de desarrollo de C# e instala el SDK de C# para Secret Manager. En Compute Engine o GKE, debes autenticarte con el permiso cloud-platform.
Go
Para ejecutar este código, primero configura un entorno de desarrollo de Go e instala el SDK de Go para Secret Manager. En Compute Engine o GKE, debes autenticarte con el permiso cloud-platform.
Java
Para ejecutar este código, primero configura un entorno de desarrollo de Java e instala el SDK de Java para Secret Manager. En Compute Engine o GKE, debes autenticarte con el permiso cloud-platform.
Node.js
Para ejecutar este código, primero configura un entorno de desarrollo de Node.js e instala el SDK de Node.js para Secret Manager. En Compute Engine o GKE, debes autenticarte con el permiso cloud-platform.
PHP
Para ejecutar este código, primero obtén información a fin de usar PHP en Google Cloud e instala el SDK de PHP para Secret Manager. En Compute Engine o GKE, debes autenticarte con el permiso cloud-platform.
Python
Para ejecutar este código, primero configura un entorno de desarrollo de Python e instala el SDK de Python para Secret Manager. En Compute Engine o GKE, debes autenticarte con el permiso cloud-platform.
Ruby
Para ejecutar este código, primero configura un entorno de desarrollo de Ruby e instala el SDK de Ruby de Secret Manager. En Compute Engine o GKE, debes autenticarte con el permiso cloud-platform.
Coherencia del recurso
En Secret Manager, agregar una versión de un secreto y luego acceder de inmediato a ella por número de versión es una operación de coherencia sólida.
Otras operaciones dentro de Secret Manager tienen coherencia eventual. Por lo general, las operaciones de coherencia eventual convergen en minutos, pero pueden tardar algunas horas.
La propagación de los permisos de IAM tiene coherencia eventual. Esto significa que otorgar o revocar el acceso a los secretos puede no tener efecto de inmediato. Para obtener más información, consulta Propagación de cambios de acceso.
¿Qué sigue?
- Obtén más información para asignar un alias a una versión del Secret.
- Obtén más información para inhabilitar una versión del secreto.
- Obtén más información para destruir una versión del secreto.