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
Aceda à Google Cloud consola:
Selecione o serviço, mas não clique nele.
Clique no separador Autorizações no painel lateral direito. (Pode ter de clicar primeiro em Mostrar painel de informações no canto superior direito.)
Clique em Adicionar diretor.
No campo Novos membros, introduza o email da conta de programador.
Selecione a função
Cloud Run Invoker
no menu pendente Selecionar uma função.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
ougroup
, 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 recursogoogle_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.