En esta página, se explica cómo configurar la destrucción diferida de versiones de secretos, actualizar o quitar la duración de la demora en la destrucción y restablecer las versiones de secretos que están programadas para su destrucción.
Cuando destruyes una versión de un secreto, el material del secreto se destruye de inmediato y de forma permanente. Como administrador de Secret Manager, puedes configurar la demora en la destrucción de versiones de Secrets, para que la versión del Secret no se destruya inmediatamente después y sigue siendo recuperable durante un tiempo configurable.
Cuando se habilita la demora en la destrucción del secreto y destruyes uno versión, ocurre lo siguiente:
- La versión está inhabilitada, lo que impide su uso.
- El sistema programa la versión para su destrucción permanente al final del período de demora.
- Una vez que vence el período de retraso, la versión del Secret es irrevocable y permanente antes de que se destruyan.
Beneficios
Esta función ofrece los siguientes beneficios:
Una capa adicional de protección contra la destrucción accidental o maliciosa de material secreto fundamental Cualquier usuario que tenga la versión del Secret de Secret Manager Rol de administrador puede destruir una versión del Secret. Esta acción es irreversible. Si configuras la destrucción diferida, puedes evitar la destrucción inmediata de las versiones de secretos. Puedes otorgarles a los usuarios el acceso mínimo requerido para administrar el ciclo de vida de las versiones del Secret puedes supervisar y evitar cualquier destrucción accidental de datos sensibles.
La destrucción de una versión de secreto activa una notificación SECRET_VERSION_DESTROY_SCHEDULED en los temas de Pub/Sub configurados en el secreto. Como administrador de Secret Manager, puedes cancelar la destrucción programada y restablecer la versión secreta. Para ello, debes habilitar o inhabilitar la versión secreta.
Antes de comenzar
Enable the Secret Manager API.
Configura la autenticación.
Select the tab for how you plan to use the samples on this page:
Console
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
gcloud
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
REST
Para usar las muestras de la API de REST en esta página en un entorno de desarrollo local, debes usar las credenciales que proporcionas a la CLI de gcloud.
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
Si deseas obtener más información, consulta Autentica para usar REST en la documentación de autenticación de Google Cloud.
Roles obligatorios
Para obtener los permisos que necesitas para configurar la destrucción diferida de versiones de secretos, pídele a tu administrador que te otorgue el rol de IAM de Administrador de Secret Manager (
roles/secretmanager.admin
) en el 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.
Configurar la demora en la destrucción
Puedes habilitar la destrucción diferida de una versión de Secret cuando lo creas o cuando lo actualizas.
Console
En la consola de Google Cloud, ve a la página Secret Manager.
Sigue los pasos necesarios para crear un Secret.
Ve a la sección Retrasar la destrucción de la versión del secreto.
Selecciona la casilla de verificación Establecer la duración para la demora en la destrucción.
En el campo Duración del retraso de la destrucción, ingresa la duración en días. El valor mínimo que puede ingresar es de 1 día, mientras que el valor máximo es de 1,000 días.
Haz clic en Crear secreto.
Para habilitar esta función en un Secret existente, ve a la página Editar Secret y, luego, configura la duración de la demora de destrucción.
gcloud
Para configurar la duración de la demora en la destrucción del Secret, usa la Comando gcloud beta secret create.
Antes de usar cualquiera de los datos de comando a continuación, realiza los siguientes reemplazos:
- SECRET_ID: Es el ID del secreto o el identificador completamente calificado del secreto.
- TTL_DURATION: la duración del retraso de la destrucción del del Secret. Puedes ingresar la duración en cualquier formato, por ejemplo, días, horas o segundos. La duración mínima requerida es de 1 día, mientras que la duración máxima se puede establecer en 1,000 días.
Ejecuta el siguiente comando:
Linux, macOS o Cloud Shell
gcloud beta secrets create SECRET_ID --version-destroy-ttl=TTL_DURATION
Windows (PowerShell)
gcloud beta secrets create SECRET_ID --version-destroy-ttl=TTL_DURATION
Windows (cmd.exe)
gcloud beta secrets create SECRET_ID --version-destroy-ttl=TTL_DURATION
La respuesta contiene el Secret recién creado.
REST
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- PROJECT_ID: Es el ID del proyecto de Google Cloud en el que quieres crear el Secret
- SECRET_ID: El ID del secreto o el identificador completamente calificado del secreto.
- TTL_DURATION: Es la duración del retraso de la destrucción de las versiones del Secret. Ingresa la duración en segundos. Ten en cuenta que la duración mínima requerida es de 1 día, mientras que la duración máxima se puede establecer en 1,000 días.
Método HTTP y URL:
POST https://secretmanager.googleapis.com/v1/projects/PROJECT_ID/secrets?secretId=SECRET_ID
Cuerpo JSON de la solicitud:
{"replication": {"automatic": {}}, "version_destroy_ttl":"TTL_DURATION"}
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 POST \
-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?secretId=SECRET_ID"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 POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://secretmanager.googleapis.com/v1/projects/PROJECT_ID/secrets?secretId=SECRET_ID" | Select-Object -Expand ContentDeberías recibir una respuesta JSON similar a la que se muestra a continuación:
{ "name":"projects/PROJECT_ID/secrets/SECRET_ID", "replication":{ "automatic":{ } }, "createTime":"2023-10-16T17:10:16.345401Z", "etag":"\"1607d90ee3d84c\"", "versionDestroyTtl":"TTL_DURATION" }
La destrucción diferida no se aplica en las siguientes situaciones:
- Cuando se borra un Secret, todo el material secreto y las versiones de Secret relacionadas se borran de inmediato.
- Cuando se establece una fecha de vencimiento en el Secret y este vence, todas las versiones del Secret se destruyen de inmediato, incluso si la destrucción diferida está habilitada en el Secret.
Duración del retraso de la destrucción de las actualizaciones
Console
En la consola de Google Cloud, ve a la página Secret Manager.
Edita tu secreto con una de las siguientes opciones:
- Haz clic en Más acciones asociadas con el Secret que quieres editar y, luego, selecciona Editar en el menú.
- Haz clic en el nombre del secret para ir a la página Detalles del secret. En la página Detalles del secreto, haz clic en Editar secreto.
Ve a la sección Retrasar la destrucción de la versión del secreto.
En el campo Destruction delay duration, ingresa la duración actualizada.
Haz clic en Actualizar secreto.
gcloud
Para actualizar la duración de la demora de destrucción, usa el comando gcloud beta secrets update.
Antes de usar cualquiera de los datos de comando a continuación, realiza los siguientes reemplazos:
- SECRET_ID: Es el ID del secreto o el identificador completamente calificado del secreto.
- TTL_DURATION: Es la duración de la demora de destrucción para las versiones del secreto.
Ejecuta el siguiente comando:
Linux, macOS o Cloud Shell
gcloud beta secrets update SECRET_ID --version-destroy-ttl=TTL_DURATION
Windows (PowerShell)
gcloud beta secrets update SECRET_ID --version-destroy-ttl=TTL_DURATION
Windows (cmd.exe)
gcloud beta secrets update SECRET_ID --version-destroy-ttl=TTL_DURATION
La respuesta contiene el secreto actualizado.
REST
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- PROJECT_ID: El ID del proyecto de Google Cloud
- SECRET_ID: El ID del Secret o el identificador completamente calificado del Secret
- TTL_DURATION: La duración del retraso de la destrucción de las versiones del Secret
Método HTTP y URL:
PATCH https://secretmanager.googleapis.com/v1/projects/PROJECT_ID/secrets/SECRET_ID?updateMask=version_destroy_ttl
Cuerpo JSON de la solicitud:
{ "version_destroy_ttl":"TTL_DURATION" }
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 PATCH \
-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?updateMask=version_destroy_ttl"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 PATCH `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://secretmanager.googleapis.com/v1/projects/PROJECT_ID/secrets/SECRET_ID?updateMask=version_destroy_ttl" | Select-Object -Expand ContentDeberías recibir una respuesta JSON similar a la que se muestra a continuación:
{ "name":"projects/PROJECT_ID/secrets/SECRET_ID", "replication":{ "automatic":{ } }, "createTime":"2023-10-16T17:10:16.345401Z", "etag":"\"1607d90ee3d84c\"", "versionDestroyTtl":"TTL_DURATION" }
Las versiones del Secret que se ven afectadas por la duración del retraso de la destrucción dependen sobre lo siguiente:
- Cuando se configura la demora en la destrucción por primera vez en el Secret, el La duración del retraso en la destrucción afecta a todas las versiones activas (habilitadas e inhabilitadas) del Secret.
- Cuando se actualiza o quita la duración del retraso de la destrucción, los cambios se reflejan solo en las versiones nuevas del secreto en las que se intenta realizar la acción de destrucción. Las versiones de Secret que ya están programadas para su destrucción se seguirán destruyendo en el momento programado.
Inhabilita la destrucción diferida
Console
En la consola de Google Cloud, ve a la página Secret Manager.
Edita tu secreto mediante una de las siguientes opciones:
- Haz clic en Más acciones asociadas con el Secret que quieres editar y, luego, selecciona Editar en el menú.
- Haz clic en el nombre del secret para ir a la página Detalles del secret. En la página Detalles del secreto, haz clic en Editar secreto.
Ve a la sección Retrasar la destrucción de la versión del secreto.
Desmarca la casilla de verificación Establecer la duración de la destrucción demorada.
Haz clic en Actualizar secreto.
gcloud
Para quitar la duración de la demora en la destrucción, usa la gcloud beta secret update.
Antes de usar cualquiera de los datos de comando a continuación, realiza los siguientes reemplazos:
- SECRET_ID: El ID del Secret o el identificador completamente calificado del Secret
Ejecuta el siguiente comando:
Linux, macOS o Cloud Shell
gcloud beta secrets update SECRET_ID --remove-version-destroy-ttl
Windows (PowerShell)
gcloud beta secrets update SECRET_ID --remove-version-destroy-ttl
Windows (cmd.exe)
gcloud beta secrets update SECRET_ID --remove-version-destroy-ttl
La respuesta contiene el secreto actualizado.
REST
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- PROJECT_ID: El ID del proyecto de Google Cloud
- SECRET_ID: El ID del Secret o el identificador completamente calificado del Secret
Método HTTP y URL:
PATCH https://secretmanager.googleapis.com/v1/projects/PROJECT_ID/secrets/SECRET_ID?updateMask=version_destroy_ttl
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 PATCH \
-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?updateMask=version_destroy_ttl"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 PATCH `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://secretmanager.googleapis.com/v1/projects/PROJECT_ID/secrets/SECRET_ID?updateMask=version_destroy_ttl" | Select-Object -Expand ContentDeberías recibir una respuesta JSON similar a la que se muestra a continuación:
{ "name":"projects/PROJECT_ID/secrets/SECRET_ID", "replication":{ "automatic":{ } }, "createTime":"2023-10-16T17:10:16.345401Z", "etag":"\"1607d90ee3d84c\"" }
Prueba la demora en la destrucción de las versiones del Secret
Console
En la consola de Google Cloud, ve a la página Secret Manager.
Haz clic en el nombre del secreto. Aparecerá la página Detalles del secreto.
En la página Detalles del secreto, en la tabla Versiones, selecciona una versión de secreto.
En la columna Acciones, haz clic en
Ver más, y, luego, en Destruir.En el cuadro de diálogo que aparece, haz clic en Programar la destrucción de las versiones seleccionadas.
gcloud
Para destruir una versión de un Secret, usa el comando gcloud beta secrets versions destroy.
Antes de usar cualquiera de los datos de comando a continuación, realiza los siguientes reemplazos:
- SECRET_VERSION_ID: el ID de la versión o el identificador completamente calificado de la versión
- SECRET_ID: El ID del Secret o el identificador completamente calificado del Secret
Ejecuta el siguiente comando:
Linux, macOS o Cloud Shell
gcloud beta secrets versions destroy SECRET_VERSION_ID --secret=SECRET_ID
Windows (PowerShell)
gcloud beta secrets versions destroy SECRET_VERSION_ID --secret=SECRET_ID
Windows (cmd.exe)
gcloud beta secrets versions destroy SECRET_VERSION_ID --secret=SECRET_ID
La respuesta contiene la versión destruida del Secret.
REST
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- PROJECT_ID: El ID del proyecto de Google Cloud
- SECRET_ID: Es el ID del secreto o el identificador completamente calificado del secreto.
- VERSION_ID: Es el ID de la versión o el identificador completamente calificado de la versión.
Método HTTP y URL:
POST https://secretmanager.googleapis.com/v1/projects/PROJECT_ID/secrets/SECRET_ID/versions/VERSION_ID/:destroy
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 POST \
-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/:destroy"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 POST `
-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/:destroy" | Select-Object -Expand ContentDeberías recibir una respuesta JSON similar a la que se muestra a continuación:
{ "name":"projects/PROJECT_ID/secrets/SECRET_ID/versions/VERSION_ID", "createTime":"2023-10-16T17:21:55.920036Z", "state":"DISABLED", "replicationStatus":{ "automatic":{ } }, "etag":"\"1607d8b2fc1cf4\"", "scheduledDestroyTime":"2023-10-16T17:26:57.459395960Z" }
La versión del Secret se inhabilita de inmediato y se programa su destrucción después de vence la duración del retraso de la destrucción. Puedes ver la fecha y hora exactas en las que la versión se destruirá en la columna Destrucción programada para el en la tabla Versiones.
Restablecer versiones de los secretos
Puedes restablecer una versión del Secret programada para su destrucción habilitando o inhabilitando la versión del Secret.
Habilita una versión de Secret que está programada para su destrucción
Console
En la consola de Google Cloud, ve a la página Secret Manager.
Haz clic en el nombre del secreto. Aparecerá la página Detalles del secreto.
En la página Detalles del Secret, en la tabla Versiones, selecciona una versión del Secret. que está programada para su destrucción.
En la columna Acciones, haz clic en
Ver más, y, luego, haz clic en Habilitar.En el cuadro de diálogo que aparece, haz clic en Habilitar versiones seleccionadas.
gcloud
Para habilitar una versión del Secret programada para su destrucción, usa la gcloud beta secret version enable.
Antes de usar cualquiera de los datos de comando a continuación, realiza los siguientes reemplazos:
- SECRET_VERSION_ID: el ID de la versión o el identificador completamente calificado de la versión
- SECRET_ID: El ID del Secret o el identificador completamente calificado del Secret
Ejecuta el siguiente comando:
Linux, macOS o Cloud Shell
gcloud beta secrets versions enable SECRET_VERSION_ID --secret=SECRET_ID
Windows (PowerShell)
gcloud beta secrets versions enable SECRET_VERSION_ID --secret=SECRET_ID
Windows (cmd.exe)
gcloud beta secrets versions enable SECRET_VERSION_ID --secret=SECRET_ID
La respuesta contiene la versión habilitada del secreto.
REST
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- PROJECT_ID: El ID del proyecto de Google Cloud
- SECRET_ID: Es el ID del secreto o el identificador completamente calificado del secreto.
- VERSION_ID: Es el ID de la versión o el identificador completamente calificado de la versión.
Método HTTP y URL:
POST https://secretmanager.googleapis.com/v1/projects/PROJECT_ID/secrets/SECRET_ID/versions/VERSION_ID/:enable
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 POST \
-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/:enable"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 POST `
-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/:enable" | Select-Object -Expand ContentDeberías recibir una respuesta JSON similar a la que se muestra a continuación:
{ "name":"projects/PROJECT_ID/secrets/SECRET_ID/versions/VERSION_ID", "createTime":"2023-10-16T17:21:55.920036Z", "state":"ENABLED", "replicationStatus":{ "automatic":{ } }, "etag":"\"1607d8b3e8e1bc\"" }
Inhabilita una versión de Secret que está programada para su destrucción
Console
En la consola de Google Cloud, ve a la página Secret Manager.
Haz clic en el nombre del Secret. Aparecerá la página Detalles del secreto.
En la página Detalles del Secret, en la tabla Versiones, selecciona una versión del Secret. que está programada para su destrucción.
En la columna Acciones, haz clic en
Ver más, Luego, haz clic en Inhabilitar.En el cuadro de diálogo que aparece, haz clic en Inhabilitar las versiones seleccionadas.
gcloud
Para inhabilitar una versión del Secret que está programada para su destrucción, usa la Comando gcloud beta secret updates deploy.
Antes de usar cualquiera de los datos de comando a continuación, realiza los siguientes reemplazos:
- SECRET_VERSION_ID: el ID de la versión o el identificador completamente calificado de la versión
- SECRET_ID: El ID del Secret o el identificador completamente calificado del Secret
Ejecuta el siguiente comando:
Linux, macOS o Cloud Shell
gcloud beta secrets versions disable SECRET_VERSION_ID --secret=SECRET_ID
Windows (PowerShell)
gcloud beta secrets versions disable SECRET_VERSION_ID --secret=SECRET_ID
Windows (cmd.exe)
gcloud beta secrets versions disable SECRET_VERSION_ID --secret=SECRET_ID
La respuesta contiene la versión inhabilitada del secreto.
REST
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- PROJECT_ID: El ID del proyecto de Google Cloud
- SECRET_ID: Es el ID del secreto o el identificador completamente calificado del secreto.
- VERSION_ID: Es el ID de la versión o el identificador completamente calificado de la versión.
Método HTTP y URL:
POST https://secretmanager.googleapis.com/v1/projects/PROJECT_ID/secrets/SECRET_ID/versions/VERSION_ID/:disable
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 POST \
-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/:disable"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 POST `
-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/:disable" | Select-Object -Expand ContentDeberías recibir una respuesta JSON similar a la que se muestra a continuación:
{ "name":"projects/PROJECT_ID/secrets/SECRET_ID/versions/VERSION_ID", "createTime":"2023-10-16T17:21:55.920036Z", "state":"DISABLED", "replicationStatus":{ "automatic":{ } }, "etag":"\"1607d8b3e8e1bc\"" }
¿Qué sigue?
- Obtén información para garantizar la integridad de los datos.
- Obtén más información sobre las prácticas recomendadas.
Salvo que se indique lo contrario, el contenido de esta página está sujeto a la licencia Atribución 4.0 de Creative Commons, y los ejemplos de código están sujetos a la licencia Apache 2.0. Para obtener más información, consulta las políticas del sitio de Google Developers. Java es una marca registrada de Oracle o sus afiliados.
Última actualización: 2024-11-20 (UTC)