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 os metadados sobre o secret. Nesta página, descrevemos como adicionar uma versão do secret.
Para mais informações sobre o controle de versões, assista este vídeo sobre o assunto.
Funções exigidas
Para ter as permissões necessárias 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ão de secret do Secret Manager (
roles/secretmanager.secretVersionAdder
) -
Gerenciador de versões de Secrets 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 por meio de papéis personalizados ou de 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
-
Acesse a página do Secret Manager no console do Google Cloud:
-
Na página Secret Manager, localize o secret para o qual você quer adicionar a nova versão.
-
Clique no menu
Ações associado ao secret e, em seguida, em Adicionar nova versão. O A caixa de diálogo Adicionar nova versão será exibida. -
No campo Valor do secret, insira um valor para ele, como
abcd1234
. Como alternativa, faça upload de um arquivo contendo o valor do secret. -
Clique em Adicionar nova versão.
gcloud
Adicione uma versão do secret com base no conteúdo de um arquivo no disco
Antes de usar os dados do comando abaixo, faça estas substituições:
- SECRET_ID: o ID do secret ou do identificador totalmente qualificado
- 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 vai estar no histórico do shell.
Antes de usar os dados do comando abaixo, faça estas substituições:
- SECRET_DATA: os dados que você quer armazenar na versão secreta
- SECRET_ID: o ID do secret ou o identificador totalmente qualificado para o secret
Execute o seguinte comando:
Linux, macOS ou Cloud Shell
echo -n "SECRET_DATA" | \ gcloud secrets versions add SECRET_ID --data-file=-
Windows (PowerShell)
echo -n "SECRET_DATA" | ` gcloud secrets versions add SECRET_ID --data-file=-
Windows (cmd.exe)
echo -n "SECRET_DATA" | ^ gcloud secrets versions add SECRET_ID --data-file=-
A resposta contém a versão recém-criada do secret.
Opcional: adicionar uma versão do conteúdo de um arquivo ao criar um secret pela primeira vez
Antes de usar os dados do comando abaixo, faça estas substituições:
- SECRET_ID: o ID do secret ou do identificador totalmente qualificado
- 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 recém-criada do secret.
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 as substituições a seguir:
- PROJECT_ID: o ID do projeto do Google Cloud
- SECRET_ID: o ID do secret ou o identificador totalmente qualificado para o 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#
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
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
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
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
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
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
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.
-
Desativado: 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ê vai receber cobranças pelas versões ativadas e desativadas do secret. Você não vai receber cobranças por versões de segredos que estão no estado destruído.
A seguir
- Saiba como acessar uma versão do secret.
- Saiba como atribuir um alias a uma versão do secret.
- Saiba como listar versões de secrets e conferir os detalhes delas.