Configure os VPC Service Controls

Cloud Composer 3 | Cloud Composer 2 | Cloud Composer 1

Os VPC Service Controls permitem que as organizações definam um perímetro em torno dos Google Cloud recursos para mitigar os riscos de exfiltração de dados.

Os ambientes do Cloud Composer podem ser implementados num perímetro de serviço. Ao configurar o seu ambiente com os VPC Service Controls, pode manter os dados sensíveis privados enquanto tira partido das capacidades de orquestração de fluxo de trabalho totalmente geridas do Cloud Composer.

O suporte dos VPC Service Controls para o Cloud Composer significa que:

  • Agora, o Cloud Composer pode ser selecionado como um serviço seguro num perímetro do VPC Service Controls.
  • Todos os recursos subjacentes usados pelo Cloud Composer estão configurados para suportar a arquitetura dos VPC Service Controls e seguir as respetivas regras.

A implementação de ambientes do Cloud Composer com os VPC Service Controls oferece-lhe:

  • Risco reduzido de exfiltração de dados.
  • Proteção contra a exposição de dados devido a controlos de acesso configurados incorretamente.
  • Risco reduzido de utilizadores maliciosos copiarem dados paraGoogle Cloud recursos não autorizados ou de atacantes externos acederem aGoogle Cloud recursos a partir da Internet.

Acerca dos VPC Service Controls no Cloud Composer

  • A apresentação de um modelo renderizado com funções na IU Web com a serialização DAG ativada é suportada para ambientes que executam a versão 1.12.0 ou posterior do Cloud Composer e a versão 1.10.9 ou posterior do Airflow.

  • A definição da flag async_dagbag_loader como True não é suportada enquanto a serialização DAG estiver ativada.

  • A ativação da serialização de DAGs desativa todos os plug-ins do servidor Web do Airflow, uma vez que podem comprometer a segurança da rede VPC onde o Cloud Composer está implementado. Isto não afeta o comportamento dos plug-ins do programador ou do trabalhador, incluindo os operadores e os sensores do Airflow.

  • Se um ambiente do Cloud Composer estiver protegido por um perímetro, o acesso a repositórios públicos do PyPI é restrito. Consulte o artigo Instale pacotes PyPI no VPC Service Controls para mais informações.

  • Se o seu ambiente usar redes IP privadas, todo o tráfego interno é encaminhado para a sua rede VPC, exceto o tráfego para APIs, serviços e domínios Google que estão disponíveis para ambientes de IP privado através do acesso privado à Google.

  • Consoante a forma como configura a sua rede VPC, um ambiente de IP privado pode obter acesso à Internet através da sua rede VPC.

  • No modo VPC Service Controls, o Cloud Composer executa duas instâncias do servidor Web do Airflow. O Identity-Aware Proxy equilibra a carga do tráfego de utilizadores entre estas instâncias. Os servidores Web do Airflow são executados no modo "só de leitura", o que significa que:

    • A serialização de DAGs está ativada. Consequentemente, o servidor Web do Airflow não analisa ficheiros DAG.

    • Os plug-ins não são sincronizados com o servidor Web, pelo que não pode modificar nem expandir as capacidades do servidor Web com plug-ins.

    • O servidor Web do Airflow usa uma imagem de contentor pré-criada pelo serviço Cloud Composer. Se instalar imagens do PyPI no seu ambiente, estas imagens não são instaladas na imagem do contentor do servidor Web.

Crie ambientes num perímetro

