Autentique programadores

Além das ações administrativas, como criar, atualizar e eliminar serviços, os programadores querem frequentemente testar os serviços de forma privada antes de os lançarem. Esta opção destina-se a serviços do Cloud Run e não a tarefas do Cloud Run.

Antes de começar

Certifique-se de que concede autorizações para aceder aos serviços para os quais está a fazer a autenticação. Tem de conceder a função de invocador do Cloud Run ao programador ou ao grupo de programadores:

IU da Play Console

  1. Aceda à Google Cloud consola:

    Aceda à Google Cloud consola

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

  3. Clique no separador Autorizações no painel lateral direito. (Pode ter de clicar primeiro em Mostrar painel de informações no canto superior direito.)

  4. Clique em Adicionar diretor.

  5. No campo Novos membros, introduza o email da conta de programador.

  6. Selecione a função Cloud Run Invoker no menu pendente Selecionar uma função.

  7. Clique em Guardar.

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'

onde

  • SERVICE é o nome do serviço.
  • USER é o valor user ou group, consoante esteja a autorizar um único programador ou um grupo.
  • EMAIL é a conta de email.

    Por exemplo:

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

Terraform

Para saber como aplicar ou remover uma configuração do Terraform, consulte os comandos básicos do Terraform.

Adicione o seguinte a um recurso google_cloud_run_v2_service na sua configuração do Terraform:

resource "google_cloud_run_v2_service_iam_binding" "binding" {
  project = "PROJECT"
  location = "LOCATION"
  name = "SERVICE"
  role = "roles/run.invoker"
  members = [
      "user:EMAIL",
  ]
}

Substituir:

  • PROJECT com o ID do projeto ao qual o serviço pertence.
  • LOCATION com a localização do serviço do Cloud Run.
  • SERVICE com o nome do serviço do Cloud Run ao qual quer associar a política de IAM.
  • EMAIL com a conta de email do utilizador à qual está a conceder autorizações.

Teste o seu serviço privado

Pode usar o proxy do Cloud Run ou curl para testar o seu serviço privado.

Use o proxy do Cloud Run na CLI do Google Cloud

A forma mais fácil de testar serviços privados é usar o proxy do Cloud Run na CLI do Google Cloud. Isto encaminha o serviço privado para http://localhost:8080 (ou para a porta especificada com --port), fornecendo o token da conta ativa ou outro token que especificar. Isto permite-lhe usar um navegador de Internet ou uma ferramenta como o curl. Esta é a forma recomendada de testar um Website ou uma API de forma privada no seu navegador.

Pode usar um proxy de um serviço localmente através da seguinte linha de comandos num ambiente Linux, macOS, WSL (preferencial) ou cygwin:

gcloud run services proxy SERVICE --project PROJECT-ID

Usar curl

Em alternativa, pode testar serviços privados sem o proxy através de uma ferramenta como curl e transmitindo um símbolo de autorização no cabeçalho Authorization:

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

Para que o comando curl funcione, tem de transmitir um token de ID válido para um utilizador com a autorização run.routes.invoke, como o administrador do Cloud Run ou o invocador do Cloud Run. Consulte as funções de IAM do Cloud Run para ver a lista completa de funções e as respetivas autorizações associadas.

Para obter um token de ID válido para a identidade com sessão iniciada na CLI gcloud, use o comando gcloud auth print-identity-token. Pode usar tokens criados pela CLI gcloud para invocar pedidos HTTP em qualquer projeto, desde que a sua conta tenha a autorização run.routes.invoke no serviço.

Para fins de programação, use tokens de ID gerados pela CLI gcloud. No entanto, tenha em atenção que estes tokens não têm uma reivindicação de público-alvo, 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 adequado especificado. Esta abordagem melhora a segurança restringindo a utilização de tokens apenas ao serviço pretendido. Para contas não Google, use a federação de identidade da força de trabalho para invocar o seu serviço do Cloud Run, para que não tenha de transferir uma chave de conta de serviço.

Recomendamos que atribua o conjunto mínimo de autorizações necessárias para desenvolver e usar os seus serviços. Certifique-se de que as políticas de IAM nos seus serviços estão limitadas ao número mínimo de utilizadores e contas de serviço.