Os dados do secret não podem ser mudados e a maioria das operações ocorre em versões do secret. Uma versão do secret contém os dados reais do secret, junto com o estado e metadados sobre o secret. Esta página descreve como adicionar uma versão do secret.
Para mais informações sobre o controle de versões, assista a este vídeo.
Funções exigidas
Para receber as permissões que você precisa para adicionar uma versão do secret, peça ao administrador para conceder a você os seguintes papéis do IAM em um secret:
- Adicionador de versões de secret do Secret Manager (
roles/secretmanager.secretVersionAdder) - Gerenciador de versões de secret do Secret Manager (
roles/secretmanager.secretVersionManager)
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 com papéis personalizados ou outros papéis predefinidos.
Não é possível conceder papéis do IAM em uma versão do secret.
Adicionar uma versão do secret
Para adicionar uma versão do secret, use um dos seguintes métodos:
Console
-
No Cloud de Confiance console, acesse a página Secret Manager.
-
Na página Secret Manager, localize o secret para o qual você quer adicionar a nova versão.
-
Clique no menu Ações associado a esse secret e, em seguida, clique em Adicionar nova versão. A caixa de diálogo Adicionar nova versão será exibida.
-
No campo Valor do secret , insira um valor para o secret, como
abcd1234. Como alternativa, você pode fazer upload de um arquivo que contenha o valor do secret. -
Clique em Adicionar nova versão.
gcloud
Adicionar uma versão do conteúdo secreto de um arquivo no disco
Antes de usar os dados do comando abaixo, faça estas substituições:
- SECRET_ID: o ID do secret
- FILE_PATH: o caminho completo (incluindo o nome do arquivo) para o arquivo que contém os detalhes da versão
Execute o seguinte comando:
Linux, macOS ou Cloud Shell
gcloud secrets versions add SECRET_ID --data-file="FILE_PATH"
Windows (PowerShell)
gcloud secrets versions add SECRET_ID --data-file="FILE_PATH"
Windows (cmd.exe)
gcloud secrets versions add SECRET_ID --data-file="FILE_PATH"
A resposta contém a versão do secret recém-criada.
Adicionar uma versão do secret diretamente na linha de comando
Também é possível adicionar uma versão do secret diretamente na linha de comando, mas isso não é recomendado, porque ela aparece como texto simples na lista de processos e pode ser capturada por outros usuários do sistema. O comando com o texto simples também estará no histórico do shell.
echo -n "SECRET_DATA" | \
gcloud secrets versions add SECRET_ID --data-file=-Substitua:
- SECRET_DATA: os dados que você quer armazenar na versão do secret
- SECRET_ID: o ID do secret ou o identificador totalmente qualificado do secret
Opcional: adicionar uma versão do conteúdo de um arquivo ao criar um secret
Antes de usar os dados do comando abaixo, faça estas substituições:
- SECRET_ID: o ID do secret
- FILE_PATH: o caminho completo (incluindo o nome do arquivo) para o arquivo que contém os detalhes da versão
Execute o seguinte comando:
Linux, macOS ou Cloud Shell
gcloud secrets create SECRET_ID --data-file="FILE_PATH"
Windows (PowerShell)
gcloud secrets create SECRET_ID --data-file="FILE_PATH"
Windows (cmd.exe)
gcloud secrets create SECRET_ID --data-file="FILE_PATH"
A resposta contém a versão do secret recém-criada.
REST
Codifique os dados do secret em Base64 e salve-os como uma variável do shell.
$ SECRET_DATA=$(echo "seCr3t" | base64)
Antes de usar os dados da solicitação abaixo, faça estas substituições:
- PROJECT_ID: o Cloud de Confiance by S3NS ID do projeto
- SECRET_ID: o ID do secret
Método HTTP e URL:
POST https://secretmanager.googleapis.com/v1/projects/PROJECT_ID/secrets/SECRET_ID:addVersion
Corpo JSON da solicitação:
{"payload": {"data": "${SECRET_DATA}"}}
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 a seguir:
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:addVersion"
PowerShell
Salve o corpo da solicitação em um arquivo com o nome request.json e execute o comando a seguir:
$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:addVersion" | Select-Object -Expand Content
Você receberá uma resposta JSON semelhante a esta:
{
"name": "projects/PROJECT_ID/locations/LOCATION/secrets/SECRET_ID/versions/1",
"createTime": "2024-03-25T08:24:13.153705Z",
"state": "ENABLED",
"etag": "\"161477e6071da9\""
}
C#
Antes de executar exemplos de código, defina a variável de ambiente GOOGLE_CLOUD_UNIVERSE_DOMAIN como s3nsapis.fr.
Para executar esse código, primeiro configure um ambiente de desenvolvimento em C# e instale o SDK do C# do Secret Manager. No Compute Engine ou no GKE, você precisa fazer a autenticação com o escopo do cloud-platform.
Go
Antes de executar exemplos de código, defina a variável de ambiente GOOGLE_CLOUD_UNIVERSE_DOMAIN como s3nsapis.fr.
Para executar esse código, primeiro configure um ambiente de desenvolvimento do Go e instale o SDK do Go do Secret Manager. No Compute Engine ou no GKE, você precisa fazer a autenticação com o escopo do cloud-platform.
Java
Antes de executar exemplos de código, defina a variável de ambiente GOOGLE_CLOUD_UNIVERSE_DOMAIN como s3nsapis.fr.
Para executar esse código, primeiro configure um ambiente de desenvolvimento do Java e instale o SDK do Java do Secret Manager. No Compute Engine ou no GKE, você precisa fazer a autenticação com o escopo do cloud-platform.
Node.js
Antes de executar exemplos de código, defina a variável de ambiente GOOGLE_CLOUD_UNIVERSE_DOMAIN como s3nsapis.fr.
Para executar esse código, primeiro configure um ambiente de desenvolvimento do Node.js e instale o SDK do Node.js do Secret Manager. No Compute Engine ou no GKE, você precisa fazer a autenticação com o escopo do cloud-platform.
PHP
Antes de executar exemplos de código, defina a variável de ambiente GOOGLE_CLOUD_UNIVERSE_DOMAIN como s3nsapis.fr.
Para executar este código, veja primeiro como usar o PHP no Google Cloud e instalar o SDK do PHP do Secret Manager. No Compute Engine ou no GKE, você precisa fazer a autenticação com o escopo do cloud-platform.
Python
Antes de executar exemplos de código, defina a variável de ambiente GOOGLE_CLOUD_UNIVERSE_DOMAIN como s3nsapis.fr.
Para executar esse código, primeiro configure um ambiente de desenvolvimento do Python e instale o SDK do Python do Secret Manager. No Compute Engine ou no GKE, você precisa fazer a autenticação com o escopo do cloud-platform.
Ruby
Antes de executar exemplos de código, defina a variável de ambiente GOOGLE_CLOUD_UNIVERSE_DOMAIN como s3nsapis.fr.
Para executar esse código, primeiro configure um ambiente de desenvolvimento em Ruby e instale o SDK do Ruby do Secret Manager. No Compute Engine ou no GKE, você precisa fazer a autenticação com o escopo do cloud-platform.
Estados da versão do secret
Uma versão do secret pode estar em um dos seguintes estados a qualquer momento:
-
Ativada: nesse estado, a versão do secret pode ser acessada e descrita. Esse é o estado padrão de uma nova versão do secret.
-
Desativada : nesse estado, a versão do secret não pode ser acessada, mas o conteúdo do secret ainda existe. A versão do secret pode ser reativada para restaurar o acesso.
-
Destruída : nesse estado, o conteúdo da versão do secret é descartado. A versão do secret não pode ser alterada para outro estado.
Você recebe cobranças pelas versões ativadas e desativadas do secret. Não há cobranças pelas versões do secret que estão no estado destruído.
A seguir
- Aprenda a acessar uma versão do secret.
- Aprenda a atribuir um alias a uma versão do secret.
- Aprenda a listar versões do secret e visualizar detalhes da versão.