Os passos seguintes são necessários para implementar o Cloud Composer dentro de um perímetro:

  1. Ative a API Access Context Manager e a API Cloud Composer para o seu projeto. Consulte o artigo Ativar APIs para referência.

  2. Certifique-se de que o seu perímetro de serviço tem os seguintes serviços acessíveis por VPC. Caso contrário, a criação do seu ambiente pode 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)
    • Cloud Logging API (logging.googleapis.com)
    • Cloud Monitoring API (monitoring.googleapis.com)
    • API Cloud Pub/Sub (pubsub.googleapis.com)
    • Cloud Resource Manager API (cloudresourcemanager.googleapis.com)
    • API Service Directory (servicedirectory.googleapis.com)
    • API Cloud Key Management Service (cloudkms.googleapis.com), se estiver a usar chaves do Cloud KMS ou CMEK.
    • API Secret Manager (secretmanager.googleapis.com), se estiver a usar o Secret Manager como um back-end secreto.
  3. Crie um novo ambiente do Cloud Composer com o IP privado ativado. Tenha em atenção que esta definição tem de ser configurada durante a criação do ambiente.

    • Use a versão composer-1.10.4 ou posterior.

    • Certifique-se de que a serialização de DAGs está ativada. Se o seu ambiente usar a versão 1.15.0 do Cloud Composer e posteriores, a serialização está ativada por predefinição.

    • Quando criar o seu ambiente, lembre-se de configurar o acesso ao servidor Web do Airflow. Para melhorar a proteção, permita apenas o acesso ao servidor Web a partir de intervalos de IPs específicos. Para ver detalhes, consulte o artigo Configure o acesso à rede do servidor Web.

Adicione um ambiente existente ao perímetro

Instale pacotes PyPI no VPC Service Controls

Na configuração predefinida dos VPC Service Controls, o Cloud Composer só suporta a instalação de pacotes PyPI a partir de repositórios privados que sejam acessíveis a partir do espaço de endereços IP interno da rede VPC.

Instale a partir de um repositório privado

A configuração recomendada é configurar um repositório PyPI privado:

  1. Preencha-o com pacotes validados usados pela sua organização e, em seguida, configure o Cloud Composer para instalar dependências do Python a partir de um repositório privado.

  2. Conceda autorizações adicionais para instalar pacotes de repositórios privados à conta de serviço do seu ambiente, conforme descrito em Controlo de acesso.

Instale a partir de um repositório público

Repositório remoto

Esta é a abordagem recomendada para instalar pacotes a partir de um repositório público.

Para instalar pacotes PyPI a partir de repositórios fora do espaço de IP privado, siga estes passos:

  1. Crie um repositório remoto do Artifact Registry.
  2. Conceda a este repositório acesso a origens a montante.
  3. Configure o Airflow para instalar pacotes a partir de um repositório do Artifact Registry.
  4. Conceda autorizações adicionais para instalar pacotes de repositórios do Artifact Registry à conta de serviço do seu ambiente, conforme descrito no artigo Controlo de acesso.

Ligações externas

Para instalar pacotes PyPI a partir de repositórios fora do espaço de IP privado, siga estes passos:

  1. Configure o Cloud NAT para permitir que o Cloud Composer em execução no espaço de IP privado se ligue a repositórios PyPI externos.

  2. Configure as regras de firewall para permitir ligações de saída do cluster do Composer ao repositório.

Configure a conetividade às APIs e aos serviços Google

Numa configuração do VPC Service Controls, para controlar o tráfego de rede, configure o acesso às APIs e aos serviços Google através do restricted.googleapis.com. Este domínio bloqueia o acesso às APIs Google e aos serviços que não suportam os VPC Service Controls.

Os ambientes do Cloud Composer usam os seguintes domínios:

  • *.googleapis.com é usado para aceder a outros serviços Google.

  • *.pkg.dev é usado para obter imagens de ambiente, como quando cria ou atualiza um ambiente.

  • *.gcr.io O GKE requer conetividade ao domínio do Container Registry, independentemente da versão do Cloud Composer.

Configure a conetividade ao ponto final restricted.googleapis.com:

Domínio Nome de DNS Registo CNAME Registo A
*.googleapis.com googleapis.com. Nome DNS: *.googleapis.com.
Tipo de registo de recurso: CNAME
Nome canónico: googleapis.com.
Tipo de registo de recursos: A
Endereços IPv4: 199.36.153.4, 199.36.153.5, 199.36.153.6 e 199.36.153.7
*.pkg.dev pkg.dev. Nome DNS: *.pkg.dev.
Tipo de registo de recurso: CNAME
Nome canónico: pkg.dev.
Tipo de registo de recursos: A
Endereços IPv4: 199.36.153.4, 199.36.153.5, 199.36.153.6 e 199.36.153.7
*.gcr.io gcr.io. Nome DNS: *.gcr.io.
Tipo de registo de recurso: CNAME
Nome canónico: gcr.io.
Tipo de registo de recursos: A
Endereços IPv4: 199.36.153.4, 199.36.153.5, 199.36.153.6 e 199.36.153.7

