Nesta página, descrevemos como acessar uma versão do secret. O acesso a uma versão do secret retorna o
conteúdo e metadados adicionais sobre a versão do secret. Para acessar uma versão secreta usando a
CLI do Google Cloud ou a API Secret Manager, especifique o ID da versão ou
o pseudônimo, se ele tiver sido atribuído. Também é possível acessar a versão mais recente de um secret
latest
como o ID da versão.
Funções exigidas
Para receber as permissões necessárias para acessar uma versão de segredo,
peça ao administrador para conceder a você o
papel do IAM de Acesso a segredos do Secret Manager (roles/secretmanager.secretAccessor
) em um segredo.
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.
Acessar uma versão do secret
Para editar um 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, clique na guia Regional secrets e, em seguida, clique em um secret para acessar as versões dele.
-
Na página de detalhes do secret, na guia Versões, selecione a versão do secret que você quer acessar.
-
Clique no menu
Ações associado à versão do secret e, em seguida, em Acessar valor do secret. -
Uma caixa de diálogo é exibida, mostrando o valor da versão do secret. Clique em Concluído para fechar a caixa de diálogo.
gcloud
Acessar uma versão do secret
Antes de usar os dados do comando abaixo, faça estas substituições:
- VERSION_ID: o nome do recurso da versão do secret
- SECRET_ID: o ID do secret ou o identificador totalmente qualificado para o secret
- LOCATION: o local do Google Cloud do segredo
Execute o seguinte comando:
Linux, macOS ou Cloud Shell
gcloud secrets versions access VERSION_ID --secret=SECRET_ID --location=LOCATION
Windows (PowerShell)
gcloud secrets versions access VERSION_ID --secret=SECRET_ID --location=LOCATION
Windows (cmd.exe)
gcloud secrets versions access VERSION_ID --secret=SECRET_ID --location=LOCATION
Acessar uma versão binária do secret
Para gravar bytes brutos em um arquivo, use a sinalização --out-file:
Antes de usar os dados do comando abaixo, faça estas substituições:
- VERSION_ID: o ID da versão do secret
- SECRET_ID: o ID do secret ou do identificador totalmente qualificado
- LOCATION: o local do Google Cloud do segredo
- PATH_TO_SECRET: o caminho completo (incluindo o nome do arquivo) em que você quer salvar o valor do secret recuperado
Execute o seguinte comando:
Linux, macOS ou Cloud Shell
gcloud secrets versions access VERSION_ID --secret=SECRET_ID --location=LOCATION --out-file="PATH_TO_SECRET"
Windows (PowerShell)
gcloud secrets versions access VERSION_ID --secret=SECRET_ID --location=LOCATION --out-file="PATH_TO_SECRET"
Windows (cmd.exe)
gcloud secrets versions access VERSION_ID --secret=SECRET_ID --location=LOCATION --out-file="PATH_TO_SECRET"
Acessar os bytes brutos
Para receber os bytes brutos, faça com que o SDK do Cloud imprima a resposta codificada e em decodificação em base64:
Antes de usar os dados do comando abaixo, faça estas substituições:
- VERSION_ID: o ID da versão do secret
- SECRET_ID: o ID do secret ou o identificador totalmente qualificado para o secret
- LOCATION: o local do Google Cloud do segredo
Execute o seguinte comando:
Linux, macOS ou Cloud Shell
gcloud secrets versions access VERSION_ID --secret=SECRET_ID --location=LOCATION --format='get(payload.data)' | tr '_-' '/+' | base64 -d
Windows (PowerShell)
gcloud secrets versions access VERSION_ID --secret=SECRET_ID --location=LOCATION --format='get(payload.data)' | tr '_-' '/+' | base64 -d
Windows (cmd.exe)
gcloud secrets versions access VERSION_ID --secret=SECRET_ID --location=LOCATION --format='get(payload.data)' | tr '_-' '/+' | base64 -d
A resposta contém a versão do secret.
REST
Acessar uma versão do secret
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- LOCATION: o local do secret no Google Cloud
- PROJECT_ID: o ID do projeto do Google Cloud
- SECRET_ID: o ID do secret ou o identificador totalmente qualificado para o secret
- VERSION_ID: o ID da versão do secret
Método HTTP e URL:
GET https://secretmanager.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/secrets/SECRET_ID/versions/VERSION_ID:access
Corpo JSON da solicitação:
{}
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 GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://secretmanager.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/secrets/SECRET_ID/versions/VERSION_ID:access"
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 GET `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://secretmanager.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/secrets/SECRET_ID/versions/VERSION_ID:access" | Select-Object -Expand Content
Você receberá uma resposta JSON semelhante a esta:
{ "name": "projects/PROJECT_ID/locations/LOCATION/secrets/SECRET_ID/versions/VERSION_ID", "payload": { "data": "c2VDcjN0Cg==", "dataCrc32c": "3131222104" } }
Extraia o secret usando a ferramenta jq
A resposta payload.data
é o conteúdo codificado em base64 da versão do secret.
O comando a seguir é um exemplo de extração do secret usando a ferramenta jq
.
$ curl "https://secretmanager.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/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
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.
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.
Consistência de recursos
No Secret Manager, adicionar uma versão do secret e acessá-la imediatamente versão do secret por número é uma operação de consistência forte.
Outras operações no Secret Manager têm consistência posterior. As operações de consistência futura geralmente são convergidas em minutos, mas podem levar algumas horas.
A propagação de permissões do IAM é consistente. Isso significa que conceder ou revogar o acesso a secrets não entra em vigor imediatamente. Para mais informações, consulte Propagação de alteração de acesso.
A seguir
- Atribuir um alias a uma versão regional do secret
- Desativar uma versão regional do secret
- Destruir uma versão regional do secret