Esta página descreve como aceder a uma versão secreta. O acesso a uma versão do Secret devolve o conteúdo do Secret e metadados adicionais sobre a versão do Secret. Para aceder a uma versão secreta através da
CLI do Google Cloud ou da API Secret Manager, tem de especificar o respetivo ID da versão ou
o respetivo alias, se atribuído. Também pode aceder à versão mais recente de um segredo especificando
latest
como o ID da versão.
Funções necessárias
Para receber as autorizações de que
precisa para aceder a uma versão de um segredo,
peça ao seu administrador para lhe conceder a função de
Secret Manager Secret Accessor (roles/secretmanager.secretAccessor
)
do IAM num segredo.
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.
Aceda a uma versão do Secret
Para aceder a um segredo, use um dos seguintes métodos:
Consola
-
Na Google Cloud consola, aceda à página Secret Manager.
-
Na página Secret Manager, clique num segredo para aceder às respetivas versões.
-
Na página de detalhes do segredo, no separador Versões, selecione a versão do segredo à qual quer aceder.
-
Clique no menu
Ações associado à versão do segredo e, de seguida, clique em Ver valor do segredo. -
É apresentada uma caixa de diálogo com o valor da versão do Secret. Clique em Concluído para sair da caixa de diálogo.
gcloud
Aceda a uma versão do Secret
Antes de usar qualquer um dos dados de comandos abaixo, faça as seguintes substituições:
- VERSION_ID: o nome do recurso da versão do segredo
- SECRET_ID: o ID do segredo ou o identificador totalmente qualificado do segredo
Execute o seguinte comando:
Linux, macOS ou Cloud Shell
gcloud secrets versions access VERSION_ID --secret=SECRET_ID
Windows (PowerShell)
gcloud secrets versions access VERSION_ID --secret=SECRET_ID
Windows (cmd.exe)
gcloud secrets versions access VERSION_ID --secret=SECRET_ID
Aceda a uma versão secreta binária
Para escrever bytes não processados num ficheiro, use a flag --out-file:
Antes de usar qualquer um dos dados de comandos abaixo, faça as seguintes substituições:
- VERSION_ID: o ID da versão do segredo
- SECRET_ID: o ID do segredo ou o identificador totalmente qualificado do segredo
- PATH_TO_SECRET: o caminho completo (incluindo o nome do ficheiro) onde quer guardar o valor secreto obtido
Execute o seguinte comando:
Linux, macOS ou Cloud Shell
gcloud secrets versions access VERSION_ID --secret=SECRET_ID --out-file="PATH_TO_SECRET"
Windows (PowerShell)
gcloud secrets versions access VERSION_ID --secret=SECRET_ID --out-file="PATH_TO_SECRET"
Windows (cmd.exe)
gcloud secrets versions access VERSION_ID --secret=SECRET_ID --out-file="PATH_TO_SECRET"
Obtenha os bytes não processados
Para obter os bytes não processados, faça com que o Cloud SDK imprima a resposta como codificada em base64 e descodifique-a:
Antes de usar qualquer um dos dados de comandos abaixo, faça as seguintes substituições:
- VERSION_ID: o ID da versão do segredo
- SECRET_ID: o ID do segredo ou o identificador totalmente qualificado do segredo
Execute o seguinte comando:
Linux, macOS ou Cloud Shell
gcloud secrets versions access VERSION_ID --secret=SECRET_ID --format='get(payload.data)' | tr '_-' '/+' | base64 -d
Windows (PowerShell)
gcloud secrets versions access VERSION_ID --secret=SECRET_ID --format='get(payload.data)' | tr '_-' '/+' | base64 -d
Windows (cmd.exe)
gcloud secrets versions access VERSION_ID --secret=SECRET_ID --format='get(payload.data)' | tr '_-' '/+' | base64 -d
A resposta contém a versão do Secret.
REST
Aceda a uma versão do Secret
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
- VERSION_ID: o ID da versão do segredo
Método HTTP e URL:
GET https://secretmanager.googleapis.com/v1/projects/PROJECT_ID/secrets/SECRET_ID/versions/VERSION_ID:access
Corpo JSON do pedido:
{}
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 GET \
-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:access"
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 GET `
-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:access" | Select-Object -Expand Content
Deve receber uma resposta JSON semelhante à seguinte:
{ "name": "projects/PROJECT_ID/locations/LOCATION/secrets/SECRET_ID/versions/VERSION_ID", "payload": { "data": "c2VDcjN0Cg==", "dataCrc32c": "3131222104" } }
Extraia o segredo através da ferramenta jq
A resposta payload.data
é o conteúdo codificado em base64 da versão do Secret.
O comando seguinte é um exemplo de extração do segredo através da ferramenta jq
.
$ curl "https://secretmanager.googleapis.com/v1/projects/PROJECT_ID/secrets/SECRET_ID/versions/VERSION_ID:access" \
--request "GET" \
--header "authorization: Bearer $(gcloud auth print-access-token)" \
--header "content-type: application/json" \
| jq -r ".payload.data" | base64 --decode
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.
Consistência dos recursos
No Secret Manager, adicionar uma versão do secret e, em seguida, aceder imediatamente a essa versão do secret pelo número da versão é uma operação fortemente consistente.
Outras operações no Secret Manager acabam por ser consistentes. Normalmente, as operações de consistência eventual convergem em poucos minutos, mas podem demorar algumas horas.
A propagação das autorizações de IAM acaba por ser consistente. Isto significa que a concessão ou a revogação do acesso a segredos pode não ter efeito imediato. Para mais informações, consulte Propagação de alterações de acesso.
O que se segue?
- Saiba como atribuir um alias a uma versão secreta.
- Saiba como desativar uma versão secreta.
- Saiba como destruir uma versão secreta.