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. Nesta página, descrevemos como adicionar uma versão do secret.
Para mais informações sobre controle de versões, assista este vídeo.
Funções exigidas
Para receber as permissões necessárias para adicionar uma versão de 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 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 secreta, use um dos seguintes métodos:
Console
-
No console Google Cloud , acesse a página Secret Manager.
-
Na página Secret Manager, localize o secret a que você quer adicionar a nova versão.
-
Clique no menu
Ações associado a esse secret e clique em Adicionar nova versão. A caixa de diálogo Adicionar nova versão aparece. -
No campo Valor do secret, insira um valor para o secret, como
abcd1234
. Como alternativa, faça upload de um arquivo com 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 ou o identificador totalmente qualificado 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 vai 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: adicione 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 ou o identificador totalmente qualificado 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 as substituições a seguir:
- PROJECT_ID: o ID do projeto Google Cloud
- SECRET_ID: o ID do secret ou o identificador totalmente qualificado 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#
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ê recebe cobranças pelas versões ativadas e desativadas do secret. Você não recebe cobranças por versões de secrets 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 detalhes delas.