Existem duas formas de criar um serviço público do Cloud Run:
- Desative a verificação IAM do invocador do Cloud Run (recomendado).
- Atribua a função de IAM de invocador do Cloud Run ao tipo de membro
allUsers
.
Funções necessárias
Para desativar ou reativar a verificação do IAM do invocador num serviço, tem de ter as seguintes autorizações:
run.services.create
run.services.update
run.services.setIamPolicy
Estas autorizações estão incluídas na função
Administrador do Cloud Run
(roles/run.admin
). Consulte as
funções de IAM do Cloud Run
para ver a lista completa de funções e as respetivas autorizações associadas.
Desative a verificação de IAM do invocador do Cloud Run
A forma recomendada de tornar um serviço público é desativar a verificação IAM do invocador do Cloud Run. O Cloud Run aplica esta verificação por predefinição. Use esta solução quando o projeto estiver sujeito à restrição de partilha restrita a domínios numa política da organização.
Para desativar a verificação:
Consola
Na Google Cloud consola, aceda à página do Cloud Run:
Clique em Criar serviço se estiver a configurar um novo serviço e, em seguida, preencha a página de definições iniciais do serviço conforme necessário.
Se estiver a configurar um serviço existente, clique no serviço e, de seguida, clique no separador Segurança.
Selecione Permitir acesso público.
Clique em Criar ou Guardar.
gcloud
Para um novo serviço, use o comando
gcloud run deploy
com a flag--no-invoker-iam-check
:gcloud run deploy SERVICE_NAME --no-invoker-iam-check
Substitua
SERVICE_NAME
pelo nome do serviço.Para um serviço existente, use o comando
gcloud run services update
com o sinalizador--no-invoker-iam-check
:gcloud run services update SERVICE_NAME --no-invoker-iam-check
Substitua SERVICE_NAME
pelo nome do serviço.
YAML
Para ver e transferir a configuração:
gcloud run services describe SERVICE --format export > service.yaml
Atualize a anotação
run.googleapis.com/invoker-iam-disabled:
:apiVersion: serving.knative.dev/v1 kind: Service metadata: annotations: run.googleapis.com/invoker-iam-disabled: true name: SERVICE_NAME
Substitua SERVICE_NAME pelo nome do seu serviço do Cloud Run.
Substitua o serviço pela respetiva nova configuração através do seguinte comando:
gcloud run services replace service.yaml
Verifique se a verificação está desativada após a implementação navegando para o ponto final HTTPS do serviço.
Reative a verificação do IAM do invocador do Cloud Run
Para reativar a verificação:
Consola
Na Google Cloud consola, aceda à página do Cloud Run:
Clique no serviço e, de seguida, em Segurança.
Selecione Exigir autenticação e selecione Identity and Access Management (IAM).
Clique em Guardar.
gcloud
Atualize o serviço transmitindo a flag
--invoker-iam-check
:gcloud run services update SERVICE_NAME --invoker-iam-check
Substitua
SERVICE_NAME
pelo nome do serviço.
YAML
Para ver e transferir a configuração:
gcloud run services describe SERVICE --format export > service.yaml
Atualize a anotação
run.googleapis.com/invoker-iam-disabled:
:apiVersion: serving.knative.dev/v1 kind: Service metadata: annotations: run.googleapis.com/invoker-iam-disabled: false name: SERVICE_NAME
Substitua
SERVICE_NAME
pelo nome do seu serviço do Cloud Run.
Verifique se a verificação é reativada após a implementação navegando para o ponto final HTTPS do serviço.
Configure a política da organização para a verificação IAM do invocador do Cloud Run
Se for administrador, pode restringir a capacidade de
desativar a verificação de IAM do invocador
através da restrição gerida constraints/run.managed.requireInvokerIam
.
Esta restrição não é aplicada por predefinição.
Atribua a função de invocador do IAM do Cloud Run ao allUsers
tipo de membro
Pode permitir o acesso público a um serviço atribuindo a função do IAM Cloud Run Invoker ao tipo de membro allUsers
.
Tem de ter a autorização run.services.setIamPolicy
para configurar a autenticação num serviço do Cloud Run. Esta autorização está incluída na função de administrador 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.
Consola
Para um serviço do Cloud Run existente:
Na Google Cloud consola, aceda à página do Cloud Run:
À esquerda do serviço que quer tornar público, clique na caixa de verificação. Não clique no próprio serviço.
No painel de informações no canto superior direito, clique no separador Autorizações. Se o painel de informações não estiver visível, pode ter de clicar em Mostrar painel de informações e, de seguida, em Autorizações.
Clique em Adicionar principal.
No campo Novos diretores, introduza o valor allUsers
.
No menu Selecionar uma função, selecione a função Cloud Run Invoker.
Clique em Guardar.
É-lhe pedido que valide se quer tornar este recurso público. Clique em Permitir acesso público para aplicar a alteração às definições do IAM do serviço.
Para um novo serviço que está a criar, crie o serviço e selecione Permitir acesso público na secção Autenticação para disponibilizar o serviço publicamente. Para tornar um serviço privado, selecione Exigir autenticação.
gcloud
Para tornar um serviço acessível publicamente, use o comando gcloud run services
para adicionar o tipo de membro especial allUsers
a um serviço e conceder-lhe a função roles/run.invoker
:
gcloud run services add-iam-policy-binding [SERVICE_NAME] \ --member="allUsers" \ --role="roles/run.invoker"
Execute o comando gcloud run deploy
para tornar o seu serviço
acessível publicamente quando implementar o serviço:
gcloud run deploy [SERVICE_NAME] ... --allow-unauthenticated
YAML
Crie um ficheiro denominado policy.yaml
com o seguinte conteúdo:
bindings:
- members:
- allUsers
role: roles/run.invoker
Permita o acesso público para o SERVICE existente através do seguinte:
gcloud run services set-iam-policy SERVICE policy.yaml
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:Para atualizar a associação de IAM do serviço para roles/run.invoker
, adicione a seguinte referência de recurso ao seu serviço do Cloud Run:
Esta associação só é autorizada para a função especificada. As outras associações do IAM na política IAM do serviço são preservadas.