En este tema, 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. Cuando accedes a una versión del secreto, especificas su version-id o alias si se asignó. También puedes acceder a la versión más reciente de un secreto si especificas "latest"
como la 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 Acceso a secretos del Administrador de secretos (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 Secret
Console
-
Ve a la página de Secret Manager en la consola de Google Cloud.
-
En la página de Secret Manager, haz clic en el Nombre de un secreto.
-
En la página Detalles del secreto, en la tabla Versiones, busca una versión de secreto que deseas acceder.
-
En la columna Acciones, haz clic en Ver más
. -
Haz clic en Ver valor del secreto en el menú.
-
Verás un cuadro de diálogo que muestra el valor de la versión del secreto. Haz clic en Listo para terminar.
gcloud
Para usar Secret Manager en la línea de comandos, primero instala o actualiza a la versión 378.0.0 o posterior de Google Cloud CLI. En Compute Engine o GKE, debes autenticarte con el permiso cloud-platform.
Accede a la versión de un secreto:
$ 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:
$ gcloud secrets versions access version-id --secret="secret-id" --out-file="path/to/secret"
Para obtener los bytes sin procesar, haz que el SDK de Cloud imprima la respuesta como codificada en Base64 y decodificada:
$ gcloud secrets versions access version-id --secret="secret-id" --format='get(payload.data)' | tr '_-' '/+' | base64 -d
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.
API
En estos ejemplos, se usa curl para demostrar el uso de la API. Puedes generar tokens de acceso con gcloud auth print-access-token. En Compute Engine o GKE, debes autenticarte con el permiso cloud-platform.
$ 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"
La respuesta payload.data
es el contenido codificado en base64 de la versión del secreto. A continuación, se muestra 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
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 de Secret.
- Obtén más información para inhabilitar una versión del Secret.
- Obtén más información para destruir una versión de Secret.