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 objetos que permitem o acesso anônimo. Os objetos poderão ser acessados de forma anônima se o grupo allUsers tiver a permissão READ. O grupo allUsers inclui qualquer pessoa na Internet.

OAuth 2.0

Autenticação

O Cloud Storage usa o OAuth 2.0 para autenticar e autorizar APIs. A autenticação é o processo de 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. Os projetos do Google Cloud Platform têm contas de serviço padrão que podem ser usadas, mas também é possível criar 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 a seção Como usar credenciais de conta de usuário mais adiante nesta página para ver 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 Platform.

Escopos

A autorização é o processo de determinar quais são as permissões de uma identidade autenticada em um conjunto de recursos específicos. O OAuth usa escopos para determinar se uma identidade autenticada é autorizada. Os aplicativos usam uma credencial (obtida a partir de um fluxo de autenticação centrado no usuário ou no servidor) com um ou mais escopos para solicitar um token de acesso de um servidor de autorização do Google para acessar recursos protegidos. Por exemplo, o aplicativo A com um token de acesso com escopo read-only só pode ler, enquanto o aplicativo B com um token de acesso com escopo read-write pode ler e alterar dados. Nenhum aplicativo pode ler ou alterar listas de controle de acesso em objetos e intervalos, somente um aplicativo com escopo full-control pode fazer isso.

Tipo Descrição URL do escopo
read-only Permite o acesso apenas para leitura de dados, incluindo a listagem de intervalos. https://www.googleapis.com/auth/devstorage.read_only
read-write Permite acesso para ler e alterar dados, mas não metadado, como as políticas do IAM. https://www.googleapis.com/auth/devstorage.read_write
full-control Permite o controle total dos dados, incluindo a capacidade de alterar as políticas do IAM. https://www.googleapis.com/auth/devstorage.full_control
cloud-platform.read-only Visualizar dados dos serviços do Google Cloud Platform Para o Cloud Storage, isso é o mesmo que devstorage.read-only. https://www.googleapis.com/auth/cloud-platform.read-only
cloud-platform Visualizar e gerenciar dados em todos os serviços do Google Cloud Platform. Para o Cloud Storage, isso é o mesmo que devstorage.full-control. https://www.googleapis.com/auth/cloud-platform

Autenticação do gsutil

Após instalar o gsutil a partir do SDK do Cloud, faça a autenticação usando as credenciais da conta de serviço.

  1. Use uma conta de serviço existente ou crie uma nova e faça o download da chave particular associada.

  2. Use gcloud auth activate-service-account para autenticar com a conta de serviço:

    gcloud auth activate-service-account --key-file [KEY_FILE]

    [KEY_FILE] é o nome do arquivo que contém as credenciais da conta de serviço.

O gcloud auth usa o escopo cloud-platform ao receber um token de acesso.

Se o gsutil foi instalado independentemente do Cloud SDK, consulte a página de instalação do gsutil para saber como autenticar.

Autenticação da biblioteca de cliente

As bibliotecas de cliente podem usar o Application Default Credentials para se autenticar facilmente em APIs do Google e enviar solicitações para essas APIs. Com o Application Default Credentials, você pode testar o aplicativo localmente e implementá-lo sem alterar o código subjacente. Para mais informações, inclusive amostras de código Guia de autenticação do Google Cloud Platform.

Autenticação da API

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

Authorization: Bearer <oauth2_token>

A seguir, um exemplo de solicitação que lista objetos em um intervalo.

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

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

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.

Caso esteja procurando chaves de desenvolvedor para usar com a API XML a fim de ter acesso interoperável ao Amazon S3, consulte Como gerenciar chaves de desenvolvedor para uma migração simples.

Credenciais de conta de usuário

Use credenciais de conta de usuário para autenticação quando o aplicativo exigir acesso a dados em nome de um usuário. Caso contrário, use as credenciais de conta de serviço. Aqui estão alguns exemplos de cenários em que podem ser usadas as credenciais de conta de usuário:

  • aplicativos do servidor da Web
  • aplicativos instalados e de desktop
  • aplicativos para dispositivos móveis
  • JavaScript de clientes
  • aplicativos para dispositivos de entrada limitada

Para mais informações sobre esses cenários, consulte Cenários do OAuth.

Caso esteja projetando um aplicativo que seja compatível com diversas opções de autenticação para usuários finais, use o Firebase Authentication, que é compatível com autenticação de e-mail e senha, além login federado com provedores de identidade, como Google, Facebook, Twitter e GitHub.

Em um fluxo de autenticação centrado no usuário, Quando um aplicativo recebe um token de acesso de um usuário final, esse token de acesso só terá as permissões disponíveis para o usuário que conceder o token. Por exemplo, se jane@gmail.com tiver acesso read-only ao intervalo example-bucket, um aplicativo ao qual Jane tenha concedido acesso read-write não poderá gravar no example-bucket em seu nome.

A seguir

Esta página foi útil? Conte sua opinião sobre:

Enviar comentários sobre…

Precisa de ajuda? Acesse nossa página de suporte.