Cloud Composer 3 | Cloud Composer 2 | Cloud Composer 1
Esta página descreve diferentes mecanismos de controlo de acesso para a IU do Airflow e a IU do DAG. Pode usar estes mecanismos, além do controlo de acesso fornecido pelo IAM, para separar os utilizadores na IU do Airflow e na IU do DAG do seu ambiente.
Vista geral do controlo de acesso à IU do Airflow no Cloud Composer
O acesso à IU do Airflow e à IU do DAG, bem como a visibilidade dos dados e das operações nessas IUs, são controlados a dois níveis no Cloud Composer:
O acesso à IU do Airflow e à IU do DAG no Cloud Composer é controlado pela IAM.
Se uma conta não tiver uma função que possa ver os ambientes do Cloud Composer no seu projeto, a IU do Airflow e a IU do DAG não estão disponíveis.
O IAM não oferece qualquer controlo de autorizações detalhado adicional na IU do Airflow nem na IU do DAG.
O modelo de controlo de acesso do Apache Airflow permite reduzir a visibilidade na IU do Airflow e na IU do DAG com base na função do utilizador.
O controlo de acesso do Apache Airflow é uma funcionalidade do Airflow, com o seu próprio modelo de utilizadores, funções e autorizações, que é diferente do IAM.
O controlo de acesso do Apache Airflow usa autorizações baseadas em recursos. Todos os utilizadores do Airflow com uma função específica do Airflow recebem as autorizações desta função. Por exemplo, os utilizadores do Airflow que tenham uma função com a autorização can delete on Connections
podem eliminar associações na página Associações na IU do Airflow.
Também pode atribuir autorizações ao nível do DAG para DAGs individuais. Por exemplo, para que apenas os utilizadores com uma função específica do Airflow possam ver um determinado DAG na IU do Airflow. No Cloud Composer, pode atribuir automaticamente autorizações ao nível do DAG com base na subpasta onde o ficheiro DAG está localizado no contentor do ambiente.
Antes de começar
A IU do Airflow com controlo de acesso está disponível para as versões do Cloud Composer 1.13.4 ou posteriores e as versões do Airflow 1.10.10 e posteriores. O ambiente também tem de executar o Python 3.
O registo de funções por pasta está disponível no Cloud Composer 1.18.12 e versões posteriores no Airflow 2, e no Cloud Composer 1.13.4 e versões posteriores no Airflow 1.
Ative o controlo de acesso da IU do Airflow
Airflow 2
A IU do Airflow com controlo de acesso está sempre ativada no Airflow 2.
Fluxo de ar 1
Para ativar a IU do Airflow com controlo de acesso, substitua a seguinte opção de configuração do Airflow:
Secção | Chave | Valor |
---|---|---|
webserver |
rbac |
True |
Pode fazê-lo para um ambiente existente ou quando cria um novo ambiente.
Com esta configuração, o seu ambiente executa a IU do Airflow com controlo de acesso em vez da IU do Airflow clássica.
Faça a gestão das funções do Airflow e das definições de controlo de acesso
Os utilizadores com a função de administrador (ou equivalente) podem ver e modificar as definições de controlo de acesso na IU do Airflow.
Na IU do Airflow, pode configurar as definições de controlo de acesso no menu Segurança. Para mais informações sobre o modelo de controlo de acesso do Airflow, as autorizações disponíveis e as funções predefinidas, consulte a documentação de controlo de acesso da IU do Airflow.
O Airflow 1 trata a função de utilizador como um modelo para todas as funções personalizadas. O Airflow copia continuamente as autorizações da função de utilizador para todas as funções personalizadas, exceto as autorizações para all_dags
.
O Airflow mantém a sua própria lista de utilizadores. Os utilizadores com a função de administrador (ou equivalente) podem ver a lista de utilizadores que abriram a IU do Airflow de um ambiente e que foram registados no Airflow. Esta lista também inclui utilizadores pré-registados manualmente por um administrador, conforme descrito na secção seguinte.
Registe utilizadores na IU do Airflow
Os novos utilizadores são registados automaticamente quando abrem a IU do Airflow de um ambiente do Cloud Composer pela primeira vez.
No registo, os utilizadores recebem a função especificada na
[webserver]rbac_user_registration_role
opção de configuração do Airflow. Pode substituir esta opção de configuração do Airflow por um valor diferente para controlar a função dos utilizadores recém-registados.
Se não for especificado, a função de registo predefinida é Op
em ambientes com o Airflow 2.
Em ambientes com o Airflow 1.10.*, a função de registo predefinida é Admin
.
Recomendamos os seguintes passos para criar uma configuração de função básica para a IU do Airflow:
Airflow 2
Os administradores do ambiente abrem a IU do Airflow para o ambiente recém-criado.
Conceda a função de
Admin
às contas de administrador. A função predefinida para novas contas em ambientes com o Airflow 2 éOp
. Para atribuir a funçãoAdmin
, execute o seguinte comando da CLI do Airflow com a CLI gcloud:gcloud composer environments run ENVIRONMENT_NAME \ --location LOCATION \ users add-role -- -e USER_EMAIL -r Admin
Substituir:
ENVIRONMENT_NAME
com o nome do ambiente.LOCATION
com a região onde o ambiente está localizado.USER_EMAIL
com o email de uma conta de utilizador.
Os administradores podem agora configurar o controlo de acesso para novos utilizadores, incluindo a concessão da função
Admin
a outros utilizadores.
Fluxo de ar 1
Os administradores do ambiente abrem a IU do Airflow para o ambiente criado recentemente, onde são registados automaticamente com a função
Admin
.Substitua a seguinte opção de configuração do Airflow pela função necessária para novos utilizadores. Por exemplo, para
User
.Secção Chave Valor webserver
rbac_user_registration_role
User
ou outra função que não seja de administradorOs administradores podem agora configurar o controlo de acesso da IU do Airflow para novos utilizadores, incluindo conceder a função
Admin
a outros utilizadores.
Pré-registe utilizadores
Os utilizadores são registados automaticamente com IDs numéricos de contas de utilizador Google (não endereços de email) como nomes de utilizador. Também pode pré-registar manualmente um utilizador e atribuir-lhe uma função adicionando um registo de utilizador com o campo do nome de utilizador definido para o endereço de email principal do utilizador. Quando um utilizador com um endereço de email correspondente a um registo de utilizador pré-registado inicia sessão na IU do Airflow pela primeira vez, o respetivo nome de utilizador é substituído pelo ID do utilizador atualmente (no momento do primeiro início de sessão) identificado pelo respetivo endereço de email. A relação entre as identidades Google (endereços de email) e as contas de utilizador (IDs de utilizador) não é fixa. Não é possível pré-registar grupos Google.
Para fazer o pré-registo de utilizadores, pode usar a IU do Airflow ou executar um comando da CLI do Airflow através da CLI do Google Cloud.
Para pré-registar um utilizador com uma função personalizada através da Google Cloud CLI, execute o seguinte comando da CLI do Airflow:
gcloud composer environments run ENVIRONMENT_NAME \
--location LOCATION \
users create -- \
-r ROLE \
-e USER_EMAIL \
-u USER_EMAIL \
-f FIRST_NAME \
-l LAST_NAME \
--use-random-password # The password value is required, but is not used
Substitua o seguinte:
ENVIRONMENT_NAME
: o nome do ambienteLOCATION
: a região onde o ambiente está localizadoROLE
: uma função do Airflow para o utilizador, por exemplo,Op
USER_EMAIL
: o endereço de email do utilizadorFIRST_NAME
eLAST_NAME
: nome próprio e apelido do utilizador
Exemplo:
gcloud composer environments run example-environment \
--location us-central1 \
users create -- \
-r Op \
-e "example-user@example.com" \
-u "example-user@example.com" \
-f "Name" \
-l "Surname" \
--use-random-password
Remover utilizadores
A eliminação de um utilizador do Airflow não revoga o acesso desse utilizador, porque este é registado automaticamente novamente na próxima vez que aceder à IU do Airflow. Para revogar o acesso a toda a IU do Airflow, remova a autorização da respetiva política de autorização para o seu projeto.composer.environments.get
Também pode alterar a função do utilizador para Público, o que mantém o registo do utilizador, mas remove todas as autorizações para a IU do Airflow.
Configure automaticamente as autorizações ao nível do DAG
A funcionalidade de registo de funções por pasta cria automaticamente uma função do Airflow personalizada para cada subpasta diretamente na pasta /dags
e concede a esta função acesso ao nível do DAG a todos os DAGs cujo ficheiro de origem esteja armazenado nessa respetiva subpasta. Isto simplifica a gestão das funções personalizadas do Airflow e o respetivo acesso aos DAGs.
Como funciona o registo de funções por pasta
O registo de funções por pasta é uma forma automática de configurar funções e as respetivas autorizações ao nível do DAG. Como tal, pode causar conflitos com outros mecanismos do Airflow que concedem autorizações ao nível do DAG:
- Atribuir manualmente autorizações de DAG a funções.
- Atribuir DAGs a funções através da propriedade
access_control
num DAG.
Para evitar tais conflitos, a ativação do registo de funções por pasta também altera o comportamento destes mecanismos.
No Airflow 1, a possibilidade de usar estes mecanismos está desativada quando o registo de funções por pasta está ativado. A gestão de autorizações ao nível do DAG só é feita através do registo de funções por pasta.
No Airflow 2:
- Pode conceder acesso a funções do DAG através da propriedade
access_control
definida no código fonte do DAG. - A concessão manual de autorizações de DAG (através da IU do Airflow ou da CLI gcloud) pode causar conflitos. Por exemplo, se conceder manualmente autorizações ao nível do DAG a uma função por pasta, estas autorizações podem ser removidas ou substituídas quando o processador de DAG sincroniza um DAG. Recomendamos que não conceda autorizações de DAG manualmente.
- As funções têm uma união de autorizações de acesso DAG registadas através do registo de funções por pasta e definidas na propriedade
access_control
do DAG.
Os DAGs localizados diretamente na pasta /dags
de nível superior não são atribuídos automaticamente a nenhuma função por pasta. Não são acessíveis com nenhuma função por pasta. Outras funções, como administrador, operador, utilizador ou qualquer função personalizada à qual sejam concedidas autorizações, podem aceder a estes recursos através da IU do Airflow e da IU DAG.
Se carregar DAGs para subpastas com nomes que correspondam às funções incorporadas do Airflow e às funções criadas pelo Cloud Composer, as autorizações para DAGs nestas subpastas continuam a ser atribuídas a estas funções. Por exemplo, carregar um DAG para a pasta /dags/Admin
concede autorizações a este DAG para a função de administrador. As funções integradas do Airflow incluem administrador, operador, utilizador, leitor e público.
O Cloud Composer cria NoDags e UserNoDags depois de a funcionalidade de registo de funções por pasta ser ativada.
O Airflow executa o registo de funções por pasta quando processa DAGs no agendador do Airflow. Se existirem mais de cem DAGs no seu ambiente, pode observar um aumento no tempo de análise dos DAGs.
Se for este o caso, recomendamos que aumente o parâmetro [scheduler]max_threads
para um ambiente do Airflow 1 ou [scheduler]parsing_processes
para o Airflow 2.
Atribua automaticamente DAGs a funções por pasta
Para atribuir automaticamente DAGs a funções por pasta:
Substitua a seguinte opção de configuração do Airflow:
Secção Chave Valor webserver
rbac_autoregister_per_folder_roles
True
Altere a função de registo de novos utilizadores para uma função sem acesso a nenhum DAG. Desta forma, os novos utilizadores não têm acesso a nenhum DAG até que um administrador atribua uma função com autorizações para DAGs específicos às respetivas contas.
UserNoDags e NoDags são funções criadas apenas pelo Cloud Composer quando a funcionalidade de registo de funções por pasta está ativada. São equivalentes à função de utilizador, mas sem acesso a nenhum DAG. A função UserNoDags é criada no Airflow 2 e a função NoDags é criada no Airflow 1.
No Airflow 2, substitua a seguinte opção de configuração do Airflow:
Secção Chave Valor webserver
rbac_user_registration_role
UserNoDags
No Airflow 1, substitua a seguinte opção de configuração do Airflow:
Secção Chave Valor webserver
rbac_user_registration_role
NoDags
Certifique-se de que os utilizadores estão registados no Airflow.
Atribua funções aos utilizadores através de uma das seguintes abordagens:
- Permita que o Airflow crie automaticamente funções com base nas subpastas dos DAGs e, em seguida, atribua utilizadores a estas funções.
- Pré-crie funções vazias para as subpastas dos DAGs, com nomes de funções correspondentes ao nome de uma subpasta e, em seguida, atribua utilizadores a estas funções. Por exemplo, para a pasta
/dags/CustomFolder
, crie uma função denominadaCustomFolder
.
Carregue DAGs para subpastas com nomes que correspondam às funções atribuídas aos utilizadores. Estas subpastas têm de estar localizadas na pasta
/dags
no contentor do ambiente. O Airflow adiciona autorizações aos DAGs numa subpasta, para que apenas os utilizadores com a função correspondente possam aceder aos mesmos através da IU do Airflow e da IU do DAG.
Configure manualmente as autorizações ao nível do DAG
Pode configurar autorizações ao nível do DAG para funções personalizadas de modo a especificar que DAGs são visíveis para grupos de utilizadores específicos.
Para configurar autorizações ao nível do DAG na IU do Airflow:
- O administrador cria funções vazias para agrupar DAGs.
- O administrador atribui os utilizadores às funções adequadas.
- O administrador ou os utilizadores atribuem DAGs a funções.
- Na IU do Airflow, os utilizadores só podem ver os DAGs atribuídos ao respetivo grupo.
Os DAGs podem ser atribuídos a funções através das propriedades dos DAGs ou da IU do Airflow.
Atribuir DAGs a funções na IU do Airflow
Um administrador pode atribuir as autorizações necessárias ao nível do DAG às funções adequadas na IU do Airflow.
Esta operação não é suportada na IU do DAG.
Atribuir DAGs a funções nas propriedades de DAGs
Pode definir o
access_control
parâmetro DAG num DAG, especificando
as funções de agrupamento de DAG às quais o DAG está atribuído.
Airflow 2
dag = DAG(
access_control={
'DagGroup': {'can_edit', 'can_read'},
},
...
)
Fluxo de ar 1
dag = DAG(
access_control={
'DagGroup': {'can_dag_edit', 'can_dag_read'},
},
...
)
Mapeie os registos de auditoria na IU do Airflow para os utilizadores
Os registos de auditoria na IU do Airflow são mapeados para IDs numéricos de contas de utilizadores Google. Por exemplo, se um utilizador pausar um DAG, é adicionada uma entrada aos registos.
Airflow 2
No Airflow 2, pode ver os registos de auditoria na página Procurar > Registos de auditoria na IU do Airflow.

Fluxo de ar 1
No Airflow 1, pode ver os registos de auditoria na página Procurar > Registos.

Uma entrada típica apresenta um ID numérico no campo Proprietário:
accounts.google.com:NUMERIC_ID
. Pode mapear IDs numéricos para emails de utilizadores na página
Segurança > Listar utilizadores. Esta página está disponível para utilizadores com a função Admin
.
Tenha em atenção que a relação entre as identidades Google (endereços de email) e as contas de utilizador (IDs de utilizador) não é fixa.
O que se segue?
- Substitua as opções de configuração do Airflow
- Vista geral da segurança
- Controlo de acesso do Cloud Composer