Nesta página, explicamos como configurar a destruição atrasada de versões de secrets, atualizar ou remover a duração do atraso de destruição e restaurar versões de secrets programadas para destruição.
Por padrão, quando um usuário escolhe destruir uma versão de secret no Secret Manager, o material do secret é destruído de forma imediata e permanente. No entanto, os usuários com a função de administrador do Secret Manager podem configurar a destruição atrasada de versões de secrets, o que garante que a versão não seja destruída imediatamente após a solicitação e permaneça recuperável por um período configurável.
Quando a destruição atrasada está ativada no secret e você destrói uma versão dele, ocorre o seguinte:
-
A versão está desativada, impedindo o uso.
-
O sistema programa a versão para destruição permanente no final do período de atraso.
-
Após o período de atraso, a versão do secret é destruída de forma permanente e irreversível.
Vantagens
Esse recurso oferece os seguintes benefícios:
-
Uma camada extra de proteção contra a destruição acidental ou maliciosa de material secreto crítico. Qualquer usuário com o papel de Gerenciador de versões de secrets do Secret Manager pode destruir uma versão de secret. Essa ação é irreversível. Ao configurar a destruição atrasada, você pode evitar a destruição imediata das versões de secrets. Você pode conceder aos usuários o acesso mínimo necessário para gerenciar o ciclo de vida das versões secret, assim é possível monitorar e evitar a destruição acidental de dados sensíveis.
-
A destruição de uma versão do secret aciona uma notificação
SECRET_VERSION_DESTROY_SCHEDULEDpara os tópicos do Pub/Sub configurados no secret. Os usuários com o papel de Administrador do Secret Manager podem cancelar a destruição programada e restaurar a versão do secret ativando ou desativando a versão do secret.
Antes de começar
-
Ative a API Secret Manager, se ainda não tiver feito isso.
Funções necessárias para ativar APIs
Para ativar APIs, você precisa da permissão
serviceusage.services.enable. Se você criou o projeto, provavelmente já tem essa permissão pelo papel de proprietário (roles/owner). Caso contrário, é possível conseguir essa permissão pelo papel de administrador do Service Usage (roles/serviceusage.serviceUsageAdmin). Saiba como conceder papéis. -
Configure a autenticação.
Selecione a guia para como planeja usar as amostras nesta página:
Console
Quando você usa o console do Cloud de Confiance para acessar os serviços e as APIs do Cloud de Confiance by S3NS , não é necessário configurar a autenticação.
gcloud
Instale a Google Cloud CLI e faça login na CLI gcloud com sua identidade federada. Depois de fazer login, inicialize a Google Cloud CLI executando o seguinte comando:
gcloud initREST
Para usar as amostras da API REST nesta página em um ambiente de desenvolvimento local, use as credenciais fornecidas para a CLI gcloud.
Instale a Google Cloud CLI e faça login na CLI gcloud com sua identidade federada.
Saiba mais em Autenticar para usar REST na documentação de autenticação do Cloud de Confiance .
Funções exigidas
Para receber as permissões necessárias
para configurar a destruição atrasada de versões de secrets,
peça ao administrador para conceder a você o papel do IAM de
Administrador do Secret Manager (roles/secretmanager.admin) em um secret.
Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.
Também é possível conseguir as permissões necessárias usando papéis personalizados ou outros papéis predefinidos.
Configurar a destruição atrasada
É possível ativar a destruição atrasada de uma versão de secret ao criar ou atualizar o secret. Para configurar a destruição atrasada, use um dos seguintes métodos:
Console
-
No console do Cloud de Confiance , acesse a página Secret Manager.
-
Na página Secret Manager, clique em Criar secret.
-
Na página Criar secret, insira um nome para o secret no campo Nome.
-
Insira um valor para o secret (por exemplo,
abcd1234). Também é possível fazer upload de um arquivo de texto com o valor do secret usando a opção Fazer upload do arquivo. Essa ação cria automaticamente a versão do secret. -
Acesse a seção Atrasar a destruição da versão secreta e marque a caixa de seleção Definir a duração da destruição atrasada.
-
No campo Duração do atraso de destruição, insira a duração em dias. O valor mínimo que você pode inserir é de 1 dia, e o valor máximo é de 1.000 dias.
-
Clique em Criar secret.
Para ativar esse recurso em um secret, acesse a página Editar secret e configure a duração do atraso de destruição.
gcloud
Antes de usar os dados do comando abaixo, faça estas substituições:
- SECRET_ID: o ID do secret.
- TTL_DURATION: a duração do atraso na destruição das versões do secret. Você pode inserir a duração em qualquer formato, por exemplo, dias, horas ou segundos. A duração mínima exigida é de 1 dia, e a máxima pode ser definida como 1.000 dias.
Execute o seguinte comando:
Linux, macOS ou Cloud Shell
gcloud secrets create SECRET_ID --version-destroy-ttl=TTL_DURATION
Windows (PowerShell)
gcloud secrets create SECRET_ID --version-destroy-ttl=TTL_DURATION
Windows (cmd.exe)
gcloud secrets create SECRET_ID --version-destroy-ttl=TTL_DURATION
A resposta contém o secret recém-criado.
REST
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- PROJECT_ID: o ID do projeto do Cloud de Confiance by S3NS .
- SECRET_ID: o ID do secret.
- TTL_DURATION: a duração do atraso de destruição das versões do secret. Insira a duração em segundos. A duração mínima necessária é de 1 dia, e a máxima é de 1.000 dias.
Método HTTP e URL:
POST https://secretmanager.googleapis.com/v1/projects/PROJECT_ID/secrets?secretId=SECRET_ID
Corpo JSON da solicitação:
{"replication": {"automatic": {}}, "version_destroy_ttl":"TTL_DURATION"}Para enviar a solicitação, escolha uma destas opções:
curl
Salve o corpo da solicitação em um arquivo com o nome request.json e execute o comando abaixo:
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
Salve o corpo da solicitação em um arquivo com
o nome request.json e execute o comando abaixo:
$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 Content
Você receberá uma resposta JSON semelhante a esta:
{
"name":"projects/PROJECT_ID/secrets/SECRET_ID",
"replication":{
"automatic":{
}
},
"createTime":"2023-10-16T17:10:16.345401Z",
"etag":"\"1607d90ee3d84c\"",
"versionDestroyTtl":"TTL_DURATION"
}
A destruição atrasada não se aplica aos seguintes cenários:
-
Quando um secret é excluído, todo o material do secret e as versões relacionadas são excluídos imediatamente.
-
Quando uma data de validade é definida no secret e ele expira, todas as versões dele são destruídas imediatamente, mesmo que a destruição atrasada esteja ativada no secret.
Atualizar a duração do atraso de destruição
Para atualizar a duração do atraso de destruição, use um dos seguintes métodos:
Console
-
No console do Cloud de Confiance , acesse a página Secret Manager.
-
Para editar um secret, use um dos seguintes métodos:
-
Clique em Ações para o secret que você quer editar e, em seguida, clique em Editar.
-
Clique no nome do secret para acessar a página de detalhes dele. Na página de detalhes do secret, clique em Editar secret.
-
-
Na página Editar secret, acesse a seção Atrasar destruição da versão do secret. Atualize a duração do atraso conforme necessário e clique em Atualizar secret.
gcloud
Antes de usar os dados do comando abaixo, faça estas substituições:
- SECRET_ID: o ID do secret.
- TTL_DURATION: a duração do atraso na destruição das versões do secret.
Execute o seguinte comando:
Linux, macOS ou Cloud Shell
gcloud secrets update SECRET_ID --version-destroy-ttl=TTL_DURATION
Windows (PowerShell)
gcloud secrets update SECRET_ID --version-destroy-ttl=TTL_DURATION
Windows (cmd.exe)
gcloud secrets update SECRET_ID --version-destroy-ttl=TTL_DURATION
A resposta contém o secret recém-criado.
REST
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- PROJECT_ID: o ID do projeto do Cloud de Confiance by S3NS
- SECRET_ID: o ID do secret.
- TTL_DURATION: a duração do atraso na destruição das versões do secret.
Método HTTP e URL:
PATCH https://secretmanager.googleapis.com/v1/projects/PROJECT_ID/secrets/SECRET_ID?updateMask=version_destroy_ttl
Corpo JSON da solicitação:
{
"version_destroy_ttl":"TTL_DURATION"
}
Para enviar a solicitação, escolha uma destas opções:
curl
Salve o corpo da solicitação em um arquivo com o nome request.json e execute o comando abaixo:
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
Salve o corpo da solicitação em um arquivo com
o nome request.json e execute o comando abaixo:
$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 Content
Você receberá uma resposta JSON semelhante a esta:
{
"name":"projects/PROJECT_ID/secrets/SECRET_ID",
"replication":{
"automatic":{
}
},
"createTime":"2023-10-16T17:10:16.345401Z",
"etag":"\"1607d90ee3d84c\"",
"versionDestroyTtl":"TTL_DURATION"
}
As versões de secrets afetadas pela duração do atraso de destruição dependem do seguinte:
-
Quando a destruição atrasada é definida pela primeira vez no secret, a duração do atraso afeta todas as versões ativas (ativadas e desativadas) do secret.
-
Quando a duração do atraso de destruição é atualizada ou removida, as mudanças são refletidas apenas nas novas versões de secrets em que a ação de destruição é tentada. As versões de secret que já estão programadas para destruição continuarão sendo destruídas no horário programado.
Desativar a destruição com atraso
Para desativar a destruição atrasada de versões, use um dos seguintes métodos:
Console
-
No console do Cloud de Confiance , acesse a página Secret Manager.
-
Para editar um secret, use um dos seguintes métodos:
-
Clique em Ações para o secret que você quer editar e, em seguida, clique em Editar.
-
Clique no nome do secret para acessar a página de detalhes dele. Na página de detalhes do secret, clique em Editar secret.
-
-
Na página Editar secret, acesse a seção Atrasar destruição da versão do secret. Desmarque a caixa de seleção Definir duração para destruição atrasada e clique em Atualizar secret.
gcloud
Antes de usar os dados do comando abaixo, faça estas substituições:
- SECRET_ID: o ID do secret.
Execute o seguinte comando:
Linux, macOS ou Cloud Shell
gcloud secrets update SECRET_ID --remove-version-destroy-ttl
Windows (PowerShell)
gcloud secrets update SECRET_ID --remove-version-destroy-ttl
Windows (cmd.exe)
gcloud secrets update SECRET_ID --remove-version-destroy-ttl
REST
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- PROJECT_ID: o ID do projeto do Cloud de Confiance by S3NS
- SECRET_ID: o ID do secret.
Método HTTP e URL:
PATCH https://secretmanager.googleapis.com/v1/projects/PROJECT_ID/secrets/SECRET_ID?updateMask=version_destroy_ttl
Corpo JSON da solicitação:
{}
Para enviar a solicitação, escolha uma destas opções:
curl
Salve o corpo da solicitação em um arquivo com o nome request.json e execute o comando abaixo:
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
Salve o corpo da solicitação em um arquivo com
o nome request.json e execute o comando abaixo:
$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 Content
Você receberá uma resposta JSON semelhante a esta:
{
"name":"projects/PROJECT_ID/secrets/SECRET_ID",
"replication":{
"automatic":{
}
},
"createTime":"2023-10-16T17:10:16.345401Z",
"etag":"\"1607d90ee3d84c\""
}
Programar versões de secrets para destruição com atraso
Para programar a destruição atrasada de uma versão secreta, use um dos seguintes métodos:
Console
-
No console do Cloud de Confiance , acesse a página Secret Manager.
-
Na página do Secret Manager, clique em um secret para acessar as versões dele. A destruição atrasada das versões precisa ser configurada neste secret.
-
Na página de detalhes do secret, na guia Versões, selecione a versão do secret que você quer destruir.
-
Clique em Ações e em Destruir.
-
Na caixa de diálogo de confirmação, insira o ID do secret para confirmar e clique em Programar as versões selecionadas para destruição.
gcloud
Antes de usar os dados do comando abaixo, faça estas substituições:
- SECRET_VERSION_ID: o ID da versão ou o identificador totalmente qualificado da versão.
- SECRET_ID: o ID do secret.
Execute o seguinte comando:
Linux, macOS ou Cloud Shell
gcloud secrets versions destroy SECRET_VERSION_ID --secret=SECRET_ID
Windows (PowerShell)
gcloud secrets versions destroy SECRET_VERSION_ID --secret=SECRET_ID
Windows (cmd.exe)
gcloud secrets versions destroy SECRET_VERSION_ID --secret=SECRET_ID
REST
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- PROJECT_ID: o ID do projeto do Cloud de Confiance by S3NS
- SECRET_ID: o ID do secret
- VERSION_ID: o ID da versão ou o identificador totalmente qualificado da versão.
Método HTTP e URL:
POST https://secretmanager.googleapis.com/v1/projects/PROJECT_ID/secrets/SECRET_ID/versions/VERSION_ID:destroy
Corpo JSON da solicitação:
{}
Para enviar a solicitação, escolha uma destas opções:
curl
Salve o corpo da solicitação em um arquivo com o nome request.json e execute o comando abaixo:
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
Salve o corpo da solicitação em um arquivo com
o nome request.json e execute o comando abaixo:
$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 Content
Você receberá uma resposta JSON semelhante a esta:
{
"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"
}
A versão do secret é desativada imediatamente e programada para destruição após o vencimento do período de atraso. A data e a hora exatas em que a versão será destruída aparecem na coluna Programada para destruição em da tabela Versões.
Restaurar versões de secret
Para restaurar uma versão de secret programada para destruição, ative ou desative essa versão.
Ativar uma versão do secret programada para destruição
Para ativar uma versão de um secret programada para destruição, use um dos seguintes métodos:
Console
-
No console do Cloud de Confiance , acesse a página Secret Manager.
-
Na página do Secret Manager, clique em um secret para acessar as versões dele.
-
Na página de detalhes do secret, na guia Versões, selecione a versão do secret programada para destruição.
-
Clique em Ações e em Ativar.
-
Na caixa de diálogo de confirmação que aparece, clique em Ativar versões selecionadas.
gcloud
Antes de usar os dados do comando abaixo, faça estas substituições:
- SECRET_VERSION_ID: o ID da versão ou o identificador totalmente qualificado da versão.
- SECRET_ID: o ID do secret.
Execute o seguinte comando:
Linux, macOS ou Cloud Shell
gcloud secrets versions enable SECRET_VERSION_ID --secret=SECRET_ID
Windows (PowerShell)
gcloud secrets versions enable SECRET_VERSION_ID --secret=SECRET_ID
Windows (cmd.exe)
gcloud secrets versions enable SECRET_VERSION_ID --secret=SECRET_ID
REST
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- PROJECT_ID: o ID do projeto do Cloud de Confiance by S3NS
- SECRET_ID: o ID do secret
- VERSION_ID: o ID da versão ou o identificador totalmente qualificado da versão.
Método HTTP e URL:
POST https://secretmanager.googleapis.com/v1/projects/PROJECT_ID/secrets/SECRET_ID/versions/VERSION_ID:enable
Corpo JSON da solicitação:
{}
Para enviar a solicitação, escolha uma destas opções:
curl
Salve o corpo da solicitação em um arquivo com o nome request.json e execute o comando abaixo:
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
Salve o corpo da solicitação em um arquivo com
o nome request.json e execute o comando abaixo:
$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 Content
Você receberá uma resposta JSON semelhante a esta:
{
"name":"projects/PROJECT_ID/secrets/SECRET_ID/versions/VERSION_ID",
"createTime":"2023-10-16T17:21:55.920036Z",
"state":"ENABLED",
"replicationStatus":{
"automatic":{
}
},
"etag":"\"1607d8b3e8e1bc\""
}
Desativar uma versão de secret programada para destruição
Para desativar uma versão de um secret programada para destruição, use um dos seguintes métodos:
Console
-
No console do Cloud de Confiance , acesse a página Secret Manager.
-
Na página do Secret Manager, clique em um secret para acessar as versões dele.
-
Na página de detalhes do secret, na guia Versões, selecione a versão do secret programada para destruição.
-
Clique em Ações e em Desativar.
-
Na caixa de diálogo de confirmação que aparece, clique em Desativar as versões selecionadas.
gcloud
Antes de usar os dados do comando abaixo, faça estas substituições:
- SECRET_VERSION_ID: o ID da versão ou o identificador totalmente qualificado da versão.
- SECRET_ID: o ID do secret.
Execute o seguinte comando:
Linux, macOS ou Cloud Shell
gcloud secrets versions disable SECRET_VERSION_ID --secret=SECRET_ID
Windows (PowerShell)
gcloud secrets versions disable SECRET_VERSION_ID --secret=SECRET_ID
Windows (cmd.exe)
gcloud secrets versions disable SECRET_VERSION_ID --secret=SECRET_ID
A resposta contém a versão desativada do secret.
REST
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- PROJECT_ID: o ID do projeto do Cloud de Confiance by S3NS
- SECRET_ID: o ID do secret.
- VERSION_ID: o ID da versão ou o identificador totalmente qualificado da versão.
Método HTTP e URL:
POST https://secretmanager.googleapis.com/v1/projects/PROJECT_ID/secrets/SECRET_ID/versions/VERSION_ID:disable
Corpo JSON da solicitação:
{}
Para enviar a solicitação, escolha uma destas opções:
curl
Salve o corpo da solicitação em um arquivo com o nome request.json e execute o comando abaixo:
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
Salve o corpo da solicitação em um arquivo com
o nome request.json e execute o comando abaixo:
$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 Content
Você receberá uma resposta JSON semelhante a esta:
{
"name":"projects/PROJECT_ID/secrets/SECRET_ID/versions/VERSION_ID",
"createTime":"2023-10-16T17:21:55.920036Z",
"state":"DISABLED",
"replicationStatus":{
"automatic":{
}
},
"etag":"\"1607d8b3e8e1bc\""
}
A seguir
- Saiba como garantir a integridade de dados.
- Saiba mais sobre as práticas recomendadas.