Controle de acesso

Cloud Composer 1 | Cloud Composer 2

Esta página descreve as opções de controle de acesso disponíveis no Cloud Composer e explica como atribuir papéis.

Visão geral

Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.

Também é possível controlar permissões para a interface da Web do Airflow além de ativar ou desativar o acesso a ela. Para mais informações, consulte Controle de acesso baseado em papéis do Airflow.

Sobre o gerenciamento de identidade e acesso no Cloud Composer

O Cloud Composer usa o gerenciamento de identidade e acesso (IAM, na sigla em inglês) para o controle de acesso.

Para controlar o acesso a diferentes recursos do Cloud Composer, atribua papéis e permissões às contas de serviço do IAM e às contas de usuário no projeto do Google Cloud.

O Cloud Composer usa dois tipos de contas de serviço do IAM:

Sobre a conta do agente de serviço do Cloud Composer

No seu projeto, o serviço do Cloud Composer usa uma conta de serviço especial gerenciada pelo Google para gerenciar recursos relacionados ao Cloud Composer. Essa conta é chamada de Agente de serviço do Cloud Composer.

O agente de serviço do Cloud Composer é usado em todos os ambientes no projeto.

Sobre as contas de serviço dos ambientes do Cloud Composer

Ao criar um ambiente, você especifica uma conta de serviço. O cluster do ambiente usa essa conta de serviço para executar pods com diferentes componentes do ambiente, como workers e programadores do Airflow.

Por padrão, os ambientes do Cloud Composer são executados usando a conta de serviço padrão do Compute Engine. Essa conta de serviço gerenciada pelo Google tem mais permissões do que a necessária para executar ambientes do Cloud Composer, geralmente o papel básico de Editor.

Recomendamos que você configure uma conta de serviço gerenciada pelo usuário para ambientes do Cloud Composer. Atribua a ela um papel específico do Cloud Composer. Em seguida, especifique essa conta de serviço ao criar novos ambientes.

Sobre os papéis para usuários do Cloud Composer

Para acionar uma operação de ambiente, um usuário precisa ter permissões suficientes. Por exemplo, se você quiser criar um novo ambiente, será necessário ter a permissão composer.environments.create.

No Cloud Composer, as permissões individuais são agrupadas em papéis. É possível atribuir esses papéis aos membros do seu projeto.

Se a conta de serviço tiver o papel Editor do projeto, será possível executar todas as operações do ambiente. No entanto, esse papel tem permissões amplas. Para usuários que trabalham com ambientes, recomendamos usar papéis específicos do Cloud Composer. Dessa forma, é possível restringir o escopo das permissões e fornecer diferentes níveis de acesso aos membros do projeto. Por exemplo, um usuário pode ter permissões para criar, atualizar, fazer upgrade e excluir ambientes, enquanto outro usuário só pode ver ambientes e acessar a interface da Web do Airflow.

Atribuir papéis a uma conta de serviço gerenciada pelo usuário

Para uma conta de serviço gerenciada pelo usuário que executa ambientes do Cloud Composer:

  • Para uma configuração de IP público, atribua o papel de Worker do Composer (composer.worker).
  • Para uma configuração de IP particular:
    1. Atribua o papel Worker do Composer (composer.worker).
    2. Atribua o papel Usuário da conta de serviço (iam.serviceAccountUser).

Atribuir funções aos usuários

Dependendo do nível de acesso que você quer fornecer aos ambientes do Cloud Composer, conceda as seguintes permissões aos membros do projeto.

Gerenciar ambientes e buckets de ambiente

Para um usuário que pode visualizar, criar, atualizar, fazer upgrade e excluir ambientes, gerenciar objetos (como arquivos DAG) nos buckets do ambiente e acessar a interface da Web do Airflow:

  1. Atribua o papel Administrador de ambiente e de objetos do Storage (composer.environmentAndStorageObjectAdmin).
  2. Atribua o papel Usuário da conta de serviço (iam.serviceAccountUser).

Gerenciar ambientes

Para um usuário que pode ver, criar, atualizar, fazer upgrade e excluir ambientes e acessar a interface da Web do Airflow:

  1. Atribua o papel Administrador do Composer (composer.admin).
  2. Atribua o papel Usuário da conta de serviço (iam.serviceAccountUser).

Visualize ambientes e gerencie buckets de ambientes

