Autenticação do Cloud Storage

A maioria das operações realizadas no Cloud Storage precisa ser autenticada. As únicas exceções são operações em recursos que permitem o acesso anônimo. Um recurso terá acesso anônimo se o grupo allUsers estiver incluído na ACL do recurso ou se o grupo allUsers estiver incluído em uma política do IAM que se aplica ao recurso. O grupo allUsers inclui qualquer pessoa na Internet.

Autenticação do OAuth 2.0

O Cloud Storage usa o OAuth 2.0 para autenticar e autorizar APIs. A autenticação é o processo para determinar a identidade de um cliente. Os detalhes da autenticação variam dependendo de como o Cloud Storage está sendo acessado, mas se enquadram em dois tipos gerais:

  • Um fluxo centrado no servidor permite que um aplicativo retenha diretamente as credenciais de uma conta de serviço para concluir a autenticação. Use esse fluxo se o aplicativo trabalhar com seus próprios dados em vez de dados do usuário. É possível usar as contas de serviço padrão dos projetos do Google Cloud ou create contas novas.

  • Um fluxo centrado no usuário permite que um aplicativo consiga as credenciais de um usuário final. O usuário faz login para concluir a autenticação. Use esse fluxo caso o aplicativo precise acessar dados do usuário. Consulte Credenciais da conta de usuário para cenários em que um fluxo centrado no usuário é apropriado.

Tenha em mente que é possível usar os dois tipos de autenticação juntos em um aplicativo. Para mais informações sobre autenticação, consulte o Guia de autenticação do Google Cloud.

Autenticação da interface de linha de comando

Se você trabalha com o Cloud Storage usando a CLI do Google Cloud, normalmente é necessário autenticar com as credenciais da sua conta de usuário. Para fazer isso, execute o comando gcloud auth login e siga as instruções, que incluem o login na conta de usuário. Para outras opções de autenticação, consulte Autenticar para usar a gcloud CLI.

Autenticação da biblioteca de cliente

As bibliotecas de cliente podem usar o Application Default Credentials para autenticar facilmente com as APIs do Google e enviar solicitações para essas APIs. Com esse serviço, é possível testar seu aplicativo localmente e implantá-lo sem alterar o código subjacente. Par amais informações, consulte Faça a autenticação para usar as bibliotecas do cliente.

  • Google Cloud

    Se você estiver executando o aplicativo em serviços compatíveis com contas de serviço conectadas, como App Engine, Cloud Run functions, Cloud Run ou Compute Engine, o ambiente já fornece uma conta de serviço, portanto, nenhuma outra configuração é necessária. Para o Compute Engine, o escopo da conta de serviço depende de como a instância foi criada. Consulte Escopos de acesso na documentação do Compute Engine. No caso do App Engine, é usado o escopo cloud-platform.

  • Outros ambientes

    Para inicializar seu ambiente local de desenvolvimento ou produção, crie uma conta de serviço do Google Cloud, faça o download da chave e defina a variável de ambiente GOOGLE_APPLICATION_CREDENTIALS para usar essa chave. Para informações detalhadas, consulte Como configurar a autenticação com as bibliotecas de cliente do Cloud Storage.

Autenticação da API

Para fazer solicitações usando o OAuth 2.0 para a API XML ou a API JSON do Cloud Storage, inclua o token de acesso do seu aplicativo no cabeçalho Authorization em todas as solicitações que exigem autenticação. Use o OAuth 2.0 Playground para gerar um token de acesso:

  1. No OAuth 2.0 Playground, clique em Cloud Storage API v1, em seguida, selecione um nível de acesso para o aplicativo (full_control, read_only ou read_write).

  2. Clique em Authorize APIs.

  3. Faça login na sua conta quando solicitado. Na caixa de diálogo exibida, clique em Permitir.

  4. Na etapa 2 do Playground, clique em Exchange authorization code for tokens para o código de autorização exibido.

  5. Copie o token de acesso e inclua-o no cabeçalho Authorization da sua solicitação:

    Authorization: Bearer OAUTH2_TOKEN

Veja abaixo um exemplo de solicitação que lista objetos em um bucket.

API JSON

Use o método de lista do recurso Objects.

GET /storage/v1/b/example-bucket/o HTTP/1.1
Host: www.googleapis.com
Authorization: Bearer ya29.AHES6ZRVmB7fkLtd1XTmq6mo0S1wqZZi3-Lh_s-6Uw7p8vtgSwg

Para autorizar solicitações a partir da linha de comando ou realizar testes, use o comando curl com a sintaxe a seguir:

curl -H "Authorization: Bearer OAUTH2_TOKEN" "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/o"

Para realizar testes locais, use o comando gcloud auth application-default print-access-token para gerar um token.

API XML

Use uma solicitação Listar objetos.

GET / HTTP/1.1
Host: example-bucket.storage.googleapis.com
Authorization: Bearer ya29.AHES6ZRVmB7fkLtd1XTmq6mo0S1wqZZi3-Lh_s-6Uw7p8vtgSwg

Para autorizar solicitações a partir da linha de comando ou realizar testes, use o comando curl com a sintaxe a seguir:

curl -H "Authorization: Bearer OAUTH2_TOKEN" "https://BUCKET_NAME.storage.googleapis.com"

Para realizar testes locais, use o comando gcloud auth application-default print-access-token para gerar um token.

Devido à complexidade de gerenciar e atualizar tokens de acesso e devido ao risco de segurança de aplicativos criptográficos, recomendamos enfaticamente o uso de uma biblioteca de cliente verificada.

Se você estiver procurando chaves HMAC para usar com a API XML para acesso interoperável com o Amazon S3, consulte Como gerenciar chaves HMAC para contas de serviço.

A seguir