Configurar una red de nube privada virtual (VPC) para Managed Service para Apache Spark te permite conectar de forma segura las cargas de trabajo a los recursos internos del proyecto y a las APIs de Google. Esta configuración de subred y firewall ayuda a que los controladores y ejecutores de Spark se comuniquen directamente y, al mismo tiempo, cumplan con las políticas de seguridad de tu organización.
Requisitos de la red de VPC
En este documento, se describen los requisitos de red de VPC para las cargas de trabajo por lotes y las sesiones interactivas de Managed Service para Apache Spark.
Acceso privado a Google
Las cargas de trabajo por lotes y las sesiones interactivas de Managed Service para Apache Spark se ejecutan en VMs solo con direcciones IP internas y en una subred regional con el Acceso privado a Google (PGA) habilitado automáticamente en la subred.
Si no especificas una subred, Managed Service para Apache Spark selecciona la
subred default en la región de la carga de trabajo por lotes o de la sesión como la subred para una
carga de trabajo por lotes o una sesión.
Si tu carga de trabajo requiere acceso a Internet o a una red externa, por ejemplo, para descargar recursos como modelos de AA de PyTorch Hub o Hugging Face, puedes configurar Cloud NAT para permitir el tráfico saliente con IP internas en tu red de VPC.
Conectividad de subred abierta
La subred de VPC de la región seleccionada para la carga de trabajo por lotes o la sesión interactiva de Managed Service para Apache Spark debe permitir la comunicación interna en todos los puertos entre las instancias de VM dentro de la subred.
Para evitar que las secuencias de comandos maliciosas en una carga de trabajo afecten a otras, Managed Service para Apache Spark implementa medidas de seguridad predeterminadas.
El siguiente comando de Google Cloud CLI conecta un firewall de red a una subred que permite las comunicaciones de entrada internas entre las VMs con todos los protocolos en todos los puertos:
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
Notas:
SUBNET_RANGES: Consulta Permite conexiones de entrada internas entre VMs. La red de VPC
defaulten un proyecto con la regla de firewalldefault-allow-internal, que permite la comunicación de entrada en todos los puertos (tcp:0-65535,udp:0-65535yicmp protocols:ports), cumple con el requisito de conectividad de subred abierta. Sin embargo, esta regla también permite la entrada de cualquier instancia de VM en la red.
Política de firewall del sistema regional creada automáticamente
Para cumplir con el requisito de conectividad de subred abierta,
las cargas de trabajo por lotes y las sesiones interactivas de Managed Service para Apache Spark
que usan la versión del entorno de ejecución 3.0 o posterior crean automáticamente una política de firewall del sistema regional
dataproc-firewall-policy-[network-id]-region o
dataproc-fw-[network-id]-region en la subred de VPC por lotes o de sesión.
Esta política contiene las siguientes reglas de entrada y salida.
| Nombre | Objetivo | Prioridad | Dirección | Acción | Origen y destino | Protocolo y puertos |
|---|---|---|---|---|---|---|
dataproc-allow-internal-ingress-rule-[subnetworkId] |
Permite toda la comunicación interna necesaria solo desde otras VMs de Managed Service para Apache Spark etiquetadas dentro de la misma subred. | 4 | ENTRADA | PERMITIR |
srcSecureTag: Es el valor de la etiqueta segura para esta subred.targetSecureTags:Es el valor de la etiqueta segura para esta subred. |
tcp:0-65535, udp:0-65535, icmp protocolos:puertos |
dataproc-allow-internal-egress-rule-[subnetworkId] |
Permite que las VMs de Managed Service para Apache Spark descarguen paquetes, por ejemplo, pip y apt-get, y accedan a las APIs de Google con el Acceso privado a Google. | 5 | SALIDA | PERMITIR |
destIpRanges: 0.0.0.0/0.targetSecureTags:Es el valor de la etiqueta segura para esta subred. |
tcp:0-65535, udp:0-65535, icmp protocolos:puertos |
Notas:
Managed Service para Apache Spark aprovisiona un proyecto de usuario asociado con el proyecto del usuario para almacenar etiquetas seguras. Managed Service para Apache Spark crea una etiqueta segura para la subred en el proyecto de usuario y la adjunta a las VMs de Managed Service para Apache Spark, lo que garantiza que la política de firewall del sistema creada solo se aplique a las VMs de Managed Service para Apache Spark.
La política de firewall del sistema creada automáticamente no es compatible con la VPC compartida.
Managed Service para Apache Spark y redes de VPC-SC
Con los Controles del servicio de VPC, los administradores de red pueden definir un perímetro de seguridad alrededor de los recursos de los servicios administrados por Google para controlar la comunicación hacia esos servicios y entre ellos.
Considera las siguientes estrategias cuando uses redes de VPC-SC con Managed Service para Apache Spark:
Crea una imagen de contenedor personalizada que preinstale dependencias fuera del perímetro de VPC-SC y, luego, envía una carga de trabajo por lotes de Spark que use tu imagen de contenedor personalizada.
Para obtener más información, consulta Controles del servicio de VPC: Managed Service para Apache Spark.