Para que um usuário possa visualizar ambientes, acesse a interface da Web do Airflow e gerencie objetos nos buckets do ambiente (por exemplo, para fazer upload de novos arquivos DAG):

  1. Atribua o papel Leitor de ambiente e de objeto de armazenamento (composer.environmentAndStorageObjectViewer).
  2. Atribua o papel Administrador de objetos do Storage (storage.objectAdmin).

Ver ambientes e buckets de ambiente

Para um usuário que possa visualizar ambientes, acessar a interface da Web do Airflow e visualizar objetos em buckets do ambiente, atribua o papel Visualizador de ambiente e de objetos do Storage (composer.environmentAndStorageObjectViewer ).

Ver ambientes

Para um usuário que possa visualizar ambientes e acessar a interface da Web do Airflow, atribua o papel Usuário do Composer (composer.user).

Atribuir permissões para usar gcloud em ambientes

As permissões a seguir são necessárias para usar a ferramenta de linha de comando gcloud com os ambientes do Cloud Composer, por exemplo, para executar comandos da CLI do Airflow.

Se você quiser gerenciar ambientes ou buckets de ambiente com comandos gcloud composer, também precisará ter um papel com permissões suficientes para isso.

Para usar o gcloud com os ambientes do Cloud Composer, você precisa das seguintes permissões:

  • composer.environments.get
  • container.clusters.get
  • container.clusters.list
  • container.clusters.getCredentials

Papéis

Papel Nome Descrição Permissões Menor recurso
roles/composer.ServiceAgentV2Ext Extensão do agente de serviço da API Cloud Composer v2 A extensão do agente de serviço da API Cloud Composer v2 é um papel complementar necessário para gerenciar os ambientes da Composer v2.
  • iam.serviceAccounts.getIamPolicy
  • iam.serviceAccounts.setIamPolicy
roles/composer.admin Administrador do Composer Concede controle total dos recursos do Cloud Composer.
  • composer.*
  • serviceusage.quotas.get
  • serviceusage.services.get
  • serviceusage.services.list
Projeto
roles/composer.environmentAndStorageObjectAdmin Administrador de ambiente e de objetos do Storage Concede controle total dos recursos do Cloud Composer e dos objetos em todos os buckets do projeto.
  • composer.*
  • resourcemanager.projects.get
  • resourcemanager.projects.list
  • serviceusage.quotas.get
  • serviceusage.services.get
  • serviceusage.services.list
  • storage.objects.*
Projeto
roles/composer.environmentAndStorageObjectViewer Leitor de usuários do ambiente e de objetos do Storage Concede as permissões necessárias para listar e receber ambientes e operações do Cloud Composer. Concede acesso somente leitura a objetos em todos os buckets do projeto.
  • composer.environments.get
  • composer.environments.list
  • composer.imageversions.*
  • composer.operations.get
  • composer.operations.list
  • resourcemanager.projects.get
  • resourcemanager.projects.list
  • serviceusage.quotas.get
  • serviceusage.services.get
  • serviceusage.services.list
  • storage.objects.get
  • storage.objects.list
Projeto
roles/composer.sharedVpcAgent Agente de VPC compartilhada do Cloud Composer Papel a ser atribuído à conta de serviço do agente do Cloud Composer no projeto host da VPC compartilhada
  • compute.networks.access
  • compute.networks.addPeering
  • compute.networks.get
  • compute.networks.list
  • compute.networks.listPeeringRoutes
  • compute.networks.removePeering
  • compute.networks.updatePeering
  • compute.networks.use
  • compute.networks.useExternalIp
  • compute.projects.get
  • compute.regions.*
  • compute.subnetworks.get
  • compute.subnetworks.list
  • compute.subnetworks.use
  • compute.subnetworks.useExternalIp
  • compute.zones.*
roles/composer.user Usuário do Composer Concede as permissões necessárias para listar e receber ambientes e operações do Cloud Composer.
  • composer.environments.get
  • composer.environments.list
  • composer.imageversions.*
  • composer.operations.get
  • composer.operations.list
  • serviceusage.quotas.get
  • serviceusage.services.get
  • serviceusage.services.list
