Cloud Composer 3 | Cloud Composer 2 | Cloud Composer 1
Com o VPC Service Controls, as organizações podem definir um perímetro em torno dos recursos do Google Cloud para reduzir os riscos de exfiltração de dados.
Os ambientes do Cloud Composer 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 confidenciais em sigilo enquanto aproveita os recursos de orquestração de fluxo de trabalho totalmente gerenciados do Cloud Composer.
A compatibilidade do VPC Service Controls com o Cloud Composer significa que:
- O Cloud Composer agora pode ser selecionado como um serviço seguro dentro de um perímetro do VPC Service Controls.
- Todos os recursos subjacentes usados pelo Cloud Composer 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 Cloud Composer 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 doGoogle Cloud ou invasores externos acessando recursos doGoogle Cloud pela Internet.
Sobre o VPC Service Controls no Cloud Composer
- Todas as restrições de rede do VPC Service Controls também se aplicam aos ambientes do Cloud Composer. Para mais detalhes, consulte a documentação do VPC Service Controls.
Se um ambiente do Cloud Composer for 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 rede IP privada, todo o tráfego interno será roteado para sua rede VPC, exceto o tráfego para APIs, serviços e domínios do Google que estão disponíveis para ambientes de IP privado pelo Acesso privado do Google.
Dependendo da configuração da rede VPC, um ambiente de IP privado pode acessar a Internet pela rede VPC.
O Cloud Composer não é compatível com o uso de identidades de terceiros em regras de entrada e saída para permitir operações da interface do Apache Airflow. No entanto, é possível usar o tipo de identidade
ANY_IDENTITYnas regras de entrada e saída para permitir o acesso a todas as identidades, incluindo as de terceiros. Para mais informações sobre o tipo de identidadeANY_IDENTITY, consulte Regras de entrada e saída.No modo do VPC Service Controls, o acesso ao servidor da Web é protegido pelo perímetro, e o acesso de fora dele é bloqueado. Para permitir o acesso de fora do perímetro de serviço, configure níveis de acesso ou regras de entrada e saída conforme necessário. Além disso, é possível restringir o acesso ao servidor da Web a intervalos de IP específicos.
Criar ambientes em um perímetro
As etapas a seguir são necessárias para implantar o Cloud Composer em um perímetro:
Ative a API Access Context Manager e a API do 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, o ambiente poderá não ser criado:
- 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 Security Token Service (sts.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 da CMEK.
- API Secret Manager (secretmanager.googleapis.com), se você estiver usando o Secret Manager como um back-end de secrets.
Crie um ambiente do Cloud Composer:
O IP particular precisa estar ativado. Observe que esta configuração precisa ser definida durante a criação do ambiente.
Não se esqueça 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.
Por padrão, o acesso à interface e à API do Airflow só é permitido de dentro do perímetro de segurança. Se quiser disponibilizar fora do perímetro de segurança, configure níveis de acesso ou regras de entrada e saída.
Adicionar um ambiente ao perímetro
É possível adicionar o projeto que contém seu ambiente a um perímetro se:
- Você já criou ou configurou o perímetro conforme descrito na seção anterior.
- Seus ambientes usam IP particular.
Instalar pacotes do PyPI no VPC Service Controls
Na configuração padrão do VPC Service Controls, o Cloud Composer é 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.
Por padrão, todos os ambientes do Cloud Composer em um perímetro do VPC Service Controls não têm acesso a repositórios PyPI públicos.
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 configure o Cloud Composer para instalar dependências do Python a partir de um repositório particular.
Conceda permissões adicionais para instalar pacotes de repositórios privados à conta de serviço do seu 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 este 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 dos repositórios do Artifact Registry à conta de serviço do seu 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 o Cloud NAT para permitir que o Cloud Composer em execução no espaço de 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 usando o
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 Cloud Composer usam os seguintes domínios:
O
*.googleapis.comé usado para acessar outros serviços do Google.*.composer.cloud.google.comé usado para tornar o servidor da Web do Airflow do seu ambiente acessível. Essa regra precisa ser aplicada antes da criação de um ambiente.- Como alternativa, é possível criar uma regra para uma região específica. Para fazer isso,
use
REGION.composer.cloud.google.com. SubstituaREGIONpela região em que o ambiente está localizado, por exemplo,us-central1.
- Como alternativa, é possível criar uma regra para uma região específica. Para fazer isso,
use
(Opcional)
*.composer.googleusercontent.comé usado ao acessar o servidor da Web do Airflow do seu ambiente. Essa regra é necessária apenas se você acessar o servidor da Web do Airflow de uma instância que é executada na rede VPC. Caso contrário, ela não é necessária. Um cenário comum para essa regra é quando você quer chamar a API REST do Airflow de dentro da rede VPC.- Como alternativa, é possível criar uma regra para um ambiente específico. Para fazer isso, use
ENVIRONMENT_WEB_SERVER_NAME.composer.googleusercontent.com. SubstituaENVIRONMENT_WEB_SERVER_NAMEpela parte exclusiva do URL da interface do Airflow do seu ambiente. Por exemplo,bffe6ce6c4304c55acca0e57be23128c-dot-us-central1.
- Como alternativa, é possível criar uma regra para um ambiente específico. Para fazer isso, use
O
*.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, independente da versão do Cloud Composer.
Configure a conectividade com o endpoint restricted.googleapis.com:
| Domínio | Nome do DNS | Registro CNAME | Registro A |
|---|---|---|---|
*.googleapis.com
|
googleapis.com. |
Nome 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
|
*.composer.cloud.google.com
|
composer.cloud.google.com. |
Nome DNS: *.composer.cloud.google.com.Tipo de registro de recurso: CNAMENome canônico: composer.cloud.google.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
|
*.composer.googleusercontent.com
(opcional, consulte a descrição) |
composer.googleusercontent.com. |
Nome DNS: *.composer.googleusercontent.com.Tipo de registro de recurso: CNAMENome canônico: composer.googleusercontent.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 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 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 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 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 particular com APIs e 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 Cloud Composer pode não 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 prioridade maior que a regra deny global.
Configure sua rede VPC para permitir o tráfego do seu ambiente:
- Consulte Como usar regras de firewall para aprender a verificar, adicionar e atualizar regras para sua rede VPC.
- Use a ferramenta de conectividade para validar a conectividade entre intervalos de IP.
- É possível usar tags de rede para limitar ainda mais o acesso. É possível 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ários da sub-rede do ambiente | TCP, UDP | todas |
| Pods do 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 |
| (Se o ambiente usa o Private Service Connect) Sub-rede de conexão | Saída | Permitir | Intervalo da sub-rede de conexão do Cloud Composer | TCP | 3306, 3307 |
| (Se o ambiente usa peerings de VPC) Rede do locatário | Saída | Permitir | Intervalo de IP da rede de locatário do Cloud Composer | TCP | 3306, 3307 |
Para acessar os intervalos de IP do cluster de 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 seu ambiente:
No console Google Cloud , acesse a página Ambientes.
Na lista de ambientes, clique no nome do seu ambiente. A página Detalhes do ambiente é aberta.
Acesse a guia Configuração do ambiente.
Siga o link ver detalhes do cluster.
É possível conferir o intervalo de IP da rede de locatário do Cloud Composer do ambiente na guia Configuração do ambiente.
É possível conferir o ID da sub-rede do ambiente e o ID da sub-rede de conexão do Cloud Composer 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 ver 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, você pode 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 seus ambientes.
O serviço do Cloud Composer usa a conta de serviço cloud-airflow-prod@system.gserviceaccount.com para gerenciar os componentes do projeto do locatário dos seus ambientes.
A conta de serviço
service-PROJECT_ID@cloudcomposer-accounts.iam.gserviceaccount.com, 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.