Airflow gerenciado (Geração 3) | Airflow gerenciado (Geração 2) | Airflow gerenciado (Geração 1 legada)
O VPC Service Controls permite que as organizações definam um perímetro em torno dos Google Cloud recursos para reduzir os riscos de exfiltração de dados.
Os ambientes do Airflow gerenciado podem ser implantados dentro de um perímetro de serviço. Ao configurar seu ambiente com o VPC Service Controls, é possível manter os dados sensíveis em sigilo enquanto aproveita os recursos de orquestração de fluxo de trabalho totalmente gerenciados do Airflow Gerenciado.
A compatibilidade do VPC Service Controls com o Airflow gerenciado significa que:
- O Airflow gerenciado agora pode ser selecionado como um serviço seguro dentro de um perímetro do VPC Service Controls.
- Todos os recursos subjacentes usados pelo Airflow gerenciado estão configurados para serem compatíveis com a arquitetura do VPC Service Controls e seguem as regras dela.
A implantação dos ambientes do Airflow gerenciado com o VPC Service Controls oferece:
- Risco reduzido de exfiltração de dados.
- Proteção contra exposição de dados devido a controles de acesso configurados incorretamente.
- Risco reduzido de usuários mal-intencionados copiando dados para recursos não autorizados Google Cloud ou invasores externos acessando Google Cloud recursos da Internet.
Sobre o VPC Service Controls no Airflow gerenciado
- Todas as restrições de rede do VPC Service Controls também se aplicam aos ambientes do Airflow gerenciado. Para mais detalhes, consulte a documentação do VPC Service Controls.
A exibição de um modelo renderizado com funções na UI da Web com a serialização de DAGs ativada é compatível com ambientes que executam o Airflow gerenciado versão 1.12.0 ou posterior e o Airflow versão 1.10.9 ou posterior.
A definição da flag
async_dagbag_loadercomoTruenão é compatível enquanto a serialização do DAG está ativada.A ativação da serialização de DAGs desativa todos os plug-ins do servidor da Web do Airflow, porque eles podem prejudicar a segurança da rede VPC em que o Airflow gerenciado está implantado. Isso não afeta o comportamento dos plug-ins do programador ou do worker, incluindo os operadores e sensores do Airflow.
Se um ambiente do Airflow gerenciado estiver protegido por um perímetro, o acesso a repositórios PyPI públicos será restrito. Consulte Instalar pacotes PyPI no VPC Service Controls para mais informações.
Se o ambiente usar a rede de IP particular, todo o tráfego interno será roteado para a rede VPC, exceto o tráfego para APIs, serviços e domínios do Google que estão disponíveis para ambientes de IP particular pelo Acesso privado do Google.
Dependendo de como você configura a rede VPC, um ambiente de IP particular pode acessar a Internet pela rede VPC.
No modo VPC Service Controls, o Airflow gerenciado executa duas instâncias do servidor da Web do Airflow. A carga do Identity-Aware Proxy equilibra o tráfego do usuário entre essas instâncias. Os servidores da Web do Airflow são executados no modo "somente leitura", o que significa:
A serialização do DAG está ativada. Como resultado, o servidor da Web do Airflow não analisa arquivos DAG.
Como os plug-ins não são sincronizados com o servidor da Web, não é possível modificar ou estender os recursos do servidor com plug-ins.
O servidor da Web do Airflow usa uma imagem de contêiner pré-criada pelo serviço do Airflow gerenciado. Se você instalar imagens PyPI no ambiente, elas não serão instaladas na imagem do contêiner do servidor da Web.
Perímetros para ambientes com VPC compartilhada e CMEK
Se o ambiente estiver protegido por um perímetro de serviço e usar VPC compartilhada, chaves de criptografia gerenciadas pelo cliente (CMEK, na sigla em inglês), ou ambos, verifique se os projetos a seguir estão no mesmo perímetro de serviço:
- Projeto de serviço: contém o ambiente do Airflow gerenciado.
- Projeto host: contém a rede VPC compartilhada.
- Projeto que hospeda as chaves do Cloud Key Management Service.
Criar ambientes em um perímetro
As etapas a seguir são necessárias para implantar o Airflow gerenciado em um perímetro:
Ative a API Access Context Manager e a API Cloud Composer no projeto. Consulte Como ativar APIs para referência.
Verifique se o perímetro de serviço tem os seguintes serviços acessíveis por VPC. Caso contrário, a criação do ambiente poderá falhar:
- API Cloud Composer (composer.googleapis.com)
- API Compute Engine (compute.googleapis.com)
- API Kubernetes Engine (container.googleapis.com)
- API Container Registry (containerregistry.googleapis.com)
- API Artifact Registry (artifactregistry.googleapis.com)
- API Cloud Storage (storage.googleapis.com)
- API Cloud SQL Admin (sqladmin.googleapis.com)
- API Cloud Logging (logging.googleapis.com)
- API Cloud Monitoring (monitoring.googleapis.com)
- API Cloud Pub/Sub (pubsub.googleapis.com)
- API Cloud Resource Manager (cloudresourcemanager.googleapis.com)
- API Service Directory (servicedirectory.googleapis.com)
- API Cloud Key Management Service (cloudkms.googleapis.com), se você estiver usando chaves do Cloud KMS ou CMEK.
- API Secret Manager (secretmanager.googleapis.com), se você estiver usando o Secret Manager como um back-end secreto.
Crie um novo ambiente do Airflow gerenciado com IP particular ativado. Observe que esta configuração precisa ser definida durante a criação do ambiente.
Use a versão composer-1.10.4 ou posterior.
Verifique se a serialização de DAGs está ativada. Se o ambiente usar o Airflow gerenciado versão 1.15.0 e posterior, a serialização será ativada por padrão.
Ao criar seu ambiente, lembre-se de configurar o acesso ao servidor da Web do Airflow. Para melhorar a proteção, permita o acesso ao servidor da Web somente a partir de intervalos de IP específicos. Para mais detalhes, consulte Configurar o acesso à rede do servidor da Web.
Adicionar um ambiente atual ao perímetro
- Você já criou ou configurou o perímetro conforme descrito na seção anterior.
- O ambiente usa o IP particular.
- A serialização de DAGs está ativada nos seus ambientes.
Instalar pacotes PyPI no VPC Service Controls
Na configuração padrão do VPC Service Controls, o Airflow Gerenciado é compatível apenas com a instalação de pacotes PyPI de repositórios particulares acessíveis do espaço de endereço IP interno da rede VPC.
Instalar de um repositório particular
A configuração recomendada é definir um repositório PyPI particular:
Preencha-o com pacotes verificados usados pela organização e depois configure o Airflow gerenciado para instalar dependências do Python a partir de um repositório particular.
Conceda permissões adicionais para instalar pacotes de repositórios particulares repositórios à conta de serviço do ambiente, conforme descrito em Controle de acesso.
Instalar de um repositório público
Repositório remoto
Essa é a abordagem recomendada para instalar pacotes de um repositório público.
Para instalar pacotes PyPI de repositórios fora do espaço IP particular, siga estas etapas:
- Crie um repositório remoto do Artifact Registry.
- Conceda a esse repositório acesso a fontes upstream.
- Configure o Airflow para instalar pacotes de um repositório do Artifact Registry.
- Conceda permissões adicionais para instalar pacotes de repositórios do Artifact Registry à conta de serviço do ambiente, conforme descrito em Controle de acesso.
Conexões externas
Para instalar pacotes PyPI de repositórios fora do espaço IP particular, siga estas etapas:
Configure Cloud NAT para permitir que o Airflow gerenciado em execução no espaço IP particular se conecte a repositórios PyPI externos.
Configure as regras de firewall para permitir conexões de saída do cluster do Composer para o repositório.
Configurar a conectividade com APIs e serviços do Google
Em uma configuração do VPC Service Controls, para controlar o tráfego de rede, configure o acesso a APIs e serviços do Google pelo restricted.googleapis.com. Esse domínio bloqueia o acesso a APIs e serviços do Google que não são compatíveis com o VPC Service Controls.
Os ambientes do Airflow gerenciado usam os seguintes domínios:
*.googleapis.comé usado para acessar outros serviços do Google.*.pkg.devé usado para receber imagens de ambiente, como ao criar ou atualizar um ambiente.*.gcr.ioO GKE exige conectividade com o domínio do Container Registry, independentemente da versão do Airflow gerenciado.
Configure a conectividade com o endpoint restricted.googleapis.com:
| Domínio | Nome do DNS | Registro CNAME | Registro A |
|---|---|---|---|
*.googleapis.com
|
googleapis.com. |
Nome do DNS: *.googleapis.com.Tipo de registro de recurso: CNAMENome canônico: googleapis.com. |
Tipo de registro de recurso: AEndereços IPv4: 199.36.153.4, 199.36.153.5, 199.36.153.6, 199.36.153.7
|
*.pkg.dev
|
pkg.dev. |
Nome do DNS: *.pkg.dev.Tipo de registro de recurso: CNAMENome canônico: pkg.dev. |
Tipo de registro de recurso: AEndereços IPv4: 199.36.153.4, 199.36.153.5, 199.36.153.6, 199.36.153.7
|
*.gcr.io
|
gcr.io. |
Nome do DNS: *.gcr.io.Tipo de registro de recurso: CNAMENome canônico: gcr.io. |
Tipo de registro de recurso: AEndereços IPv4: 199.36.153.4, 199.36.153.5, 199.36.153.6, 199.36.153.7
|
Para criar uma regra de DNS:
Crie uma nova zona de DNS e use Nome do DNS como o nome de DNS dessa zona.
Exemplo:
pkg.dev.Adicione um conjunto de registros para Registro CNAME.
Exemplo:
- Nome do DNS:
*.pkg.dev. - Tipo de registro de recurso:
CNAME - Nome canônico:
pkg.dev.
- Nome do DNS:
Adicione um conjunto de registros com para Registro A:
Exemplo:
- Tipo de registro de recurso:
A - Endereços IPv4:
199.36.153.4,199.36.153.5,199.36.153.6,199.36.153.7
- Tipo de registro de recurso:
Para mais informações, consulte Como configurar a conectividade privada com as APIs e os serviços do Google.
Configurar regras de firewall
Se o projeto tiver regras de firewall não padrão, como regras que substituem regras de firewall implícitas, ou modificam regras pré-preenchidas na rede padrão, verifique se as seguintes regras de firewall estão configuradas.
Por exemplo, o Airflow gerenciado poderá falhar ao criar um ambiente se você tiver uma regra de firewall que negue todo o tráfego de saída. Para evitar problemas, defina regras allow seletivas que sigam a lista e tenham maior prioridade do que a regra deny global.
Configure sua rede VPC para permitir o tráfego do ambiente:
- Consulte Como usar regras de firewall para aprender a verificar, adicionar e atualizar regras para sua rede VPC.
- Use ferramenta de conectividade para validar a conectividade entre intervalos de IP.
- É possível usar tags de rede para limitar ainda mais o acesso. Você pode definir essas tags ao criar um ambiente.
| Descrição | Direção | Ação | Origem ou destino | Protocolos | Portas |
|---|---|---|---|---|---|
| DNS Configure conforme descrito em Suporte do VPC Service Controls para o Cloud DNS |
- | - | - | - | - |
| APIs e serviços do Google | Saída | Permitir | Endereços IPv4 de restricted.googleapis.com que você usa para APIs e serviços do Google. |
TCP | 443 |
| Nós do cluster do ambiente | Saída | Permitir | Intervalo de endereços IP primário da sub-rede do ambiente | TCP, UDP | todas |
| Pods de cluster do ambiente | Saída | Permitir | Intervalo de endereços IP secundário para pods na sub-rede do ambiente | TCP, UDP | todas |
| Plano de controle do cluster do ambiente | Saída | Permitir | Intervalo de IP do plano de controle do GKE | TCP, UDP | todas |
| Servidor da Web | Saída | Permitir | Intervalo de IP da rede do servidor da Web | TCP | 3306, 3307 |
Para acessar os intervalos de IP do cluster do ambiente:
Os intervalos de endereços de pod, serviço e plano de controle estão disponíveis na página Clusters do cluster do ambiente:
No Google Cloud console, acesse a página Ambientes.
Clique no nome da sua lista de ambientes. A página Detalhes do ambiente será aberta.
Acesse a guia Configuração do ambiente.
Siga o link ver detalhes do cluster.
É possível conferir o intervalo de IP do servidor da Web do ambiente na guia Configuração do ambiente.
É possível conferir o ID da rede do ambiente na guia Configuração do ambiente. Para acessar os intervalos de IP de uma sub-rede, acesse a página Redes VPC e clique no nome da rede para conferir os detalhes:
Registros do VPC Service Controls
Ao solucionar problemas de criação de ambiente, é possível analisar os registros de auditoria gerados pelo VPC Service Controls.
Além de outras mensagens de registro, é possível verificar os registros para informações sobre
cloud-airflow-prod@system.gserviceaccount.com e
service-PROJECT_ID@cloudcomposer-accounts.iam.gserviceaccount.com
contas de serviço que configuram componentes dos ambientes.
O serviço do Airflow Gerenciado usa a
cloud-airflow-prod@system.gserviceaccount.com conta de serviço para gerenciar
componentes do projeto de locatário dos ambientes.
A
service-PROJECT_ID@cloudcomposer-accounts.iam.gserviceaccount.com
conta de serviço, também conhecida como conta de serviço do agente de serviço do Composer, gerencia
componentes de ambiente em
projetos de serviço e host.