Para criar uma regra de DNS:

  1. Crie uma nova zona DNS e use DNS name como nome DNS desta zona.

    Exemplo: pkg.dev.

  2. Adicione um conjunto de registos para o registo CNAME.

    Exemplo:

    • Nome de DNS: *.pkg.dev.
    • Tipo de registo de recurso: CNAME
    • Nome canónico: pkg.dev.
  3. Adicione um conjunto de registos com para registo A:

    Exemplo:

    • Tipo de registo de recurso: A
    • Endereços IPv4: 199.36.153.4, 199.36.153.5, 199.36.153.6, 199.36.153.7

Para mais informações, consulte o artigo Configurar a conetividade privada às APIs e aos serviços Google.

Configure regras de firewall

Se o seu projeto tiver regras de firewall não predefinidas, como regras que substituem as regras de firewall implícitas ou modificam as regras pré-preenchidas na rede predefinida, verifique se as seguintes regras de firewall estão configuradas.

Por exemplo, o Cloud Composer pode não conseguir criar um ambiente se tiver uma regra de firewall que negue todo o tráfego de saída. Para evitar problemas, defina regras allowseletivas que seguem a lista e têm uma prioridade mais alta do que a regra denyglobal.

Configure a sua rede VPC para permitir o tráfego do seu ambiente:

Descrição Direção Ação Origem ou destino Protocolos Portas
DNS

Configure conforme descrito no artigo Suporte do VPC Service Controls para o Cloud DNS
- - - - -
APIs e serviços Google Saída Permitir Endereços IPv4 de restricted.googleapis.com que usa para as APIs e os serviços Google. TCP 443
Nós de cluster do ambiente Saída Permitir Intervalo de endereços IP principal da sub-rede do ambiente TCP, UDP todos
Pods do cluster do ambiente Saída Permitir Intervalo de endereços IP secundários para pods na sub-rede do ambiente TCP, UDP todos
Plano de controlo do cluster do ambiente Saída Permitir Intervalo de IPs do plano de controlo do GKE TCP, UDP todos
Servidor Web Saída Permitir Intervalo de IP da rede do servidor Web TCP 3306, 3307

Para obter os intervalos de IP do cluster de ambientes:

  • Os intervalos de endereços de pods, serviços e planos de controlo estão disponíveis na página Clusters do cluster do seu ambiente:

    1. Na Google Cloud consola, aceda à página Ambientes.

      Aceder a Ambientes

    2. Na lista de ambientes, clique no nome do seu ambiente. É apresentada a página Detalhes do ambiente.

    3. Aceda ao separador Configuração do ambiente.

    4. Siga o link ver detalhes do cluster.

  • Pode ver o intervalo de IPs do servidor Web do ambiente no separador Configuração do ambiente.

  • Pode ver o ID da rede do ambiente no separador Configuração do ambiente. Para obter intervalos de IP para uma sub-rede, aceda à página Redes VPC e clique no nome da rede para ver os detalhes:

    Aceda a Redes VPC

Registos dos VPC Service Controls

Ao resolver problemas de criação de ambientes, pode analisar os registos de auditoria gerados pelo VPC Service Controls.

Além de outras mensagens de registo, pode verificar os registos para obter informações sobre as contas de serviço cloud-airflow-prod@system.gserviceaccount.com e service-PROJECT_ID@cloudcomposer-accounts.iam.gserviceaccount.com que configuram componentes dos seus ambientes.

O serviço Cloud Composer usa a conta de serviço cloud-airflow-prod@system.gserviceaccount.com para gerir os componentes do projeto de inquilino dos seus 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, gere os componentes do ambiente nos projetos de serviço e anfitrião.

O que se segue?