Controle de acesso com o IAM

Mantenha tudo organizado com as coleções Salve e categorize o conteúdo com base nas suas preferências.

Por padrão, somente proprietários e editores de projetos podem criar, atualizar, excluir ou invocar serviços, e somente proprietários de projetos e administradores do Cloud Run podem modificar as políticas de gerenciamento de identidade e acesso (IAM, na sigla em inglês), como tornar um serviço público. Saiba mais sobre os papéis do IAM do Cloud Run.

Para conceder a outros usuários ou grupos a capacidade de executar essas ações, use o IAM para conceder papéis a diferentes participantes.

Controlar o acesso em um serviço individual

Se você quiser controlar o acesso por serviço, será possível usar o IAM por serviço.

Tornar um serviço público

É 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:

  1. Acesse o Console do Google Cloud:

    Acessar o Console do Google Cloud

  2. Clique na caixa de seleção à esquerda do serviço que você quer tornar público. (Não clique no próprio serviço.)

  3. 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.

  4. Clique em Adicionar principal.

Na caixa de texto Novos principais, insira o valor allUsers.

  1. No menu suspenso Papel, selecione o papel Invocador do Cloud Run.

  2. Clique em Save.

  3. 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 selecionePermitir invocações não autenticadas na Autenticação para disponibilizar o serviço publicamente. A opção Exigir autenticação vai tornar o serviço particular.

gcloud

É possível tornar um serviço acessível publicamente adicionando o tipo de membro allUsers especial a um serviço e concedendo a ele o papel roles/run.invoker:

  gcloud run services add-iam-policy-binding [SERVICE_NAME] \
    --member="allUsers" \
    --role="roles/run.invoker"

Além disso, ao implantar o serviço com o comando gcloud run deploy, é possível especificar se o serviço será disponibilizado publicamente:

gcloud run deploy [SERVICE_NAME] ... --allow-unauthenticated

Terraform

Para criar um serviço do Cloud Run, adicione o estas informações ao seu arquivo main.tf atual:

resource "google_cloud_run_service" "default" {
  name     = "cloud-run-srv"
  location = "us-central1"

  template {
    spec {
      containers {
        image = "gcr.io/cloudrun/hello"
      }
    }
  }

  traffic {
    percent         = 100
    latest_revision = true
  }
}

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:

resource "google_cloud_run_service_iam_binding" "default" {
  location = google_cloud_run_service.default.location
  service  = google_cloud_run_service.default.name
  role     = "roles/run.invoker"
  members = [
    "allUsers"
  ]
}

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. O Google recomenda que você crie todos os projetos em uma pasta que não esteja sujeita a essa restrição e remova-a em projetos atuais restaurando a restrição padrão no projeto.

Adicionar principais

IU do Console

  1. Acesse o Console do Google Cloud:

    Acessar o Console do Google Cloud

  2. Clique na caixa de seleção à esquerda do serviço em que você quer adicionar principais. (Não clique no próprio serviço.)

  3. 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.

  4. Clique em Adicionar principal.

  5. Na caixa de texto Novos participantes, insira uma ou mais identidades que precisam de acesso ao seu serviço.

  6. 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.

  7. Clique em Save.

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.

Remover participantes de um papel

IU do Console

  1. Acesse o Console do Google Cloud:

    Acessar o Console do Google Cloud

  2. Clique na caixa de seleção à esquerda do serviço de que você quer remover principais. (Não clique no próprio serviço.)

  3. 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.

  4. Insira o participante que você quer remover no filtro da lista de papéis, que exibe todos os papéis concedidos a esse principal.

  5. Clique na lixeira para excluir ao lado do principal no papel desejado para remover esse papel do principal.

  6. 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.

Adição ou remoção de principais em massa

IU do Console

  1. Acesse o Console do Google Cloud:

    Acessar o Console do Google Cloud

  2. 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.)

  3. Selecione o serviço em que você quer adicionar ou remover participantes.

  4. 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:

  1. Clique em Adicionar principal.

  2. Na caixa de texto Novos participantes, insira uma ou mais identidades que precisam de acesso ao seu serviço.

  3. 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.

  4. Clique em Save.

Se você quiser remover os principais:

  1. Insira o participante que você quer remover no filtro da lista de papéis, que exibe todos os papéis concedidos a esse principal.

  2. Clique na lixeira para excluir ao lado do principal no papel desejado para remover esse papel do principal.

  3. 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.

Ver participantes

IU do Console

  1. Acesse o Console do Google Cloud:

    Acessar o Console do Google Cloud

  2. 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.)

  3. Selecione o serviço que você quer ver para participantes e papéis.

  4. 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.

  5. 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

Controlar o acesso em todos os serviços em um projeto

Se você quer conceder papéis aos participantes em todos os serviços em um projeto, use o IAM no nível do projeto.

IU do Console

  1. Acesse o Console do Google Cloud:

    Acessar o Console do Google Cloud

  2. Encontre o participante para quem você quer conceder um papel para todo o projeto.

  3. Clique no Lápis de edição no lado direito da linha do participante.

  4. Clique em Adicionar outro papel e escolha aquele que você quer.

  5. Clique em Save.

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.

Próximas etapas

Saiba como autenticar desenvolvedores, serviços e usuários com segurança para os serviços que você acabou de proteger.