Cloud Composer 1 | Cloud Composer 2 | Cloud Composer 3
O VPC Service Controls permite que as organizações definam 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 do Google Cloud ou invasores externos acessando recursos do Google Cloud pela Internet.
Servidor da Web do Airflow no modo VPC Service Controls
No modo VPC Service Controls, o acesso ao servidor da Web é protegido pela do perímetro e o acesso de fora dele é bloqueado.
Para permitir o acesso de fora do perímetro de serviço, configure o nível de acesso apropriado.
Como criar um perímetro de serviço
Consulte Como criar um perímetro de serviço para saber como criar e configurar perímetros de serviço. Selecione o Cloud Composer como um dos serviços protegidos dentro do perímetro.
Como criar ambientes em um perímetro
Há algumas etapas adicionais necessárias para implantar o Cloud Composer em um perímetro. Ao criar o ambiente do Cloud Composer:
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 pela VPC: Caso contrário, o ambiente pode não criar:
- 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 Build (cloudbuild.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 CMEK
- API Secret Manager (secretmanager.googleapis.com), se você estiver usando o Secret Manager como um back-end de secret
Crie um novo ambiente do Cloud Composer com o IP particular ativado. Observe que esta configuração precisa ser definida durante a criação do ambiente.
Por padrão, só é possível acessar a interface e a API do Airflow pelo perímetro de segurança. Se você quiser disponibilizá-lo fora do escopo perímetro e, em seguida, configure o nível de acesso adequadamente, conforme descrito Permitir o acesso a recursos protegidos de fora do perímetro.
Como configurar ambientes atuais com o VPC Service Controls
É possível adicionar o projeto que contém seu ambiente ao perímetro se:
Você criou o perímetro conforme descrito na seção anterior.
Os ambientes são de IP particular.
Como instalar pacotes PyPI
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 particular da rede VPC. A configuração recomendada para esse processo é definir um repositório PyPI particular, preenchê-lo com pacotes verificados usados pela organização e depois configurar o Cloud Composer para instalar dependências do Python a partir de um repositório particular.
Também é possível instalar pacotes PyPI a partir 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.
Ao usar esta configuração, entenda os riscos de usar repositórios externos. Certifique-se de confiar no conteúdo e na integridade de qualquer repositório externo, já que essas conexões podem ser usadas como um vetor de exfiltração.
Configurar a conectividade com as APIs e os serviços do Google
Em uma configuração do VPC Service Controls, para controlar o tráfego de rede,
configurar o acesso às APIs e aos serviços do Google pelo
restricted.googleapis.com
: Esse domínio bloqueia o acesso às APIs do Google e
que não oferecem suporte ao VPC Service Controls.
Os ambientes do Cloud Composer usam os seguintes domínios:
O app
*.googleapis.com
é usado para acessar outros Serviços do Google.*.composer.cloud.google.com
é usado para criar o servidor da Web Airflow do seu o ambiente acessível. Aplique essa regra antes de criar de nuvem.- Como alternativa, você pode criar uma regra para uma região específica. Para isso,
use
REGION.composer.cloud.google.com
. SubstituaREGION
pela região em que o ambiente está localizado. exemplo:us-central1
.
- Como alternativa, você pode criar uma regra para uma região específica. Para isso,
use
(Opcional)
*.composer.googleusercontent.com
é usado ao acessar o Servidor da Web Airflow do seu ambiente. Essa regra só será obrigatória se você acessar o servidor da Web do Airflow em uma instância executada no rede VPC. Caso contrário, não será necessário. Um cenário comum é quando você quer chamar a API REST do Airflow pela rede VPC.- Como alternativa, você pode criar uma regra para um ambiente específico. Para
faça isso, use
ENVIRONMENT_WEB_SERVER_NAME.composer.googleusercontent.com
, SubstituaENVIRONMENT_WEB_SERVER_NAME
pela parte exclusiva de o URL da interface do Airflow do seu ambiente, por exemplo,bffe6ce6c4304c55acca0e57be23128c-dot-us-central1
.
- Como alternativa, você pode criar uma regra para um ambiente específico. Para
faça isso, use
*.pkg.dev
é usado para conseguir imagens de ambiente, como ao criar ou atualizar um ambiente.*.gcr.io
O GKE requer conectividade para Domínio do Container Registry, independentemente 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: CNAME Nome canônico: googleapis.com. |
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
|
*.composer.cloud.google.com
|
composer.cloud.google.com. |
Nome DNS: *.composer.cloud.google.com. Tipo de registro de recurso: CNAME Nome canônico: composer.cloud.google.com. |
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
|
*.composer.googleusercontent.com
(opcional, consulte a descrição) |
composer.googleusercontent.com. |
Nome DNS: *.composer.googleusercontent.com. Tipo de registro de recurso: CNAME Nome canônico: composer.googleusercontent.com. |
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
|
*.pkg.dev
|
pkg.dev. |
Nome DNS: *.pkg.dev. Tipo de registro de recurso: CNAME Nome canônico: pkg.dev. |
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
|
*.gcr.io
|
gcr.io. |
Nome DNS: *.gcr.io. Tipo de registro de recurso: CNAME Nome canônico: gcr.io. |
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
|
Para criar uma regra de DNS:
Crie uma nova zona de DNS e use o nome do DNS como o nome do DNS. desta zona.
Exemplo:
pkg.dev.
Adicione um conjunto de registros para o registro CNAME.
Exemplo:
- Nome DNS:
*.pkg.dev.
- Tipo de registro de recurso:
CNAME
- Nome canônico:
pkg.dev.
- Nome DNS:
Adicione um conjunto de registros com para A Record:
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 modificar as regras pré-preenchidas a rede padrão, depois verifique se as regras de firewall a seguir configurada.
Por exemplo, o Cloud Composer pode não criar um ambiente se
você tem uma regra de firewall que nega todo o tráfego de saída. Para evitar problemas,
definir regras allow
seletivas que sigam a lista e tenham maior prioridade
do que a regra deny
global.
Configure a rede VPC para permitir o tráfego do ambiente:
- Consulte Como usar regras de firewall para aprender verificar, adicionar e atualizar regras para sua rede VPC.
- Usar Ferramenta de conectividade para validar a conectividade entre intervalos de IP.
- É possível usar tags de rede para para limitar 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 no Suporte do VPC Service Controls para 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 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 |
(Se o ambiente usar o Private Service Connect) Sub-rede da conexão | Saída | Permitir | Intervalo de sub-rede de conexão do Cloud Composer | TCP | 3306 e 3307 |
Se o ambiente usar peerings de VPC Rede de locatário | Saída | Permitir | Intervalo de IP da rede de locatário do Cloud Composer | TCP | 3306 e 3307 |
Para conferir os intervalos de IP:
Os intervalos de endereços de pods, serviços e planos de controle estão disponíveis Na página Clusters do cluster do ambiente:
No console do Google Cloud, acesse a página Ambientes.
Na lista de ambientes, clique no nome do 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 Intervalo de IP da rede de locatário do Cloud Composer na guia Configuração do ambiente.
É possível conferir ID da sub-rede e o ID da sub-rede da conexão do Cloud Composer na guia Configuração do ambiente. Para obter o 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 registros de auditoria geradas pelo VPC Service Controls.
Além de outras mensagens de registro, é possível verificar informações nos registros 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
cloud-airflow-prod@system.gserviceaccount.com
conta de serviço para gerenciar
componentes de projeto de locatário dos seus ambientes.
O
service-PROJECT_ID@cloudcomposer-accounts.iam.gserviceaccount.com
conta de serviço, também conhecida como Composer Service Agent Service Account
, gerencia
componentes de ambiente em
projetos host e de serviço.
Limitações
- 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.
- Quando o Cloud Composer está sendo executado dentro de um perímetro, o acesso a repositórios PyPI públicos é restrito. Consulte Como instalar dependências do Python para aprender a instalar módulos do PyPI no modo de IP particular.