Como autenticar desenvolvedores

Além de ações administrativas, como a criação, a atualização e a exclusão de serviços, os desenvolvedores geralmente querem testar os serviços de maneira particular antes de liberá-los.

Antes de começar

Conceda permissões para acessar os serviços em que você está se autenticando. Você precisa conceder o papel de Chamador do Cloud Run ao desenvolvedor ou grupo de desenvolvedores:

IU do Console

  1. Acesse o Console do Google Cloud:

    Ir para o Google Cloud Console

  2. Selecione o serviço.

  3. Clique em Mostrar painel de informações no canto superior direito para mostrar a guia Permissões.

  4. Clique em Adicionar membros.

  5. No campo Adicionar membros, insira o e-mail da conta de desenvolvedor.

  6. Selecione o papel Cloud Run Invoker no menu suspenso Selecionar um papel.

  7. Clique em Save.

gcloud

Use o comando gcloud run services add-iam-policy-binding:

gcloud run services add-iam-policy-binding SERVICE \
  --member='USER:EMAIL' \
  --role='roles/run.invoker'

em que

  • SERVICE é o nome do serviço;
  • USER é o valor user ou group, dependendo de você estar autorizando um único desenvolvedor ou um grupo;
  • EMAIL é a conta de e-mail.

    Exemplo:

    gcloud run services add-iam-policy-binding myservice \
    --member='user:test-user@gmail.com' \
    --role='roles/run.invoker'
    

Como testar seu serviço particular

A maneira mais fácil de testar um serviço que requer autenticação é usar uma ferramenta como curl e transmitir um token de autenticação no cabeçalho Authorization:

curl -H "Authorization: Bearer $(gcloud auth print-identity-token)" SERVICE_URL

Para que o comando curl funcione, você precisa transmitir um token de identidade válido para um usuário com a permissão run.routes.invoke, como o Administrador do Cloud Run ou o Chamador do Cloud Run. Veja Papéis do IAM do Cloud Run para ver a lista completa de papéis e permissões associadas.

Conforme mostrado no exemplo, para receber um token de identidade válido para a identidade atualmente conectada em gcloud, use gcloud auth print-identity-token. Observe que os tokens de ID gerados com o comando gcloud precisam ser usados apenas em uma configuração de desenvolvimento, já que não é preciso especificar um "público". A exigência de audience reduz o risco de ataques de repetição. Por outro lado, audience é necessário ao gerar tokens de contas de serviço.

Para uma reutilização conveniente, crie um alias de linha de comando em seu perfil do shell do Linux ou do macOS:

alias gcurl='curl --header "Authorization: Bearer $(gcloud auth print-identity-token)"'

Use-o para fazer solicitações aos seus serviços:

gcurl OPTIONAL_CURL_FLAGS SERVICE_URL

Para testar um site ou uma API no navegador, use extensões que modificam cabeçalhos de solicitação HTTP.