Projeto
roles/composer.worker Worker do Composer Concede as permissões necessárias para executar uma VM de ambiente do Cloud Composer. Destinado a contas de serviço.
  • artifactregistry.*
  • cloudbuild.builds.create
  • cloudbuild.builds.get
  • cloudbuild.builds.list
  • cloudbuild.builds.update
  • cloudbuild.workerpools.use
  • container.*
  • containeranalysis.occurrences.create
  • containeranalysis.occurrences.delete
  • containeranalysis.occurrences.get
  • containeranalysis.occurrences.list
  • containeranalysis.occurrences.update
  • logging.logEntries.create
  • monitoring.metricDescriptors.create
  • monitoring.metricDescriptors.get
  • monitoring.metricDescriptors.list
  • monitoring.monitoredResourceDescriptors.*
  • monitoring.timeSeries.*
  • pubsub.schemas.attach
  • pubsub.schemas.create
  • pubsub.schemas.delete
  • pubsub.schemas.get
  • pubsub.schemas.list
  • pubsub.schemas.validate
  • pubsub.snapshots.create
  • pubsub.snapshots.delete
  • pubsub.snapshots.get
  • pubsub.snapshots.list
  • pubsub.snapshots.seek
  • pubsub.snapshots.update
  • pubsub.subscriptions.consume
  • pubsub.subscriptions.create
  • pubsub.subscriptions.delete
  • pubsub.subscriptions.get
  • pubsub.subscriptions.list
  • pubsub.subscriptions.update
  • pubsub.topics.attachSubscription
  • pubsub.topics.create
  • pubsub.topics.delete
  • pubsub.topics.detachSubscription
  • pubsub.topics.get
  • pubsub.topics.list
  • pubsub.topics.publish
  • pubsub.topics.update
  • pubsub.topics.updateTag
  • remotebuildexecution.blobs.get
  • resourcemanager.projects.get
  • resourcemanager.projects.list
  • serviceusage.quotas.get
  • serviceusage.services.get
  • serviceusage.services.list
  • source.repos.get
  • source.repos.list
  • storage.buckets.create
  • storage.buckets.get
  • storage.buckets.list
  • storage.objects.*
Projeto

Papéis básicos

Papel Nome Descrição Permissões Menor recurso
roles/owner Proprietário Papel básico que permite o controle total dos recursos do Cloud Composer. composer.environments.create
composer.environments.delete
composer.environments.get
composer.environments.list
composer.Environments.update
composer.imageversions.list
composer.operations.delete
composer.operations.get
composer.operations.lista
iam.serviceAccounts.actAs
Projeto
roles/editor Editor Papel básico que permite o controle total dos recursos do Cloud Composer. composer.environments.create
composer.environments.delete
composer.environments.get
composer.environments.list
composer.Environments.update
composer.imageversions.list
composer.operations.delete
composer.operations.get
composer.operations.lista
iam.serviceAccounts.actAs
Projeto
roles/viewer Leitor Papel básico que permite ao usuário listar e acessar recursos do Cloud Composer. composer.environments.get
composer.environments.list
composer.imageversions.list
composer.operations.get
composer.operations.list
Projeto

Permissões

A tabela a seguir lista as permissões que o autor da chamada precisa para chamar cada método na API Cloud Composer ou para executar tarefas usando as ferramentas do Google Cloud que usam a API, como o Console do Google Cloud ou o SDK do Cloud .

Método Permissão
environments.create composer.environments.create e iam.serviceAccounts.actAs na conta de serviço do ambiente.
environments.delete composer.environments.delete
environments.get composer.environments.get
environments.list composer.environments.list
environments.update composer.environments.update
operations.delete composer.operations.delete
operations.get composer.operations.get
operations.list composer.operations.list

Como usar uma conta de serviço de outro projeto

Se você quiser que um ambiente do Cloud Composer em um projeto use uma conta de serviço gerenciada pelo usuário de um projeto diferente:

  1. Configure a conta de serviço gerenciada pelo usuário para funcionar em vários projetos.
  2. Como parte desse processo, você precisa conceder o papel Criador de token da conta de serviço às seguintes contas de serviço gerenciadas pelo Google na sua conta de serviço gerenciada pelo usuário:

    1. Conta de serviço padrão do Compute Engine (PROJECT_NUMBER-compute@developer.gserviceaccount.com)
    2. Agente de serviços do Cloud Composer (service-PROJECT_NUMBER@cloudcomposer-accounts.iam.gserviceaccount.com)

A seguir