Práticas recomendadas de segurança

Airflow gerenciado (Geração 3) | Airflow gerenciado (Geração 2) | Airflow gerenciado (Geração 1 legada)

Proteger o ambiente do Airflow gerenciado é fundamental para proteger dados sensíveis e evitar acesso não autorizado. Esta página descreve as principais práticas recomendadas, incluindo recomendações para segurança de rede, Identity and Access Management, criptografia e gerenciamento de configuração de ambiente.

Para mais informações sobre os recursos de segurança disponíveis no Airflow gerenciado, consulte a Visão geral da segurança.

Gerenciar a configuração do ambiente e os DAGs usando o controle de versão

Exemplo de um pipeline de CI/CD do Airflow
Figura 1. Exemplo de um pipeline de CI/CD do Airflow (clique para ampliar)
  • Crie seu ambiente usando o Terraform. Dessa forma, é possível armazenar a configuração do ambiente como código em um repositório. Assim, as mudanças na configuração do ambiente podem ser revisadas antes de serem aplicadas, e você pode reduzir o número de usuários que têm permissões para mudar a configuração atribuindo papéis com menos permissões.

  • No Identity and Access Management, desative o acesso direto aos DAGs e à configuração do ambiente para usuários comuns, conforme detalhado na seção Identity and Access Management.

  • Implante DAGs no seu ambiente com um pipeline de CI/CD, para que o código do DAG seja recuperado de um repositório. Dessa forma, os DAGs são revisados e aprovados antes que as mudanças sejam mescladas ao sistema de controle de versão. Durante o processo de revisão, os aprovadores garantem que os DAGs atendam aos critérios de segurança estabelecidos nas equipes. A etapa de revisão é fundamental para evitar a implantação de DAGs que possam realizar ações indesejadas.

    Alguns aspectos de segurança importantes a serem considerados ao revisar DAGs são:

    • Os DAGs que modificam o conteúdo do bucket do ambiente não podem modificar o código de outros DAGs nem acessar dados sensíveis, a menos que seja intencional.

    • Os DAGs não podem fazer consultas diretas ao banco de dados do Airflow, a menos que seja intencional. Um DAG em um ambiente do Airflow gerenciado tem acesso a todas as tabelas no banco de dados do Airflow. É possível recuperar informações de qualquer tabela, processá-las e armazená-las fora do banco de dados do Airflow.

Segurança de rede

  • Use ambientes de IP particular para que os componentes do Airflow que executam o cluster do ambiente não recebam endereços IP públicos e se comuniquem apenas pela rede interna do Google.

  • Implemente regras de firewall rigorosas para controlar o tráfego de e para o cluster do ambiente.

  • Configure a conectividade com as APIs e os serviços do Google pelo domínio private.googleapis.com para que o ambiente acesse as APIs e os serviços do Google por endereços IP que só podem ser roteados de dentro Google Cloud.

  • Revise as regras gerais de firewall no projeto e na rede VPC em que o ambiente está localizado. Dependendo da forma como você os configura, os componentes do Airflow do ambiente, como os workers do Airflow que executam os DAGs, podem acessar a Internet.

Identity and Access Management

  • Isole as permissões. Crie contas de serviço de ambiente e use contas de serviço diferentes para ambientes diferentes. Atribua a essas contas de serviço apenas as permissões estritamente necessárias para operar esses ambientes e realizar operações definidas nos DAGs do Airflow que elas executam.

  • Evite usar contas de serviço com permissões amplas. Embora seja possível criar um ambiente que use uma conta com permissões amplas, como as concedidas pelo papel básico de Editor, isso cria um risco de DAGs que usam permissões mais amplas do que o pretendido.

  • Não dependa das contas de serviço padrão dos serviços do Google usados pelo Airflow gerenciado. Muitas vezes, é impossível reduzir as permissões disponíveis para essas contas de serviço sem afetar outros serviços do Google no projeto.

  • Confira se você está familiarizado com as considerações de segurança para as contas de serviço do ambiente e entende como essa conta interage com as permissões e os papéis que você concede a usuários individuais no projeto.

  • Siga o princípio de privilégio mínimo. Conceda apenas as permissões mínimas necessárias aos usuários. Por exemplo, atribua papéis do IAM, para que apenas os administradores possam acessar o bucket do ambiente e o cluster do ambiente , e o acesso direto seja desativado para usuários comuns. Por exemplo, o papel de usuário do Composer permite acesso apenas à interface do DAG e à interface do Airflow.

  • Aplique o controle de acesso da interface do Airflow, que permite reduzir a visibilidade na interface do Airflow e na interface do DAG com base no papel do usuário do Airflow, e pode ser usado para atribuir permissões no nível do DAG para DAGs individuais.

  • Revise regularmente. Audite regularmente as permissões e os papéis do IAM para identificar e remover privilégios excessivos ou não utilizados.

  • Tenha cuidado ao transmitir e armazenar dados sensíveis:

    • Tenha cuidado ao transmitir dados sensíveis, como informações de identificação pessoal ou senhas. Quando necessário, use o Secret Manager para armazenar com segurança conexões e secrets do Airflow, chaves de API, senhas e certificados. Não armazene essas informações nos DAGs ou nas variáveis de ambiente.

    • Conceda permissões do IAM ao bucket do ambiente apenas para usuários confiáveis. Use permissões por objeto, se possível. As considerações de segurança para contas de serviço do ambiente listam várias maneiras pelas quais os usuários com acesso ao bucket do ambiente podem realizar ações em nome da conta de serviço do ambiente.

    • Confira se você está familiarizado com os dados armazenados nos snapshots e conceda permissões para criar snapshots de ambiente e acessar o bucket em que eles são armazenados apenas para usuários confiáveis.

    • Todas as interfaces externas do Airflow gerenciado usam criptografia por padrão. Ao se conectar a produtos e serviços externos, use a comunicação criptografada (SSL/TLS).

A seguir