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 principal.

  5. No campo Novos principais, insira o e-mail da conta de desenvolvedor.

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

  7. Clique em Salvar.

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'

Testar seu serviço particular

Use o proxy do Cloud Run ou o curl para testar seu serviço particular.

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 a linha de comando a seguir em um ambiente Linus, macOS, WSL (preferencial) ou cygwin:

gcloud run services proxy SERVICE --project PROJECT-ID

Usar 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 ID 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.

Para receber um token de ID válido para a identidade conectada à gcloud CLI, use o comando gcloud auth print-identity-token. É possível usar tokens criados pela gcloud CLI para invocar solicitações HTTP em qualquer projeto, desde que sua conta tenha a permissão run.routes.invoke no serviço.

Para fins de desenvolvimento, use tokens de ID gerados pela gcloud CLI. No entanto, esses tokens não têm uma reivindicação de público, o que os torna suscetíveis a ataques de repetição. Em ambientes de produção, use tokens de ID emitidos para uma conta de serviço com o público-alvo apropriado especificado. Essa abordagem melhora a segurança porque restringe o uso do token apenas ao serviço pretendido. Para contas que não são do Google, use a federação de identidade da força de trabalho para invocar seu serviço do Cloud Run. Assim, você não precisa fazer o download de uma chave da conta de serviço.

Recomendamos que você aloque o conjunto mínimo de permissões necessárias para desenvolver e usar seus serviços. Certifique-se de que as políticas do IAM nos seus serviços estejam limitadas ao número mínimo de usuários e contas de serviço.