Os dados secretos são imutáveis e a maioria das operações ocorre em versões secretas. Uma versão secreta contém os dados secretos reais, juntamente com o estado e os metadados sobre o segredo. Esta página descreve como adicionar uma versão secreta.
Para mais informações sobre o controlo de versões, consulte este vídeo sobre o controlo de versões.
Funções necessárias
Para receber as autorizações de que precisa para adicionar uma versão secreta, peça ao seu administrador que lhe conceda as seguintes funções de IAM num segredo:
-
Adicionador de versões secretas do Secret Manager (
roles/secretmanager.secretVersionAdder
) -
Secret Manager Secret Version Manager (
roles/secretmanager.secretVersionManager
)
Para mais informações sobre a atribuição de funções, consulte o artigo Faça a gestão do acesso a projetos, pastas e organizações.
Também pode conseguir as autorizações necessárias através de funções personalizadas ou outras funções predefinidas.
Não é possível conceder funções da IAM numa versão do Secret.
Adicione uma versão do segredo
Para adicionar uma versão secreta, use um dos seguintes métodos:
Consola
-
Na Google Cloud consola, aceda à página Secret Manager.
-
Na página Secret Manager, localize o segredo para o qual quer adicionar a nova versão.
-
Clique no menu
Ações associado a esse segredo e, de seguida, clique em Adicionar nova versão. É apresentada a caixa de diálogo Adicionar nova versão. -
No campo Valor secreto, introduza um valor para o segredo, como
abcd1234
. Em alternativa, pode carregar um ficheiro que contenha o valor secreto. -
Clique em Adicionar nova versão.
gcloud
Adicione uma versão do Secret a partir do conteúdo de um ficheiro no disco
Antes de usar qualquer um dos dados de comandos abaixo, faça as seguintes substituições:
- SECRET_ID: o ID do segredo ou o identificador totalmente qualificado do segredo
- FILE_PATH: o caminho completo (incluindo o nome do ficheiro) para o ficheiro 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.
Adicione uma versão do Secret diretamente na linha de comandos
Também pode adicionar uma versão secreta diretamente na linha de comandos, mas isto não é recomendado porque aparece como texto simples na lista de processos e pode ser capturada por outros utilizadores do sistema. Tenha em atenção que o comando com o texto simples também vai estar no histórico da shell.
echo -n "SECRET_DATA" | \ gcloud secrets versions add SECRET_ID --data-file=-
Substitua o seguinte:
- SECRET_DATA: os dados que quer armazenar na versão secreta
- SECRET_ID: o ID do segredo ou o identificador totalmente qualificado do segredo
Opcional: adicione uma versão a partir do conteúdo de um ficheiro quando criar um segredo pela primeira vez
Antes de usar qualquer um dos dados de comandos abaixo, faça as seguintes substituições:
- SECRET_ID: o ID do segredo ou o identificador totalmente qualificado do segredo
- FILE_PATH: o caminho completo (incluindo o nome do ficheiro) para o ficheiro 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 secretos em Base64 e guarde-os como uma variável de shell.
$ SECRET_DATA=$(echo "seCr3t" | base64)
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- PROJECT_ID: o Google Cloud ID do projeto
- SECRET_ID: o ID do segredo ou o identificador totalmente qualificado do segredo
Método HTTP e URL:
POST https://secretmanager.googleapis.com/v1/projects/PROJECT_ID/secrets/SECRET_ID:addVersion
Corpo JSON do pedido:
{"payload": {"data": "${SECRET_DATA}"}}
Para enviar o seu pedido, escolha uma destas opções:
curl
Guarde o corpo do pedido num ficheiro com o nome request.json
,
e execute o seguinte 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.googleapis.com/v1/projects/PROJECT_ID/secrets/SECRET_ID:addVersion"
PowerShell
Guarde o corpo do pedido num ficheiro com o nome request.json
,
e execute o seguinte 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.googleapis.com/v1/projects/PROJECT_ID/secrets/SECRET_ID:addVersion" | Select-Object -Expand Content
Deve receber uma resposta JSON semelhante à seguinte:
{ "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 este código, primeiro configure um ambiente de programação em C# e instale o SDK em C# do Secret Manager. No Compute Engine ou no GKE, tem de autenticar-se com o âmbito cloud-platform.
Go
Para executar este código, primeiro configure um ambiente de desenvolvimento Go e instale o SDK Go do Secret Manager. No Compute Engine ou no GKE, tem de autenticar-se com o âmbito cloud-platform.
Java
Para executar este código, primeiro configure um ambiente de desenvolvimento Java e instale o SDK Java do Secret Manager. No Compute Engine ou no GKE, tem de autenticar-se com o âmbito cloud-platform.
Node.js
Para executar este 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, tem de autenticar-se com o âmbito cloud-platform.
PHP
Para executar este código, saiba primeiro como usar o PHP no Google Cloud e instale o SDK PHP do Secret Manager. No Compute Engine ou no GKE, tem de autenticar-se com o âmbito cloud-platform.
Python
Para executar este código, primeiro configure um ambiente de desenvolvimento Python e instale o SDK Python do Secret Manager. No Compute Engine ou no GKE, tem de autenticar-se com o âmbito cloud-platform.
Ruby
Para executar este código, primeiro configure um ambiente de desenvolvimento Ruby e instale o SDK Ruby do Secret Manager. No Compute Engine ou no GKE, tem de autenticar-se com o âmbito cloud-platform.
Estados da versão do Secret
Uma versão secreta pode estar num dos seguintes estados em qualquer altura:
-
Ativada: neste estado, é possível aceder à versão secreta e descrevê-la. Este é o estado predefinido de uma nova versão do segredo.
-
Desativada: neste estado, não é possível aceder à versão do Secret, mas o conteúdo do Secret continua a existir. Pode reativar a versão do Secret para restaurar o acesso.
-
Destruído: neste estado, o conteúdo da versão do segredo é rejeitado. Não é possível alterar a versão do Secret para outro estado.
As versões secretas ativadas e desativadas são faturadas. As versões do Secret no estado destruído não estão sujeitas a cobrança.
O que se segue?
- Saiba como aceder a uma versão secreta.
- Saiba como atribuir um alias a uma versão secreta.
- Saiba como listar versões de segredos e ver detalhes das versões.