En esta página se describe cómo puedes destruir una versión de un secreto. En el estado eliminado, se descarta el contenido de la versión del secreto. La acción de destruir una versión de un secreto es permanente. Una vez que se haya eliminado una versión, no podrás acceder a los datos secretos ni restaurar la versión a otro estado.
Antes de destruir una versión de un secreto, prueba a inhabilitarla y observa el comportamiento de tu aplicación. Puedes volver a habilitar la versión del secreto si tienes problemas inesperados.
Cuando inhabilitas o destruyes un secreto o una versión de un secreto, el cambio tarda en propagarse por el sistema. Si es necesario, puedes revocar el acceso al secreto. Los cambios en los permisos de IAM se aplican en cuestión de segundos.
Roles obligatorios
Para obtener los permisos que necesitas para eliminar una versión de un secreto, pide a tu administrador que te conceda el rol de gestión de versiones de secretos de Secret Manager (Secret Manager Secret Version Manager ) (roles/secretmanager.secretVersionManager
) de gestión de identidades y accesos 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.
Eliminar una versión de secreto
Para destruir una versión de un secreto, utiliza 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, haga clic en la pestaña Secretos regionales y, a continuación, haga 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 que quieras destruir.
-
Haz clic en
Acciones y, a continuación, en Destruir. -
En el cuadro de diálogo de confirmación que aparece, introduce el ID del secreto para confirmar la acción y, a continuación, haz clic en Eliminar versiones seleccionadas.
gcloud
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
- LOCATION: la Google Cloud ubicación del secreto
Ejecuta el siguiente comando:
Linux, macOS o Cloud Shell
gcloud secrets versions destroy VERSION_ID --secret=SECRET_ID --location=LOCATION
Windows (PowerShell)
gcloud secrets versions destroy VERSION_ID --secret=SECRET_ID --location=LOCATION
Windows (cmd.exe)
gcloud secrets versions destroy VERSION_ID --secret=SECRET_ID --location=LOCATION
REST
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- LOCATION: la Google Cloud ubicación del secreto
- 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:
POST https://secretmanager.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/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.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/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.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/secrets/SECRET_ID/versions/VERSION_ID:destroy" | 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", "createTime": "2024-09-02T07:16:34.566706Z", "destroyTime": "2024-09-04T06:29:01.893743728Z", "state": "DESTROYED", "etag": "\"1621454a37ce7f\"" }
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.
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.
Destrucción aplazada de versiones de secretos
Los usuarios con el rol de administrador de Secret Manager pueden configurar la destrucción aplazada de versiones de secretos configurando la función Retrasar la destrucción de la versión del secreto en el secreto. Si esta función está habilitada, la versión del secreto no se destruye inmediatamente cuando se solicita. En su lugar, la versión del secreto se inhabilita y se programa para que se elimine en una fecha posterior. Durante ese tiempo, el administrador de Secret Manager puede restaurar la versión del secreto.
Siguientes pasos
- Retrasar la eliminación de versiones de secretos regionales
- Asignar un alias a una versión regional de un secreto