Como autenticar em um serviço da Cloud API

Para usar uma Cloud API no código do aplicativo, configure as credenciais apropriadas usadas por ele para autenticar a identidade no serviço e receber a autorização para executar as tarefas. Esses mecanismos de credenciais são conhecidos como esquemas de autenticação.

O esquema de autenticação mais simples é o da Chave de API. No entanto, essa chave não autoriza você para o serviço. Ela só pode ser usada em dados públicos ou passados diretamente à RPC API. Por outro lado, a conta de serviço é o esquema de autorização mais útil, já que você acessa uma Cloud API com ela. Basta que seu código seja configurado para enviar as credenciais dessa conta ao serviço.

Ao acessar uma API do Google Cloud Platform, configure uma chave de API para teste e uma conta de serviço para uso em produção.

Como configurar uma Chave de API

O mecanismo de autenticação mais simples envolve passar uma Chave de API diretamente para o serviço. Como esse esquema é limitado no escopo e segurança, use Chaves de API somente para teste.

Para receber uma Chave de API e acessar uma Google Cloud Platform API, há dois fluxos no Console do Google Cloud Platform:

  1. Configurar o projeto.
  2. Usar "Gerenciador de API→Credenciais".

Como configurar o projeto

Depois de ativar uma Cloud API, como parte da configuração do projeto, você verá uma mensagem para receber credenciais.

Clique em "Ir para Credenciais" para abrir a página Adicionar credenciais.

Clique em "Chave de API". A caixa de diálogo Criar uma nova chave é exibida.

Selecione "Chave do navegador". A página Criar Chave de API do navegador é exibida.

Digite um nome para essa chave. No exemplo acima, usamos "Curl Test Key", mas você pode escolher qualquer nome. O campo do referenciador pode ficar em branco, desde que a chave do navegador seja usada somente para teste. Caso você queira implantar essa chave na produção, defina esse campo com um domínio apropriado.

Clique em "Criar". A chave recém-criada é exibida na página Chave de API do navegador.

Copie sua chave e a mantenha em segurança. Também é possível recuperá-la na página Gerenciador de API→Credenciais.

Como usar "Gerenciador de API→Credenciais"

Crie uma chave de API e outras credenciais selecionando Gerenciador de API→Credenciais no console do GCP.

Selecione "Criar credenciais→Chave de API" e crie uma chave do navegador conforme explicado na seção Como configurar o projeto.

Como configurar uma conta de serviço

A autenticação e a autorização da Google Cloud Platform API, normalmente agrupadas como "auth", geralmente são feitas com uma conta de serviço. Com essa conta, as credenciais do aplicativo são enviadas diretamente para a Cloud API no código. Assim como uma conta de usuário, a conta de serviço é representada por um endereço de e-mail. Por outro lado, essa conta pertence apenas a um aplicativo e só pode ser usada no acesso à API para a qual ela foi criada. Veja um exemplo de como criar credenciais para essa conta usando o console do Google Cloud Platform.

Como usar o console do GCP

Na página Gerenciador de API→Credenciais do console do GCP, selecione "Criar credenciais→Chave de conta de serviço".

Selecione "Nova conta de serviço" na lista suspensa "Conta de serviço".

Digite um "Nome" para essa conta de serviço. Esse nome será usado como padrão para o "Código da conta de serviço", à esquerda de "@" no endereço gerado desse código. Entretanto, se desejar, ele pode ser alterado. Esses nomes são arbitrários. É importante apenas que você os memorize. Em "Tipo de chave", defina o valor como "JSON". Clique em "Criar". No Console do GCP, uma chave JSON é gerada como um arquivo de texto .json. Faça o download desse arquivo no seu computador, e a caixa de diálogo Conta de serviço criada será exibida.

A chave JSON gerada é semelhante a esta amostra de chave:

{
  "type": "service_account",
  "project_id": "project-id",
  "private_key_id": "some_number",
  "private_key": "-----BEGIN PRIVATE KEY-----\n....
  =\n-----END PRIVATE KEY-----\n",
  "client_email": "<api-name>api@project-id.iam.gserviceaccount.com",
  "client_id": "...",
  "auth_uri": "https://accounts.google.com/o/oauth2/auth",
  "token_uri": "https://accounts.google.com/o/oauth2/token",
  "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
  "client_x509_cert_url": "https://www.googleapis.com/...<api-name>api%40project-id.iam.gserviceaccount.com"
}

Armazene esse arquivo JSON em segurança, já que ele contém a chave privada e é a única cópia dessa chave. Esse arquivo da chave de conta de serviço é necessário para enviar credenciais à Google Cloud Platform API.

Como autenticar com o Application Default Credentials

A maneira mais simples de autenticar os aplicativos em um serviço da Google Cloud Platform API é usar o Application Default Credentials (ADC). Nos serviços que usam o ADC, as credenciais são procuradas em primeiro lugar na variável de ambiente GOOGLE_APPLICATION_CREDENTIALS. A menos que você queira que o ADC use outras credenciais, como credenciais de usuário, aponte essa variável de ambiente para o arquivo de chave da conta de serviço. Você fez o download desse arquivo .json quando criou uma chave de conta de serviço, conforme explicado na seção Como configurar uma conta de serviço.

$ export GOOGLE_APPLICATION_CREDENTIALS=<path_to_service_account_file>