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. Essa opção é para serviços do Cloud Run, e não jobs do Cloud Run.

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:

    Acessar o Console do Google Cloud

  2. Selecione o serviço, mas não clique nele.

  3. Clique na guia Permissões no painel à direita. Talvez seja necessário clicar em Mostrar painel de informações no canto superior direito.

  4. Clique em Adicionar participantes.

  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

Como usar o proxy do Cloud Run na CLI do Google Cloud

A maneira mais fácil de testar serviços particulares é usar o proxy do Cloud Run na Google Cloud CLI. Isso redireciona o serviço particular para http://localhost:8080 (ou para a porta especificada com --port), fornecendo o token da conta ativa ou outro token especificado. Isso permite que você use um navegador da Web ou uma ferramenta como curl.
Essa é a maneira recomendada de testar de forma particular um site ou uma API no seu navegador.

É possível fazer proxy de um serviço localmente usando o seguinte comando:

gcloud beta run services proxy SERVICE --project PROJECT-ID

Como usar o curl

Como alternativa, é possível testar serviços particulares sem o proxy usando uma ferramenta como curl e transmitindo 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.