Los datos del Secret son inmutables y la mayoría de las operaciones se llevan a cabo en las versiones del Secret. La versión de un secreto contiene los datos reales del secreto, junto con el state y los metadatos sobre este. En este tema, se describe cómo agregar una versión del Secret.
Funciones obligatorias
Si quieres obtener los permisos que necesitas para agregar una versión del secreto, pídele a tu administrador que te otorgue los siguientes roles de IAM en un secreto:
-
Agregador de versiones de secretos de Secret Manager (
roles/secretmanager.secretVersionAdder
) -
Secret Manager Secret Version Manager (
roles/secretmanager.secretVersionManager
)
Si quieres obtener más información para otorgar funciones, consulta Administra el acceso.
Es posible que también puedas obtener los permisos necesarios a través de los roles personalizados o de otros roles predefinidos.
Agrega una versión del Secret
Console
-
Ve a la página Secret Manager en la consola de Google Cloud.
-
En la página Secret Manager, haz clic en Ver más
y selecciona Agregar versión nueva. -
En el cuadro de diálogo Agregar versión nueva, en el campo Valor del secreto, ingresa un valor para el secreto (p. ej.,
abcd1234
). -
Haz clic en el botón Agregar versión nueva.
gcloud
Para usar Secret Manager en la línea de comandos, primero instala o actualiza a la versión 378.0.0 o una versión posterior de Google Cloud CLI. En Compute Engine o GKE, debes autenticarte con el permiso cloud-platform.
Agrega una versión secreta del contenido de un archivo en el disco:
$ gcloud secrets versions add secret-id --data-file="/path/to/file.txt"
También puedes agregar una versión del Secret directamente en la línea de comandos, pero no es recomendable porque aparece como texto simple en la lista de procesos y es posible que otros usuarios del sistema la capturen. Ten en cuenta que el comando con el texto simple también estará en tu historial de shell.
$ echo -n "this is my super secret data" | \
gcloud secrets versions add secret-id --data-file=-
De manera opcional, agrega una versión del contenido de un archivo cuando creas un secreto por primera vez:
$ gcloud secrets create secret-id --data-file="/path/to/file.txt"
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.
Codifica los datos secretos en Base64 y guárdalos como una variable de shell.
$ SECRET_DATA=$(echo "seCr3t" | base64)
Invoca a la API mediante curl.
$ curl "https://secretmanager.googleapis.com/v1/projects/project-id/secrets/secret-id:addVersion" \
--request "POST" \
--header "authorization: Bearer $(gcloud auth print-access-token)" \
--header "content-type: application/json" \
--data "{\"payload\": {\"data\": \"${SECRET_DATA}\"}}"
Estados de la versión del Secret
La versión de un secreto puede tener uno de los siguientes estados en cualquier momento:
Habilitada: En este estado, se puede acceder a la versión del secreto y describirla. Este es el estado predeterminado de una versión nueva del secreto.
Inhabilitada: En este estado, no se puede acceder a la versión del secreto, pero el contenido del secreto aún existe. La versión del Secret se puede volver a habilitar para restablecer el acceso.
Destruido: En este estado, se descarta el contenido de la versión del secreto. La versión del Secret no se puede cambiar a otro estado.
¿Qué sigue?
- Obtén más información para acceder a una versión del Secret.
- Aprende a asignar un alias a una versión del secreto.
- Aprende a enumerar versiones de secretos y ver detalles de las versiones.