Esta página descreve como acessar uma versão do secret. O acesso a uma versão do secret retorna o conteúdo
do secret e metadados adicionais sobre a versão do secret. Para acessar uma versão secreta usando a
Google Cloud CLI 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 ao especificar
latest
como o ID da versão.
Funções exigidas
Para receber as permissões necessárias para acessar uma versão secreta,
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 aparece mostrando o valor da versão do secret. Clique em Concluído para sair da 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 do identificador totalmente qualificado
- 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 do secret binário
Para gravar bytes brutos em um arquivo, use a flag --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"
Conseguir os bytes brutos
Para receber os bytes brutos, faça com que o SDK 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 do identificador totalmente qualificado
- 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 Google Cloud do segredo
- PROJECT_ID: o ID do projeto do Google Cloud
- SECRET_ID: o ID do secret ou do identificador totalmente qualificado
- 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" } }
Extrair 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 acessar imediatamente essa versão pelo número de versão é 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