En esta página, se describe cómo puedes destruir una versión secreta. En el estado destruido, se descarta el contenido de la versión del secreto. La destrucción de una versión de secreto es una acción permanente. Una vez que se destruye una versión, no puedes acceder a los datos secretos ni restablecer la versión a otro estado.
Antes de destruir una versión de un secreto, inhabilita primero y observa el comportamiento de tu aplicación. Puedes volver a habilitar la versión secreta si encuentras problemas inesperados.
Cuando inhabilitas o destruyes un secreto o una versión secreta, el cambio tarda en propagarse a través del sistema. Si es necesario, puedes revocar el acceso al secreto. Los cambios en los permisos de IAM son coherentes en segundos.
Roles obligatorios
Para obtener los permisos que necesitas para destruir una versión de secreto, pídele a tu administrador que te otorgue el rol de IAM de Administrador de versiones de secretos del Administrador de secretos (roles/secretmanager.secretVersionManager
) 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.
Destruye una versión del secreto
Para destruir una versión secreta, usa uno de los siguientes métodos:
Console
-
Ve a la página de Secret Manager en la consola de Google Cloud.
-
En la página Secret Manager, haz clic en la pestaña Secretos regionales y, luego, 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 deseas destruir.
-
Haz clic en
Acciones y, luego, en Destruir. -
En el cuadro de diálogo de confirmación que aparece, ingresa el ID secreto para confirmar y, luego, haz clic en Destruir versiones seleccionadas.
gcloud
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: El ID del Secret o el identificador completamente calificado del Secret
- LOCATION: La ubicación de Google Cloud 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 cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- LOCATION: La ubicación de Google Cloud del secreto
- PROJECT_ID: El ID del proyecto de Google Cloud
- SECRET_ID: El ID del Secret o el identificador completamente calificado del Secret
- VERSION_ID: El ID de la versión del Secret
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 que se muestra a continuación:
{ "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 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.
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.
Destrucción demorada de las versiones de Secret
Los usuarios con el rol de administrador de Secret Manager pueden configurar la destrucción diferida 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 de inmediato cuando se solicita. En su lugar, la versión del secreto se inhabilita y se programa para su destrucción en una fecha posterior. Durante este tiempo, el administrador de Secret Manager puede restablecer la versión del secreto.
¿Qué sigue?
- Retrasar la destrucción de las versiones de secretos regionales
- Asigna un alias a una versión regional del Secret