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.
Se você criou ou implantou funções usando comandos
gcloud functions
ou as
APIs Cloud Functions v2 e precisa
usar essas opções para compatibilidade com versões anteriores, consulte
Controle de acesso com o IAM.
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.
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=PRINCIPAL \ --role=ROLE
em que SERVICE_NAME
é o nome do serviço, PRINCIPAL
é o principal (por exemplo, user:email@domain.com
) e ROLE
é a função.
Para uma lista de valores aceitáveis para PRINCIPAL
, consulte
Identificadores de principais.
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.
No campo Novos principais, insira uma ou mais identidades que precisam acessar seu job.
No menu Papel, selecione um ou mais papéis. Os papéis selecionados vão aparecer 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=PRINCIPAL \ --role=ROLE
em que JOB_NAME
é o nome do job, PRINCIPAL
é o tipo de principal (por exemplo, user:email@domain.com
), e ROLE
é o papel.
Veja uma lista de valores aceitáveis para PRINCIPAL
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=PRINCIPAL \ --role=ROLE
em que SERVICE_NAME
é o nome do serviço,
PRINCIPAL
é o tipo de participante
(por exemplo, user:email@domain.com
) e ROLE
é o papel.
Veja uma lista de valores aceitáveis para PRINCIPAL
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=PRINCIPAL \ --role=ROLE
em que JOB_NAME
é o nome do job, PRINCIPAL
é o tipo de principal (por exemplo, user:email@domain.com
), e ROLE
é o papel.
Veja uma lista de valores aceitáveis para PRINCIPAL
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.
No campo Novos principais, insira uma ou mais identidades que precisam acessar seu serviço.
No menu 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": [ PRINCIPAL ] } ] } 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 PRINCIPAL
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.
No campo Novos principais, insira uma ou mais identidades que precisam acessar seu serviço.
No menu 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 necessário 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": [ PRINCIPAL ] } ] } 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 PRINCIPAL
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 o papel necessário.
Clique em Salvar.
gcloud
Use o comando gcloud projects add-iam-policy-binding
:
gcloud projects add-iam-policy-binding PROJECT_ID \ --member=PRINCIPAL \ --role=ROLE
em que PRINCIPAL
é o principal
(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.
Tornar um serviço público
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 invocador do Cloud Run ao tipo de membro
allUsers
.
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. A verificação é aplicada por padrão. Essa é a solução 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. 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
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 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 Cloud Run IAM 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.
Usar condições do IAM em um serviço
Use as condições do IAM para
definir e aplicar o controle de acesso condicional baseado em atributos para recursos do Cloud Run. O Cloud Run é compatível com os atributos de condição (request.host
)
e (request.path
)
para conceder acesso condicional ao invocar
serviços do Cloud Run.
Para conceder acesso condicional com os atributos
request.host
erequest.path
ao invocar serviços do Cloud Run, adicione o campocondition
ao executar o seguinte comando:gcloud run services add-iam-policy-binding SERVICE_NAME \ --member=PRINCIPAL \ --role=ROLE \ --region=REGION \ --condition=[KEY=VALUE,...]
Substitua:
SERVICE_NAME
com o nome do serviço (por exemplo,my-service
).PRINCIPAL
com o principal (por exemplo,user:email@domain.com
).ROLE
com a função (por exemplo,roles/run.invoker
).REGION
com a região (por exemplo,europe-west1
).KEY=VALUE
com uma condição a ser incluída na vinculação. A flag--condition
precisa incluir os pares de chave-valorexpression
etitle
.
Próximas etapas
Saiba como autenticar desenvolvedores, serviços e usuários com segurança para os serviços que você acabou de proteger.