Essa opção é para um serviço do Cloud Run que é uma API pública ou um site.
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 Chamador do Cloud Run ao tipo de membro
allUsers
.
Desativar a verificação do IAM do invocador do Cloud Run
A maneira recomendada de tornar um serviço público é desativar a verificação do IAM do Invocador do Cloud Run. A verificação é aplicada por padrão. Essa é a solução ideal se o projeto estiver sujeito à restrição de compartilhamento restrito de domínio em uma política da organização.
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 nos papéis Proprietário e Administrador do Cloud Run. Consulte [Papéis do IAM do Cloud Run][1] para conferir a lista completa de papéis e as permissões associadas.
Desativar a verificação do IAM do invocador do Cloud Run
Para desativar a verificação:
Console
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 em Segurança.
Desmarque a opção Usar o IAM para autenticar as solicitações recebidas.
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
em que
SERVICE_NAME
é o nome do serviço.Para um serviço existente, use o comando
gcloud run services update
com a flag--no-invoker-iam-check
:gcloud run services update SERVICE_NAME --no-invoker-iam-check
em que
SERVICE_NAME
é o 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
em que SERVICE_NAME é o nome do 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
Clique no serviço e em Segurança.
Selecione Usar o IAM para autenticar as solicitações recebidas.
Clique em Salvar.
gcloud
Atualize o serviço transmitindo a flag
--invoker-iam-check
:gcloud run services update SERVICE_NAME --invoker-iam-check
em que
SERVICE_NAME
é o 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
em que SERVICE_NAME é o 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 IAM do Cloud Run ao tipo de membro allUsers
É possível permitir chamadas não autenticadas 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 nos papéis Proprietário e
Administrador do Cloud Run. Veja a lista completa de papéis e permissões associadas em
Papéis do IAM do Cloud Run.
IU do Console
Para um serviço do Cloud Run existente:
Acesse o console do Google Cloud :
Clique na caixa de seleção à esquerda do serviço que você quer tornar público. (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 Permissões.
Clique em Adicionar principal.
No campo Novos participantes, insira o valor allUsers
.
No menu suspenso Papel, selecione o papel Invocador 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 alteração às configurações do IAM do serviço.
Para um novo serviço que você está criando, crie o serviço mas selecione Permitir invocações não autenticadas na guia Autenticação para disponibilizar o serviço publicamente. A opção Exigir autenticação vai tornar o serviço particular.
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 invocações não autenticadas 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.