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 saber mais 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 saber mais, consulte Controle de acesso baseado em papéis do Airflow.
Sobre o Identity and Access Management no Cloud Composer
O Cloud Composer usa o Identity and Access Management (IAM) para 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
Sobre a conta do agente de serviço do 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 com a conta de serviço padrão do Compute Engine. Essa conta de serviço gerenciada pelo Google tem mais permissões do que o necessário para executar ambientes do Cloud Composer, geralmente o papel básico de Editor.
É recomendável configurar 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 atribuí-los aos principais.
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, é recomendável 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 para principais diferentes. 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 à conta de agente de serviço do Cloud Composer
Quando você ativa a API Cloud Composer no projeto, a conta do agente de serviço do Composer é criada no projeto. O Cloud Composer usa essa conta para realizar operações no seu projeto do Google Cloud.
Por padrão, a conta do Agente de serviço do Composer tem o papel Agente de serviço da API Cloud Composer.
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 Composer Worker
(
composer.worker
). - Para uma configuração de IP particular:
- Atribua o papel Worker do Compose (
composer.worker
). - Atribua o papel Usuário da conta de serviço (
iam.serviceAccountUser
).
- Atribua o papel Worker do Compose (
Atribuir funções aos usuários
Dependendo do nível de acesso que você quer dar aos ambientes do Cloud Composer, conceda as seguintes permissões aos principais.
Gerenciar ambientes e buckets de ambiente
Para um usuário que possa visualizar, criar, atualizar, fazer upgrade e excluir ambientes, gerenciar objetos (como arquivos DAG) nos buckets de ambiente, acessar a interface da Web do Airflow, visualizar e acionar DAGs na IU do DAG:
- Atribua o papel Administrador de objetos do armazenamento e do ambiente
(
composer.environmentAndStorageObjectAdmin
). - Atribua o papel Usuário da conta de serviço (
iam.serviceAccountUser
).
Gerenciar ambientes
Para um usuário que possa visualizar, criar, atualizar, fazer upgrade e excluir ambientes, acesse a interface da Web do Airflow, visualize e acione DAGs na IU do DAG:
- Atribua o papel Administrador do Composer (
composer.admin
). - Atribua o papel Usuário da conta de serviço (
iam.serviceAccountUser
).
Ver ambientes e gerenciar buckets de ambientes
Para um usuário que pode visualizar ambientes, acessar a interface da Web do Airflow, visualizar e acionar DAGs na IU do DAG e gerenciar objetos nos buckets do ambiente (por exemplo, para fazer upload de novos arquivos DAG):
- Atribua o papel Usuário de ambiente e leitor de objeto de armazenamento (
composer.environmentAndStorageObjectViewer
). - Atribua o papel Administrador de objeto de armazenamento (
storage.objectAdmin
).
Ver ambientes e buckets de ambiente
Para um usuário que possa visualizar ambientes, acessar a interface da Web do
Airflow, visualizar e acionar DAGs na IU do DAG e
ver objetos em buckets do ambiente, atribua o papel
Leitor de ambiente e usuário de objeto do Storage
(composer.environmentAndStorageObjectViewer
).
Ver ambientes
Para um usuário que possa visualizar ambientes, visualizar e acionar DAGs
na IU do DAG 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
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
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.
Se você quiser executar os comandos da CLI do Airflow, precisará das seguintes permissões adicionais:
container.namespaces.list
container.pods.exec
container.pods.get
container.pods.list
Papéis
Papel | Permissões |
---|---|
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. |
|
Administrador do Composer
Concede controle total dos recursos do Cloud Composer. Recursos de nível mais baixo em que é possível conceder esse papel:
|
|
Administrador de objetos do armazenamento e do ambiente
Concede controle total dos recursos do Cloud Composer e dos objetos em todos os buckets do projeto. Recursos de nível mais baixo em que é possível conceder esse papel:
|
|
Usuário do ambiente e leitor de objetos do armazenamento
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. Recursos de nível mais baixo em que é possível conceder esse papel:
|
|
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 |
|
Usuário do Cloud Composer
Concede as permissões necessárias para listar e receber ambientes e operações do Cloud Composer. Recursos de nível mais baixo em que é possível conceder esse papel:
|
|
Worker do Composer
Concede as permissões necessárias para executar uma VM de ambiente do Cloud Composer. Destinado a contas de serviço. Recursos de nível mais baixo em que é possível conceder esse papel:
|
|
Papéis para agentes de serviço
roles/ |
Agente de serviço da API Cloud Composer |
O agente de serviço da API Cloud Composer pode gerenciar ambientes. |
|
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.list composer.dags.list composer.dags.get.act |
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.list composer.dags.list composer.dags.get.act |
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 composer.dags.list composer.dags.get |
Projeto |
Permissões para métodos de API
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 usando ferramentas do Google Cloud que usam a API, como o Console do Google Cloud ou a CLI do Google 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 |
Permissões para trabalhar com DAGs no Console do Google Cloud
As seguintes permissões abrangem o trabalho com DAGs no Console do Google Cloud, por meio da IU do DAG:
Permissão | Descrição |
---|---|
composer.dags.list
|
Veja a lista de DAGs na página de detalhes do ambiente. |
composer.dags.get
|
Veja informações detalhadas sobre DAGs, execuções de DAGs e tarefas na página de detalhes do DAG. |
composer.dags.execute |
É possível acionar DAGs na página de detalhes. |
É possível usar as permissões do RBAC do Airflow para controlar ainda mais as permissões das contas de usuário. A IU do DAG exige permissões do IAM e do RBAC do Airflow para permitir uma ação específica. Ao mesmo tempo, a IU do Airflow valida o acesso do usuário apenas em relação às permissões de RBAC do Airflow, ignorando as permissões do IAM.
Por exemplo, se um usuário tiver a permissão composer.dags.execute
e o papel Viewer
do RBAC do Airflow, ele não poderá acionar DAGs no Console do Google Cloud. Como exemplo oposto, se um usuário não tiver
a permissão composer.dags.list
, ele ainda poderá ver a lista de DAGs
na IU do Airflow.
Como usar uma conta de serviço de outro projeto
Se quiser que um ambiente do Cloud Composer em um projeto use uma conta de serviço gerenciada pelo usuário de um projeto diferente, configure a conta de serviço gerenciada pelo usuário para funcionar em todos os projetos.
Substitua SERVICE_PROJECT_NUMBER
pelo número do projeto em que o Cloud Composer está localizado.
Edite a política de permissão do projeto em que a conta de serviço gerenciada pelo usuário está localizada:
Conceda o papel Criador de token de conta de serviço à conta de serviço padrão do Compute Engine do projeto em que seu ambiente está localizado (
SERVICE_PROJECT_NUMBER-compute@developer.gserviceaccount.com
).Conceda o papel Criador de token de conta de serviço ao agente de serviço do Cloud Composer do projeto em que seu ambiente está localizado (
service-SERVICE_PROJECT_NUMBER@cloudcomposer-accounts.iam.gserviceaccount.com
).
Edite a política de permissão do projeto em que o ambiente está localizado. Conceda os papéis necessários à sua conta de serviço gerenciada pelo usuário, conforme descrito em Atribuir papéis a uma conta de serviço gerenciada pelo usuário. Por exemplo, em uma configuração de IP público, sua conta de serviço gerenciada pelo usuário exige o papel Worker do Composer.