为 Managed Service for Apache Spark 配置虚拟私有云 (VPC) 网络,可让您安全地将工作负载连接到内部项目资源和 Google API。这些子网和防火墙设置有助于 Spark 驱动程序和执行程序直接通信,同时遵守组织的安全政策。
VPC 网络要求
本文档介绍了 Managed Service for Apache Spark 批量工作负载和交互式会话的 VPC 网络要求。
专用 Google 访问通道
Managed Service for Apache Spark 批量工作负载和交互式会话仅在具有内部 IP 地址的虚拟机上运行,并且在区域子网上运行,子网上会自动启用 专用 Google 访问通道 (PGA)。
如果您未指定子网,Managed Service for Apache Spark 会选择批量工作负载或会话区域中的 default 子网作为批量工作负载或会话的子网。
如果您的工作负载需要外部网络或互联网访问权限(例如,从 PyTorch Hub 或 Hugging Face 下载机器学习模型等资源),您可以设置 Cloud NAT,以允许使用 VPC 网络中的内部 IP 地址的出站流量。
开放式子网连接
为 Managed Service for Apache Spark 批处理工作负载或交互式会话选择的区域的 VPC 子网必须允许子网内虚拟机实例之间的所有端口进行内部通信。
为防止一个工作负载中的恶意脚本影响其他工作负载,Managed Service for Apache Spark 部署了默认安全措施。
以下 Google Cloud CLI 命令会将网络防火墙连接到子网,以允许虚拟机之间使用所有端口上的所有协议进行内部入站流量通信:
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
注意:
SUBNET_RANGES: 请参阅允许虚拟机之间的内部入站连接。项目中具有
default-allow-internal防火墙规则的defaultVPC 网络允许所有端口(tcp:0-65535、udp:0-65535和icmp protocols:ports)上的入站通信,满足开放子网连接要求。但是,此规则还允许网络上的任何虚拟机实例的入站流量。
自动创建的区域级系统防火墙政策
为了满足开放子网连接要求,使用运行时版本 3.0 或更高版本的 Managed Service for Apache Spark 批量工作负载和交互式会话会自动在批量或会话 VPC 子网上创建区域系统防火墙政策 dataproc-firewall-policy-[network-id]-region 或 dataproc-fw-[network-id]-region。此政策包含以下入站和出站规则。
| 名称 | 用途 | 优先级 | 方向 | 操作 | 来源和目标 | 协议和端口 |
|---|---|---|---|---|---|---|
dataproc-allow-internal-ingress-rule-[subnetworkId] |
仅允许来自同一子网中其他已添加标记的 Managed Service for Apache Spark 虚拟机的所有必要内部通信。 | 4 | 入站 | 允许 |
srcSecureTag:此子网的安全标记值。targetSecureTags:此子网的安全标记值。 |
tcp:0-65535、udp:0-65535、icmp 协议:端口 |
dataproc-allow-internal-egress-rule-[subnetworkId] |
允许 Managed Service for Apache Spark 虚拟机下载软件包(例如 pip 和 apt-get),并使用专用 Google 访问通道访问 Google API。 | 5 | 出站 | 允许 |
destIpRanges:0.0.0.0/0。targetSecureTags:此子网的安全标记值。 |
tcp:0-65535、udp:0-65535、icmp 协议:端口 |
注意:
Managed Service for Apache Spark 会预配与用户项目关联的租户项目,以存储安全标记。 Managed Service for Apache Spark 会在租户项目中为子网创建安全标记,并将其附加到 Managed Service for Apache Spark 虚拟机,以确保创建的系统防火墙政策仅应用于 Managed Service for Apache Spark 虚拟机。
共享 VPC 不支持自动创建的系统防火墙政策。
Managed Service for Apache Spark 和 VPC-SC 网络
借助 VPC Service Controls,网络管理员可以为 Google 托管式服务的资源定义安全边界,以控制与这些服务的通信以及这些服务之间的通信。
将 VPC-SC 网络与 Managed Service for Apache Spark 搭配使用时,请考虑以下策略:
创建在 VPC-SC 边界外预安装依赖项的自定义容器映像,然后提交使用自定义容器映像的 Spark 批处理工作负载。
如需了解详情,请参阅 VPC Service Controls - Managed Service for Apache Spark。