Como configurar regras de firewall e acesso à Internet

Esta página explica como fornecer rotas e definir as regras de firewall do Google Cloud para a rede associada aos jobs do Dataflow.

Acesso à Internet para o Cloud Dataflow

As máquinas virtuais (VMs) de worker do Dataflow precisam ser capazes de alcançar as APIs e os serviços do Google Cloud. Configure VMs de worker com um endereço IP externo para atender aos requisitos de acesso à Internet ou use o Acesso privado do Google.

Com o Acesso privado do Google, as VMs que têm apenas endereços IP internos podem acessar IPs públicos selecionados para o Google Cloud e os serviços. Leia Como configurar o Acesso privado do Google para informações sobre os requisitos de regras de roteamento e firewall e as etapas de configuração.

Jobs que acessam APIs e serviços fora do Google Cloud exigem acesso à Internet. Por exemplo, os jobs do SDK do Python precisam acessar o Python Package Index (PyPI). Nesse caso, você precisa configurar VMs de worker com endereços IP externos ou usar uma solução de conversão de endereço de rede, como o Cloud NAT. Leia Como gerenciar dependências de pipeline do Python (em inglês) no site do Apache Beam para mais detalhes.

Limitações do DNS

O Dataflow não aceita os endereços IP virtuais restricted.googleapis.com ou private.googleapis.com porque não é compatível com a personalização de DNS.

Regras de firewall

Com as regras de firewall, é possível permitir ou negar o tráfego tanto de entrada quanto de saída das VMs. Para compreender esta página, é necessário ter familiaridade com o funcionamento das regras de firewall do Google Cloud descritas nas páginas Visão geral das regras de firewall e Como usar as regras de firewall, incluindo as regras implícitas de firewall.

Regras de firewall exigidas pelo Dataflow

O Dataflow exige que as VMs de worker se comuniquem umas com as outras usando portas TCP específicas dentro da rede VPC que você especificar nas opções do pipeline. Configure regras de firewall na rede VPC para permitir esse tipo de comunicação.

Algumas redes VPC, como a rede default criada automaticamente, incluem uma regra default-allow-internal que atende ao requisito de firewall do Dataflow.

Como todas as VMs de worker têm uma tag de rede com o valor dataflow, é possível criar uma regra de firewall mais específica para o Dataflow. Um proprietário, editor ou administrador de segurança do projeto pode usar o seguinte comando gcloud para criar uma regra de permissão de entrada que permita tráfego nas portas TCP 12345 e 12346, desde VMs com a tag de rede dataflow até VMs com a mesma tag:

gcloud compute firewall-rules create FIREWALL_RULE_NAME \
    --network NETWORK \
    --action allow \
    --direction DIRECTION \
    --target-tags dataflow \
    --source-tags dataflow \
    --priority 0 \
    --rules tcp:12345-12346

No exemplo anterior, substitua as seguintes variáveis:

  • FIREWALL_RULE_NAME por um nome para a regra de firewall
  • NETWORK pelo nome da rede usada pelas VMs de worker
  • DIRECTION pela direção da regra de firewall

Para mais informações sobre as regras de firewall, consulte este link. Para portas TCP específicas usadas pelo Dataflow, é possível visualizar o manifesto do contêiner do projeto. Esse manifesto especifica explicitamente as portas para mapear as portas do host no contêiner. Também é possível visualizar as atividades e configurações de rede abrindo uma sessão SSH em um worker e executando iproute2. Consulte esta página sobre iproute2 (em inglês) para mais informações.

Acesso SSH às VMs de worker

O Dataflow não exige SSH. No entanto, o SSH é útil para a solução de problemas.

Se a VM de worker tiver um endereço IP externo, será possível se conectar à VM por meio do Console do Cloud ou da ferramenta de linha de comando gcloud. Para se conectar usando SSH, é preciso ter uma regra de firewall que permita conexões de entrada na porta TCP 22 pelo menos do endereço IP do sistema no qual você esteja executando gcloud ou do sistema que esteja executando o navegador da Web usado para acessar o Console do Cloud.

Se precisar se conectar a uma VM de worker que tenha apenas um endereço IP interno, consulte Como se conectar a instâncias que não têm endereços IP externos.