Controle de acesso

Nesta página, você encontra as opções de controle de acesso disponíveis no Cloud Composer e explica como atribuir papéis.

Visão geral

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

Para uma descrição detalhada do IAM e dos recursos dele, consulte a documentação do IAM.

Para 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 conceder acesso a ela. Para mais informações, consulte Controle de acesso baseado em papéis do Airflow.

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

Ao criar um ambiente, você especifica uma conta de serviço. Essa conta de serviço executa nós do GKE no ambiente do Cloud Composer.

Por padrão, os ambientes do Cloud Composer são executados usando a conta de serviço padrão do Compute Engine. Esta conta de serviço gerenciada pelo Google tem permissões amplas, 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 uma conta 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. Você pode atribuir esses papéis aos membros do seu projeto.

Se você tiver um papel de editor do projeto, poderá executar todas as operações do ambiente. No entanto, esse papel tem permissões amplas. Para usuários que trabalham com ambientes, recomendamos o uso de papéis específicos do Cloud Composer. Assim, você pode restringir o escopo de permissões e fornecer níveis de acesso diferentes aos membros do seu projeto. Por exemplo, um usuário pode ter permissões para criar, atualizar, atualizar e excluir ambientes, enquanto outro usuário só pode visualizar 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 privado:
    1. Atribua o papel de 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 para ambientes do Cloud Composer, conceda as seguintes permissões aos membros do seu projeto.

Gerenciar ambientes e buckets de ambiente

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

  1. Atribua o papel de Administrador do ambiente e do objeto de armazenamento (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 de administrador do Composer (composer.admin).
  2. Atribua o papel Usuário da conta de serviço (iam.serviceAccountUser).

Visualizar ambientes e gerenciar buckets de ambiente

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

  1. Atribua os papéis de visualizador de usuários do ambiente e de objeto do Storage (composer.environmentAndStorageObjectViewer).
  2. Atribua o papel Administrador de objetos do Storage (storage.objectAdmin).

Visualizar ambientes e buckets de ambiente

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

Visualizar ambientes

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

Atribuir permissões para usar gcloud com ambientes

As permissões a seguir são necessárias para usar a ferramenta de linha de comando gcloud com 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 fazer isso.

Para usar gcloud com 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.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.*
  • 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.operations.list
composer.operations.get
composer.operations.delete
composer.environments.list
composer.environments.get
composer.environments.delete
composer.environments.update
composer.environments.create
iam.serviceAccounts.actAs
Projeto
roles/editor Editor Papel básico que permite o controle total dos recursos do Cloud Composer. composer.operations.list
composer.operations.get
composer.operations.delete
composer.environments.list
composer.environments.get
composer.environments.delete
composer.environments.update
composer.environments.create
iam.serviceAccounts.actAs
Projeto
roles/reader Leitor Papel básico que permite ao usuário listar e acessar recursos do Cloud Composer. composer.operations.list
composer.operations.get
composer.environments.list
composer.environments.get
Projeto

Permissões

A tabela a seguir lista as permissões que o autor da chamada precisa ter para chamar cada método na API Cloud Composer ou para executar tarefas por meio das 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

A seguir