Há duas maneiras de criar um serviço público do Cloud Run:
- Desative a verificação do IAM do invocador do Cloud Run (recomendado).
- Atribua o papel do IAM de invocador do Cloud Run ao tipo de membro
allUsers
.
Funções exigidas
Para desativar ou reativar a verificação do IAM do invocador em um serviço, você precisa ter as seguintes permissões:
run.services.create
run.services.update
run.services.setIamPolicy
Essas permissões estão incluídas no papel
Administrador do Cloud Run
(roles/run.admin
). Confira a lista completa de papéis e permissões associadas em
Papéis do IAM do Cloud Run.
Desativar a verificação do IAM do invocador do Cloud Run
A maneira recomendada de criar um serviço público é desativar a verificação do IAM do invocador do Cloud Run. O Cloud Run aplica essa verificação por padrão. Use essa solução quando o projeto estiver sujeito à restrição de compartilhamento restrito de domínio em uma política da organização.
Para desativar a verificação:
Console
No console Google Cloud , acesse a página do Cloud Run:
Clique em Criar serviço se estiver configurando um novo serviço e preencha a página inicial de configurações de serviço conforme necessário.
Se você estiver configurando um serviço atual, clique nele e na guia Segurança.
Selecione Permitir acesso público.
Clique em Criar ou Salvar.
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 atual, use o comando
gcloud run services update
com a flag--no-invoker-iam-check
:gcloud run services update SERVICE_NAME --no-invoker-iam-check
Substitua SERVICE_NAME
pelo nome do serviço.
YAML
Para visualizar e fazer o download da 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 nova configuração usando o seguinte comando:
gcloud run services replace service.yaml
Verifique se a verificação está desativada após a implantação, navegando até o endpoint HTTPS do serviço.
Ative novamente a verificação do IAM do invocador do Cloud Run.
Para reativar a verificação:
Console
No console Google Cloud , acesse a página do Cloud Run:
Clique no serviço e em Segurança.
Selecione Exigir autenticação e Identity and Access Management (IAM).
Clique em Salvar.
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 visualizar e fazer o download da 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 serviço do Cloud Run.
Confira se a verificação foi reativada após a implantação acessando o endpoint HTTPS do serviço.
Configurar a política da organização para a verificação do IAM do invocador do Cloud Run
Se você for administrador, poderá restringir a capacidade de
desativar a verificação do IAM do invocador
usando a restrição gerenciada constraints/run.managed.requireInvokerIam
.
Essa restrição não é aplicada por padrão.
Atribua o papel de invocador do Cloud Run IAM ao tipo de membro allUsers
É possível permitir o acesso público a um serviço atribuindo o papel de invocador do Cloud Run do IAM
ao tipo de membro allUsers
.
É preciso ter a permissão run.services.setIamPolicy
para configurar a autenticação
em um serviço do Cloud Run. Essa permissão está incluída no papel de administrador do Cloud Run. Confira a lista completa de papéis e permissões associadas em
Papéis do IAM do Cloud Run.
Console
Para um serviço do Cloud Run existente:
No console Google Cloud , acesse a página do Cloud Run:
À esquerda do serviço que você quer tornar público, clique na caixa de seleção. Não clique no próprio serviço.
No painel de informações no canto superior direito, clique na guia Permissões. Se o painel de informações não estiver visível, clique em Mostrar painel de informações e em Permissões.
Clique em Adicionar principal.
No campo Novos participantes, insira o valor allUsers
.
No menu Selecionar um papel, escolha o papel Chamador do Cloud Run.
Clique em Salvar.
Você precisa selecionar uma opção para tornar esse recurso público. Clique em Permitir acesso público para aplicar a mudança às configurações do IAM do serviço.
Para um novo serviço que você está criando, crie o serviço e selecione Permitir acesso público na seção Autenticação para disponibilizar o serviço publicamente. Para tornar um serviço particular, 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 allUsers
especial a um serviço e conceder a ele o papel roles/run.invoker
:
gcloud run services add-iam-policy-binding [SERVICE_NAME] \ --member="allUsers" \ --role="roles/run.invoker"
Executar o comando gcloud run deploy
para tornar seu serviço acessível publicamente ao implantá-lo:
gcloud run deploy [SERVICE_NAME] ... --allow-unauthenticated
YAML
Crie um arquivo chamado policy.yaml
com o conteúdo a seguir:
bindings:
- members:
- allUsers
role: roles/run.invoker
Permitir acesso público para o SERVICE existente usando:
gcloud run services set-iam-policy SERVICE policy.yaml
Terraform
Para saber como aplicar ou remover uma configuração do Terraform, consulte Comandos básicos do Terraform.
Adicione o seguinte a um recursogoogle_cloud_run_v2_service
na configuração do Terraform:Para atualizar a vinculação do IAM do serviço para roles/run.invoker
, adicione
o seguinte recurso que faz referência ao serviço do Cloud Run:
Essa vinculação só é autoritativa para o papel especificado. Outras vinculações do IAM na política de IAM do serviço são preservadas.