Por predefinição, apenas os proprietários e os editores do projeto podem criar, atualizar, eliminar ou invocar serviços e tarefas, e apenas os proprietários do projeto e os administradores do Cloud Run podem modificar as políticas de gestão de identidade e de acesso (IAM), por exemplo, para tornar um serviço público. Consulte as funções de IAM do Cloud Run para ver detalhes.
Para conceder a outros responsáveis ou grupos a capacidade de realizar estas ações, use o IAM para conceder funções a diferentes responsáveis.
Se criou ou implementou funções através de comandos gcloud functions
ou das APIs Cloud Functions v2 e precisar de usar estas opções para compatibilidade com versões anteriores, consulte o artigo Controlo de acesso com o IAM.
Funções predefinidas do Cloud Run
Em comparação com as funções básicas (proprietário, editor e visitante), as seguintes funções predefinidas têm um controlo de acesso mais detalhado para aceder aos recursos do Cloud Run:
Função | Descrição |
---|---|
Administrador do Cloud Run (roles/run.admin ) |
Pode criar, atualizar e eliminar serviços e tarefas, obter, listar e eliminar execuções de tarefas. Pode invocar serviços e tarefas, e cancelar execuções de tarefas. Pode obter e definir políticas de IAM. Pode ver, aplicar e ignorar recomendações. Requer configuração adicional para implementar serviços. |
Programador do Cloud Run (roles/run.developer ) |
Pode criar, atualizar e eliminar serviços e tarefas, bem como obter, listar e eliminar execuções de tarefas. Pode obter, mas não definir políticas de IAM. Pode ver, aplicar e ignorar recomendações. |
Leitor do Cloud Run (roles/run.viewer ) |
Pode ver serviços, tarefas e execuções de tarefas. Pode obter políticas IAM. Pode ver recomendações. |
Cloud Run Invoker (roles/run.invoker ) |
Pode invocar serviços e tarefas, e cancelar execuções de tarefas. |
Controle o acesso num serviço ou trabalho individual
Pode controlar o acesso por serviço ou por tarefa através do IAM.
Adicione diretores
Pode adicionar diretores a um trabalho ou um serviço.
Adicione responsáveis a um serviço
Para adicionar responsáveis a um serviço:
IU da Play Console
Aceda à Google Cloud consola:
Clique na caixa de verificação junto ao serviço ao qual quer adicionar responsáveis. (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 membros, introduza uma ou mais identidades que precisam de acesso ao seu serviço.
No menu pendente Função, selecione uma ou mais funções. As funções que selecionar aparecem no painel com uma breve descrição das autorizações que concedem.
Clique em Guardar.
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 ver uma lista de valores aceitáveis para PRINCIPAL
, consulte
Identificadores principais.
Para uma lista de valores aceitáveis para ROLE
, consulte o artigo
Funções de IAM do Cloud Run.
Adicione diretores a uma tarefa
Para adicionar diretores a um trabalho:
IU da Play Console
Aceda à Google Cloud consola:
Clique na caixa de verificação à esquerda da tarefa à qual quer adicionar responsáveis. (Não clique na tarefa em si.)
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 responsáveis, introduza uma ou mais identidades que precisam de acesso à sua tarefa.
No menu Função, selecione uma ou mais funções. As funções que selecionar aparecem no painel com uma breve descrição das autorizações que concedem.
Clique em Guardar.
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 da tarefa, PRINCIPAL
é o tipo de principal (por exemplo, user:email@domain.com
) e ROLE
é a função.
Para ver uma lista de valores aceitáveis para PRINCIPAL
, consulte
a página de conceitos do IAM.
Para uma lista de valores aceitáveis para ROLE
, consulte o artigo
Funções de IAM do Cloud Run.
Remova responsáveis de uma função
Pode remover responsáveis de um serviço ou de um trabalho.
Remova responsáveis de uma função para um serviço
Para remover responsáveis de uma função para um serviço:
IU da Play Console
Aceda à Google Cloud consola:
Clique na caixa de verificação à esquerda do serviço do qual quer remover os diretores. (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.
Introduza o principal que quer remover no filtro da lista de funções, que apresenta todas as funções concedidas a esse principal.
Clique no ícone de lixo eliminar junto ao principal na função pretendida para remover essa função do principal.
Na caixa de diálogo de confirmação, tem a opção de remover esse principal de todas as funções no serviço. Clique em Remover para remover o 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
onde SERVICE_NAME
é o nome do serviço, PRINCIPAL
é o tipo principal (por exemplo, user:email@domain.com
) e ROLE
é a função.
Para ver uma lista de valores aceitáveis para PRINCIPAL
, consulte
a página de conceitos do IAM.
Para uma lista de valores aceitáveis para ROLE
, consulte o artigo
Funções de IAM do Cloud Run.
Remova responsáveis de uma função para uma tarefa
Para remover responsáveis de uma função para uma tarefa:
IU da Play Console
Aceda à Google Cloud consola:
Clique na caixa de verificação à esquerda da tarefa à qual quer adicionar responsáveis. (Não clique na tarefa em si.)
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.
Introduza o principal que quer remover no filtro da lista de funções, que apresenta todas as funções concedidas a esse principal.
Clique no ícone de lixo eliminar junto ao principal na função pretendida para remover essa função do principal.
Na caixa de diálogo de confirmação, tem a opção de remover esse principal de todas as funções no trabalho. Clique em Remover para remover o 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 da tarefa, PRINCIPAL
é o tipo de principal (por exemplo, user:email@domain.com
) e ROLE
é a função.
Para ver uma lista de valores aceitáveis para PRINCIPAL
, consulte
a página de conceitos do IAM.
Para uma lista de valores aceitáveis para ROLE
, consulte o artigo
Funções de IAM do Cloud Run.
Adição ou remoção em massa de diretores
Pode adicionar ou remover serviços e trabalhos em massa.
Adição e remoção em massa de responsáveis por serviços
Para adicionar ou remover em massa um serviço:
IU da Play Console
Aceda à Google Cloud consola:
Clique na caixa de verificação à esquerda do serviço ao qual quer adicionar ou do qual quer remover responsáveis. (Não clique no próprio serviço.)
Selecione o serviço ao qual quer adicionar ou do qual quer remover responsáveis.
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.
Se quiser adicionar diretores:
Clique em Adicionar principal.
No campo Novos membros, introduza uma ou mais identidades que precisam de acesso ao seu serviço.
No menu Função, selecione uma ou mais funções. As funções que selecionar aparecem no painel com uma breve descrição das autorizações que concedem.
Clique em Guardar.
Se quiser remover diretores:
Introduza o principal que quer remover no filtro da lista de funções, que apresenta todas as funções concedidas a esse principal.
Clique no ícone de lixo eliminar junto ao principal na função pretendida para remover essa função do principal.
Na caixa de diálogo de confirmação, tem a opção de remover esse principal de todas as funções no serviço. Clique em Remover para remover o principal do papel.
gcloud
Crie uma política 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
Para ver uma lista de valores aceitáveis para PRINCIPAL
, consulte
a página de conceitos do IAM.
Para uma lista de valores aceitáveis para ROLE
, consulte o artigo
Funções de IAM do Cloud Run.
Adição e remoção em massa de responsáveis por tarefas
Para adicionar ou remover em massa um trabalho:
IU da Play Console
Aceda à Google Cloud consola:
Clique na caixa de verificação à esquerda da tarefa à qual quer adicionar responsáveis. (Não clique na tarefa em si.)
Selecione a tarefa à qual quer adicionar ou da qual quer remover responsáveis.
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.
Se quiser adicionar diretores:
Clique em Adicionar principal.
No campo Novos membros, introduza uma ou mais identidades que precisam de acesso ao seu serviço.
No menu Função, selecione uma ou mais funções. As funções que selecionar aparecem no painel com uma breve descrição das autorizações que concedem.
Clique em Guardar.
Se quiser remover diretores:
Introduza o principal que quer remover no filtro da lista de funções, que apresenta todas as funções concedidas a esse principal.
Clique no ícone de caixote do lixo eliminar junto ao principal na função necessária para remover essa função do principal.
Na caixa de diálogo de confirmação, tem a opção de remover esse principal de todas as funções no trabalho. Clique em Remover para remover o principal do papel.
gcloud
Crie uma política 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
Para ver uma lista de valores aceitáveis para PRINCIPAL
, consulte
a página de conceitos do IAM.
Para uma lista de valores aceitáveis para ROLE
, consulte o artigo
Funções de IAM do Cloud Run.
Ver diretores
Pode ver os responsáveis pelos serviços e pelas tarefas.
Veja os responsáveis de um serviço
Para ver os membros de um serviço:
IU da Play Console
Aceda à Google Cloud consola:
Clique na caixa de verificação à esquerda do serviço para o qual quer ver os principais e as funções. (Não clique no próprio serviço.)
Selecione o serviço para o qual quer ver os principais e as funções.
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.
É apresentada a lista de funções e entidades, agrupadas por função concedida.
gcloud
Use o comando gcloud run services get-iam-policy
:
gcloud run services get-iam-policy SERVICE_NAME
Veja os princípios de um emprego
Para ver os diretores de um trabalho:
IU da Play Console
Aceda à Google Cloud consola:
Clique na caixa de verificação à esquerda da tarefa à qual quer adicionar responsáveis. (Não clique na tarefa em si.)
Selecione a tarefa para a qual quer ver os responsáveis e as funções.
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.
É apresentada a lista de funções e entidades, agrupadas por função concedida.
gcloud
Use o comando gcloud run jobs get-iam-policy
:
gcloud run jobs get-iam-policy JOB_NAME
Controlar o acesso a todos os serviços e tarefas num projeto
Se quiser conceder funções a responsáveis em todos os serviços e tarefas num projeto, pode usar o IAM ao nível do projeto.
IU da Play Console
Aceda à Google Cloud consola:
Encontre o principal ao qual quer conceder uma função ao nível do projeto.
Clique no lápis de edição no lado direito da linha do principal.
Clique em Adicionar outra função e escolha a função necessária.
Clique em Guardar.
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
é a função (por exemplo, roles/run.admin
).
Não é possível aplicar os tipos principais allUsers
e allAuthenticatedUsers
ao nível do projeto. Em alternativa, têm de ser adicionados a cada serviço individualmente.
Torne um serviço público
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.
Use condições do IAM num serviço
Usa condições da IAM para
definir e aplicar o controlo de acesso condicional baseado em atributos para recursos do Cloud Run. O Cloud Run suporta os atributos de condição (request.host
) e (request.path
) para conceder acesso condicional quando invoca 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
quando executar o seguinte comando:gcloud run services add-iam-policy-binding SERVICE_NAME \ --member=PRINCIPAL \ --role=ROLE \ --region=REGION \ --condition=[KEY=VALUE,...]
Substituir:
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 incluir na associação. A flag--condition
tem de incluir os pares de chave-valorexpression
etitle
.
Passos seguintes
Saiba como autenticar programadores, serviços e utilizadores em segurança nos serviços que acabou de proteger.