Por padrão, somente editores e proprietários dos projetos podem criar, atualizar, excluir ou invocar serviços e jobs, e somente proprietários dos projetos e administradores do Cloud Run podem modificar as políticas do Identity and Access Management (IAM), por exemplo, para tornar um serviço público. Consulte Papéis do IAM do Cloud Run para mais detalhes.
Para conceder a outros usuários ou grupos a capacidade de executar essas ações, use o IAM para conceder papéis a diferentes principais.
Papéis predefinidos do Cloud Run
Em comparação com os papéis básicos (Proprietário, Editor e Leitor), os seguintes papéis predefinidos têm controle de acesso mais refinado para acessar os recursos do Cloud Run:
Papel | Descrição |
---|---|
Administrador do Cloud Run (roles/run.admin ) |
Pode criar, atualizar e excluir serviços e jobs, além de acessar, listar e excluir execuções de jobs. Pode invocar serviços e jobs e cancelar execuções de jobs. Pode acessar e definir políticas do IAM. Pode ver, aplicar e dispensar recomendações. Requer configuração adicional para implantar serviços. |
Desenvolvedor do Cloud Run (roles/run.developer ) |
Pode criar, atualizar e excluir serviços e jobs, além de acessar, listar e excluir execuções de jobs. Pode receber, mas não definir políticas do IAM. Pode ver, aplicar e dispensar recomendações. |
Leitor do Cloud Run (roles/run.viewer ) |
Pode ver serviços, jobs e execuções de jobs. Pode acessar políticas do IAM. Pode ver recomendações. |
Chamador do Cloud Run (roles/run.invoker ) |
Pode invocar serviços e jobs e cancelar execuções de jobs. |
Controlar o acesso em um serviço ou job individual
É possível controlar o acesso por serviço ou por job usando o IAM.
Tornar um serviço público
Essa opção é para um serviço do Cloud Run que é uma API pública ou um site.
.É 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 criar um serviço do Cloud Run, adicione o estas informações ao seu arquivo main.tf
atual:
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.
Compartilhamento restrito de domínio
Se o projeto estiver sujeito à restrição de compartilhamento restrito de domínio em uma política da organização, não será possível criar serviços públicos por padrão. É possível usar tags e política condicional para isentar serviços específicos dessa restrição. Para mais detalhes, consulte a postagem do blog sobre como criar serviços públicos do Cloud Run quando o compartilhamento restrito de domínio for aplicado.
Adicionar principais
É possível adicionar principais a um job ou serviço.
Adicionar principais a um serviço
Para adicionar principais a um serviço:
IU do Console
Acesse o Console do Google Cloud:
Marque a caixa de seleção ao lado do serviço em que você quer adicionar participantes. (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 principais, insira uma ou mais identidades que precisam acessar seu serviço.
No menu suspenso Papel, selecione um ou mais papéis. Os papéis selecionados serão exibidos no painel com uma breve descrição das permissões concedidas.
Clique em Salvar.
gcloud
Use o comando gcloud run services add-iam-policy-binding
:
gcloud run services add-iam-policy-binding SERVICE_NAME \ --member=MEMBER_TYPE \ --role=ROLE
em que SERVICE_NAME
é o nome do serviço,
MEMBER_TYPE
é o tipo de participante
(por exemplo, user:email@domain.com
) e ROLE
é o papel.
Veja uma lista de valores aceitáveis para MEMBER_TYPE
na
página de conceitos do IAM.
Veja uma lista de valores aceitáveis para ROLE
em
Papéis do IAM do Cloud Run.
Adicionar principais a um job
Para adicionar principais a um job:
IU do Console
Acesse o Console do Google Cloud:
Clique na caixa de seleção à esquerda do job a que você quer adicionar principais. (Não clique no job em si.)
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.
Na caixa de texto Novos principais, insira uma ou mais identidades que precisam de acesso ao seu job.
No menu suspenso Papel, selecione um ou mais papéis. Os papéis selecionados serão exibidos no painel com uma breve descrição das permissões concedidas.
Clique em Salvar.
gcloud
Use o comando gcloud run jobs add-iam-policy-binding
:
gcloud run jobs add-iam-policy-binding JOB_NAME \ --member=MEMBER_TYPE \ --role=ROLE
em que JOB_NAME
é o nome do job, MEMBER_TYPE
é o tipo de principal (por exemplo, user:email@domain.com
), e ROLE
é o papel.
Veja uma lista de valores aceitáveis para MEMBER_TYPE
na
página de conceitos do IAM.
Veja uma lista de valores aceitáveis para ROLE
em
Papéis do IAM do Cloud Run.
Remover participantes de um papel
É possível remover principais de um serviço ou job.
Remover principais de um papel em um serviço
Para remover principais de um papel em um serviço:
IU do Console
Acesse o Console do Google Cloud:
Clique na caixa de seleção à esquerda do serviço de que você quer remover principais. (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.
Insira o participante que você quer remover no filtro da lista de papéis, que exibe todos os papéis concedidos a esse principal.
Clique na lixeira para excluir ao lado do principal no papel desejado para remover esse papel do principal.
Na caixa de diálogo de confirmação, você tem a opção de remover esse principal de todos os papéis no serviço. Clique em Remover para remover a principal do papel.
gcloud
Use o comando gcloud run services remove-iam-policy-binding
:
gcloud run services remove-iam-policy-binding SERVICE_NAME \ --member=MEMBER_TYPE \ --role=ROLE
em que SERVICE_NAME
é o nome do serviço,
MEMBER_TYPE
é o tipo de participante
(por exemplo, user:email@domain.com
) e ROLE
é o papel.
Veja uma lista de valores aceitáveis para MEMBER_TYPE
na
página de conceitos do IAM.
Veja uma lista de valores aceitáveis para ROLE
em
Papéis do IAM do Cloud Run.
Remover principais de um papel em um job
Para remover principais de um papel em um job:
IU do Console
Acesse o Console do Google Cloud:
Clique na caixa de seleção à esquerda do job a que você quer adicionar principais. (Não clique no job em si.)
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.
Insira o participante que você quer remover no filtro da lista de papéis, que exibe todos os papéis concedidos a esse principal.
Clique na lixeira para excluir ao lado do principal no papel desejado para remover esse papel do principal.
Na caixa de diálogo de confirmação, você tem a opção de remover esse principal de todos os papéis no job. Clique em Remover para remover a principal do papel.
gcloud
Use o comando gcloud run jobs remove-iam-policy-binding
:
gcloud run jobs remove-iam-policy-binding JOB_NAME \ --member=MEMBER_TYPE \ --role=ROLE
em que JOB_NAME
é o nome do job, MEMBER_TYPE
é o tipo de principal (por exemplo, user:email@domain.com
), e ROLE
é o papel.
Veja uma lista de valores aceitáveis para MEMBER_TYPE
na
página de conceitos do IAM.
Veja uma lista de valores aceitáveis para ROLE
em
Papéis do IAM do Cloud Run.
Adição ou remoção de principais em massa
É possível adicionar ou remover itens em massa para serviços e jobs.
Adição e remoção em massa de principais em serviços
Para adicionar ou remover itens em massa em um serviço:
IU do Console
Acesse o Console do Google Cloud:
Clique na caixa de seleção à esquerda do serviço em que você quer adicionar ou remover principais. (Não clique no próprio serviço.)
Selecione o serviço em que você quer adicionar ou remover participantes.
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.
Se você quiser adicionar principais:
Clique em Adicionar principal.
Na caixa de texto Novos participantes, insira uma ou mais identidades que precisam de acesso ao seu serviço.
No menu suspenso Papel, selecione um ou mais papéis. Os papéis selecionados serão exibidos no painel com uma breve descrição das permissões concedidas.
Clique em Salvar.
Se você quiser remover os principais:
Insira o participante que você quer remover no filtro da lista de papéis, que exibe todos os papéis concedidos a esse principal.
Clique na lixeira para excluir ao lado do principal no papel desejado para remover esse papel do principal.
Na caixa de diálogo de confirmação, você tem a opção de remover esse principal de todos os papéis no serviço. Clique em Remover para remover a principal do papel.
gcloud
Crie uma política do IAM:
cat <<EOF > policy.json { "bindings": [ { "role": ROLE, "members": [ MEMBER_TYPE ] } ] } EOF
Use o comando gcloud run services set-iam-policy
:
gcloud run services set-iam-policy SERVICE_NAME policy.json
Veja uma lista de valores aceitáveis para MEMBER_TYPE
na
página de conceitos do IAM.
Veja uma lista de valores aceitáveis para ROLE
em
Papéis do IAM do Cloud Run.
Adição e remoção em massa de principais em jobs
Para fazer uma adição ou remoção em massa em um job:
IU do Console
Acesse o Console do Google Cloud:
Clique na caixa de seleção à esquerda do job a que você quer adicionar principais. (Não clique no job em si.)
Selecione o job em que você quer adicionar ou remover principais.
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.
Se você quiser adicionar principais:
Clique em Adicionar principal.
Na caixa de texto Novos participantes, insira uma ou mais identidades que precisam de acesso ao seu serviço.
No menu suspenso Papel, selecione um ou mais papéis. Os papéis selecionados serão exibidos no painel com uma breve descrição das permissões concedidas.
Clique em Salvar.
Se você quiser remover os principais:
Insira o participante que você quer remover no filtro da lista de papéis, que exibe todos os papéis concedidos a esse principal.
Clique na lixeira para excluir ao lado do principal no papel desejado para remover esse papel do principal.
Na caixa de diálogo de confirmação, você tem a opção de remover esse principal de todos os papéis no job. Clique em Remover para remover a principal do papel.
gcloud
Crie uma política do IAM:
cat <<EOF > policy.json { "bindings": [ { "role": ROLE, "members": [ MEMBER_TYPE ] } ] } EOF
Use o comando gcloud run jobs set-iam-policy
:
gcloud run jobs set-iam-policy JOB_NAME policy.json
Veja uma lista de valores aceitáveis para MEMBER_TYPE
na
página de conceitos do IAM.
Veja uma lista de valores aceitáveis para ROLE
em
Papéis do IAM do Cloud Run.
Ver participantes
É possível ver os principais de serviços e jobs.
Ver principais em um serviço
Para ver os principais de um serviço:
IU do Console
Acesse o Console do Google Cloud:
Clique na caixa de seleção à esquerda do serviço que você quer ver para principais e papéis. (Não clique no próprio serviço.)
Selecione o serviço que você quer ver para participantes e papéis.
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.
A lista de papéis e os principais serão mostrados, agrupados por papel concedido.
gcloud
Use o comando gcloud run services get-iam-policy
:
gcloud run services get-iam-policy SERVICE_NAME
Ver principais em um job
Para ver os principais de um job:
IU do Console
Acesse o Console do Google Cloud:
Clique na caixa de seleção à esquerda do job a que você quer adicionar principais. (Não clique no job em si.)
Selecione o job de que você quer ver os principais e papéis.
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.
A lista de papéis e os principais serão mostrados, agrupados por papel concedido.
gcloud
Use o comando gcloud run jobs get-iam-policy
:
gcloud run jobs get-iam-policy JOB_NAME
Controlar acesso em todos os serviços e jobs em um projeto
Se você quiser conceder papéis a principais em todos os serviços e jobs em um projeto, use o IAM para envolvidos no projeto.
IU do Console
Acesse o Console do Google Cloud:
Encontre o participante para quem você quer conceder um papel para todo o projeto.
Clique no Lápis de edição no lado direito da linha do participante.
Clique em Adicionar outro papel e escolha aquele que você quer.
Clique em Salvar.
gcloud
Use o comando gcloud projects add-iam-policy-binding
:
gcloud projects add-iam-policy-binding PROJECT_ID \ --member=MEMBER_TYPE \ --role=ROLE
em que MEMBER_TYPE
é o tipo de participante
(por exemplo, user:email@domain.com
) e ROLE
é o
papel (por exemplo, roles/run.admin
).
Os tipos de participantes allUsers
e allAuthenticatedUsers
não podem ser aplicados
no nível do projeto e, em vez disso, precisam ser adicionados a cada serviço individualmente.
Desativar o invocador do Cloud Run para serviços
É possível desativar ou reativar a verificação do IAM do Invocador do Cloud Run para qualquer serviço do Cloud Run. A verificação é aplicada por padrã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. Confira Papéis do IAM do Cloud Run para ver a lista completa de papéis e permissões associadas.
Desativar a verificação do IAM do invocador do Cloud Run
Substitua a restrição de política da organização
constraints/run.requireInvokerIam
no nível da organização ou do projeto, conforme necessário. É possível usar tags para definir regras mais detalhadas para serviços específicos do Cloud Run.Para remover a restrição de política do console do Google Cloud:
Clique na guia Políticas da organização.
Encontre a política Permitir IAM do invocador desativado (Cloud Run) e selecione Editar política no menu "Ações".
Verifique se a política está configurada como Não aplicada.
Clique em Definir política.
Desative 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 Usar o Cloud IAM para autenticar as solicitações recebidas.
Clique em Criar ou Salvar.
gcloud
Use a sinalização
--no-invoker-iam-check
:gcloud run deploy 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 Cloud IAM para autenticar as solicitações recebidas.
Clique em Salvar.
gcloud
Atualize o serviço transmitindo a flag
--invoker-iam-check
:gcloud beta run services 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/invokerIamCheckDisabled:
:apiVersion: serving.knative.dev/v1 kind: Service metadata: annotations: run.googleapis.com/invokerIamCheckDisabled: 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.
Próximas etapas
Saiba como autenticar desenvolvedores, serviços e usuários com segurança para os serviços que você acabou de proteger.