Configurar uma rede de nuvem privada virtual (VPC) para o Managed Service para Apache Spark permite conectar cargas de trabalho com segurança a recursos internos do projeto e APIs do Google. Essas configurações de sub-rede e firewall ajudam os drivers e executores do Spark a se comunicarem diretamente, obedecendo às políticas de segurança da sua organização.
Requisitos de rede VPC
Neste documento, descrevemos os requisitos de rede VPC para cargas de trabalho em lote e sessões interativas do Serviço Gerenciado para Apache Spark.
Acesso privado do Google
As cargas de trabalho em lote e as sessões interativas do Serviço Gerenciado para Apache Spark são executadas em VMs com apenas endereços IP internos e em uma sub-rede regional com o Acesso Privado do Google (PGA) ativado automaticamente na sub-rede.
Se você não especificar uma sub-rede, o Serviço Gerenciado para Apache Spark vai selecionar a
sub-rede default na região da carga de trabalho em lote ou da sessão como a sub-rede para uma
carga de trabalho em lote ou sessão.
Se a carga de trabalho exigir acesso à rede externa ou à Internet, por exemplo, para fazer o download de recursos como modelos de ML do PyTorch Hub ou do Hugging Face, configure o Cloud NAT para permitir o tráfego de saída usando IPs internos na rede VPC.
Conectividade de sub-rede aberta
A sub-rede VPC da região selecionada para a carga de trabalho em lote ou sessão interativa do Serviço Gerenciado para Apache Spark precisa permitir a comunicação interna em todas as portas entre as instâncias de VM na sub-rede.
Para evitar que scripts maliciosos em uma carga de trabalho afetem outras, o Serviço Gerenciado para Apache Spark implanta medidas de segurança padrão.
O comando da Google Cloud CLI a seguir anexa um firewall de rede a uma sub-rede que permite comunicações de entrada internas entre VMs usando todos os protocolos em todas as portas:
gcloud compute firewall-rules create allow-internal-ingress \ --network=NETWORK_NAME \ --source-ranges=SUBNET_RANGES \ --destination-ranges=SUBNET_RANGES \ --direction=ingress \ --action=allow \ --rules=all
Observações:
SUBNET_RANGES: Consulte Permitir conexões de entrada internas entre VMs. A rede VPC
defaultem um projeto com a regra de firewalldefault-allow-internal, que permite a comunicação de entrada em todas as portas (tcp:0-65535,udp:0-65535eicmp protocols:ports), atende ao requisito de conectividade de sub-rede aberta. No entanto, essa regra também permite a entrada de qualquer instância de VM na rede.
Política de firewall do sistema regional criada automaticamente
Para atender ao requisito de conectividade de sub-rede aberta,
as cargas de trabalho em lote e as sessões interativas do Serviço Gerenciado para Apache Spark
que usam a versão de ambiente de execução 3.0 ou mais recente criam automaticamente uma política de firewall do sistema
regional dataproc-firewall-policy-[network-id]-region ou
dataproc-fw-[network-id]-region na sub-rede VPC do lote ou da sessão.
Essa política contém as seguintes regras de entrada e saída.
| Nome | Finalidade | Prioridade | Direção | Ação | Origem e destino | Protocolo e portas |
|---|---|---|---|---|---|---|
dataproc-allow-internal-ingress-rule-[subnetworkId] |
Permite toda a comunicação interna necessária apenas de outras VMs do Serviço Gerenciado para Apache Spark marcadas na mesma sub-rede. | 4 | ENTRADA | PERMITIR |
srcSecureTag: valor da tag segura para esta sub-rede.targetSecureTags:valor da tag segura para esta sub-rede. |
tcp:0-65535, udp:0-65535, icmp protocolos:portas |
dataproc-allow-internal-egress-rule-[subnetworkId] |
Permite que as VMs do Serviço Gerenciado para Apache Spark façam o download de pacotes, como pip e apt-get, e acessem as APIs do Google usando o Acesso Privado do Google. | 5 | SAÍDA | PERMITIR |
destIpRanges: 0.0.0.0/0.targetSecureTags:valor da tag segura para esta sub-rede. |
tcp:0-65535, udp:0-65535, icmp protocolos:portas |
Observações:
O Serviço Gerenciado para Apache Spark provisiona um projeto de locatário associado ao projeto do usuário para armazenar tags seguras. O Serviço Gerenciado para Apache Spark cria uma tag segura para a sub-rede no projeto de locatário e a anexa às VMs do Serviço Gerenciado para Apache Spark, o que garante que a política de firewall do sistema criada se aplique apenas às VMs do Serviço Gerenciado para Apache Spark.
A política de firewall do sistema criada automaticamente não é compatível com a VPC compartilhada.
Serviço Gerenciado para Apache Spark e redes VPC-SC
Com o VPC Service Controls, os administradores de rede podem definir um perímetro de segurança em torno dos recursos dos serviços gerenciados pelo Google para controlar a comunicação entre esses serviços.
Considere as seguintes estratégias ao usar redes VPC-SC com o Serviço Gerenciado para Apache Spark:
Crie uma imagem do contêiner personalizada que pré-instale dependências fora do perímetro do VPC-SC e envie uma carga de trabalho em lote do Spark que use sua imagem do contêiner personalizada.
Para mais informações, consulte VPC Service Controls: serviço gerenciado para Apache Spark.