在 Cloud Data Fusion 中,Private Service Connect 接口可让您在实例与虚拟私有云 (VPC) 或本地网络中的资源之间建立专用连接。此设置可让设计时操作(例如连接验证和预览)使用专用 IP 地址,而不会将工作负载暴露给公共互联网。
Cloud Data Fusion 中的 Private Service Connect 简介
Cloud Data Fusion 实例可能需要连接到位于 本地、 Google Cloud或位于其他云提供商处的资源。将 Cloud Data Fusion 与内部 IP 地址搭配使用时,与外部 资源的连接是通过项目中的虚拟私有云 (VPC) 网络建立的。 Google Cloud 网络上的流量不会通过公共互联网。当 Cloud Data Fusion 使用 VPC 对等互连获得对 VPC 网络的访问权限时,存在一些限制,这些限制在使用大规模网络时会变得很明显。
借助 Private Service Connect 接口,Cloud Data Fusion 无需使用 VPC 对等互连即可连接到 VPC。 Private Service Connect 接口是一种 Private Service Connect,可让 Cloud Data Fusion 发起与使用方 VPC 网络的专用安全 连接。这不仅提供了灵活性和易用性(如 VPC 对等互连),还提供了 Private Service Connect 提供的显式授权和使用方控制。
下图展示了如何在 Cloud Data Fusion 中部署 Private Service Connect 接口:

图 1. Private Service Connect 接口的部署
图 1 说明:
运行 Cloud Data Fusion 的虚拟机 (VM) 托管在 Google 拥有的租户项目中。如需访问客户 VPC 中的资源,Cloud Data Fusion 虚拟机使用由 Private Service Connect 网络接口分配的 IP 地址(来自客户的子网)。此子网会添加到 Cloud Data Fusion 使用的网络连接中。
来自 Private Service Connect 接口的 IP 数据包的处理方式与来自同一子网中虚拟机的 IP 数据包类似。借助此配置,Cloud Data Fusion 可以直接访问客户 VPC 或对等互连 VPC 中的资源,而无需代理。
在客户 VPC 中启用 Cloud NAT 后,互联网资源即可访问,而本地资源可通过互连访问。
如需管理来自 Private Service Connect 的入站流量或出站流量,您可以实现防火墙规则。
主要优势
以下是将 Cloud Data Fusion 与 Private Service Connect 搭配使用的主要优势:
更好地控制 IP 空间 。您可以控制 Cloud Data Fusion 用于连接到网络的 IP 地址。您可以选择将 IP 地址分配给 Cloud Data Fusion 的子网。来自 Cloud Data Fusion 的所有流量都具有来自您配置的子网的源 IP 地址。
Private Service Connect 无需从客户 VPC 中预留 IP 地址。VPC 对等互连需要每个 Cloud Data Fusion 实例使用 /22 CIDR 块(1024 个 IP 地址)。
提高安全性和隔离性 。通过配置网络连接,您可以控制哪些服务可以访问您的网络。
简化 Cloud Data Fusion 实例设置 。每个客户 VPC 只需创建一次网络连接。无需使用代理虚拟机连接到互联网、对等互连 VPC 或本地资源。
主要概念
本部分介绍了 Cloud Data Fusion 中 Private Service Connect 涉及的概念。
网络连接
网络连接是一种区域级资源,用于授权 Cloud Data Fusion 使用专用网络连接,以便访问 VPC 中的资源。如需了解详情,请参阅 关于网络连接。
共享 VPC
以下是将 Private Service Connect 接口与共享 VPC 搭配使用的用例:
网络团队或基础架构团队拥有宿主项目中的子网。他们允许应用团队从其服务项目中使用这些子网。
应用团队拥有服务项目中的网络连接。网络连接定义了哪些 Cloud Data Fusion 租户项目可以连接到与网络连接关联的子网。
您可以在服务项目中创建网络连接。网络连接中使用的子网只能位于宿主项目中。
下图展示了此用例:

图 2. 将 Private Service Connect 接口与共享 VPC 搭配使用的用例
图 2 说明:
网络连接位于服务项目中。网络连接使用属于宿主项目中共享 VPC 的子网。
Cloud Data Fusion 实例位于服务项目中,它使用服务项目中的网络连接来建立专用连接。
系统会从共享 VPC 中的子网为 Cloud Data Fusion 实例分配 IP 地址。
准备工作
Private Service Connect 仅在 Cloud Data Fusion 6.10.0 及更高版本中提供。
您只能在创建新的 Cloud Data Fusion 实例时启用 Private Service Connect。您无法迁移现有实例以使用 Private Service Connect。
价格
通过 Private Service Connect 进行数据入站和出站会产生费用。如需了解详情,请参阅 Private Service Connect 价格。
所需的角色和权限
如需获得创建 Cloud Data Fusion 实例和网络连接所需的权限,请让您的管理员向您授予项目的以下 Identity and Access Management (IAM) 角色:
- 创建 Cloud Data Fusion 实例:
Cloud Data Fusion Admin (
roles/datafusion.admin) - 创建、查看和删除网络连接:
Compute Network Admin (
roles/compute.networkAdmin)
如需确保 Cloud Data Fusion 具有验证
网络配置所需的权限,请让您的管理员向
Cloud Data Fusion 服务代理
(格式为 service-CUSTOMER_PROJECT_NUMBER@gcp-sa-datafusion.iam.gserviceaccount.com)
授予项目的以下 IAM 角色:
对于与网络连接关联的 VPC: Compute Network Viewer (
roles/compute.networkViewer)对于 Cloud Data Fusion 将其租户项目添加到网络连接的提供方接受列表:
compute.networkAttachments.getcompute.networkAttachments.updatecompute.networkAttachments.list
具有这些权限的最严格的角色是 Compute Network Admin (
roles/compute.networkAdmin) 角色。这些权限属于 Cloud Data Fusion API Service Agent (roles/datafusion.serviceAgent) 角色,该角色会自动授予给 Cloud Data Fusion 服务代理。因此,除非明确移除了服务代理角色授予,否则无需执行任何操作。
如需详细了解如何授予角色,请参阅 管理访问权限。
您也可以通过 自定义角色或其他 预定义角色来获取所需的权限。
如需详细了解 Cloud Data Fusion 中的访问权限控制选项, 请参阅 使用 IAM 进行访问权限控制。
创建 VPC 或共享 VPC 网络
配置 Private Service Connect
如需在 Cloud Data Fusion 中配置 Private Service Connect,您必须先创建网络连接,然后创建配置了 Private Service Connect 的 Cloud Data Fusion 实例。
创建网络连接
网络连接提供了一组子网。如需创建网络连接,请按照以下步骤操作:
控制台
在 Google Cloud 控制台中,前往 网络连接 页面:
点击创建网络连接 。
在名称 字段中,为网络连接输入名称。
从网络 列表中,选择一个 VPC 或共享 VPC 网络。
从区域 列表中,选择一个 Google Cloud 区域。此区域必须与 Cloud Data Fusion 实例相同。
从子网 列表中,选择一个子网范围。
在连接偏好设置 中,选择 接受选定项目的连接。
创建 Cloud Data Fusion 实例时,Cloud Data Fusion 会自动将 Cloud Data Fusion 租户项目添加到接受的项目 列表中。
请勿添加接受的项目 或拒绝的项目 。
点击创建网络连接 。

gcloud
创建一个或多个子网。例如:
gcloud compute networks subnets create subnet-1 --network=network-0 --range=10.10.1.0/24 --region=REGION网络连接会在后续步骤中使用这些子网。
在与 Cloud Data Fusion 实例相同的区域中创建网络连接资源,并将
connection-preference属性设置为ACCEPT_MANUAL:gcloud compute network-attachments create NAME --region=REGION --connection-preference=ACCEPT_MANUAL --subnets=SUBNET替换以下内容:
NAME:网络连接的名称。REGION: Google Cloud 区域的名称。 此区域必须与 Cloud Data Fusion 实例相同。SUBNET:子网的名称。
此命令的输出是以下格式的网络连接网址:
projects/PROJECT/locations/REGION/network-attachments/NETWORK_ATTACHMENT_ID。请记下此网址,因为 Cloud Data Fusion 需要它才能进行连接。
REST API
创建子网。
创建网络连接:
alias authtoken="gcloud auth print-access-token" NETWORK_ATTACHMENT_NAME=NETWORK_ATTACHMENT_NAME REGION=REGION SUBNET=SUBNET PROJECT_ID=PROJECT_ID read -r -d '' BODY << EOM { "name": "$NETWORK_ATTACHMENT_NAME", "description": "Network attachment for private Cloud Data Fusion", "connectionPreference": "ACCEPT_MANUAL", "subnetworks": [ "projects/$PROJECT_ID/regions/$REGION/subnetworks/$SUBNET" ] } EOM curl -H "Authorization: Bearer $(authtoken)" \ -H "Content-Type: application/json" \ -X POST -d "$BODY" "https://compute.googleapis.com/compute/v1/projects/$PROJECT_ID/regions/$REGION/networkAttachments"替换以下内容:
NETWORK_ATTACHMENT_NAME:网络连接的名称。REGION: Google Cloud 区域的名称。 此区域必须与 Cloud Data Fusion 实例相同。SUBNET:子网的名称。PROJECT_ID:您的项目的 ID。
创建 Cloud Data Fusion 实例
Cloud Data Fusion 为租户项目中的资源使用 /25 CIDR 块(128 个 IP 地址)。这称为不可访问或预留范围。您可以在 VPC 中使用相同的 IP 地址,但 Cloud Data Fusion 虚拟机将无法使用此范围连接到您的资源。
在大多数情况下,这不是问题,因为不可访问的 CIDR 块默认位于非 RFC 1918 范围 (240.0.0.0/8) 中。如果您想控制 不可访问的范围,请参阅高级配置。
如需创建启用了 Private Service Connect 的 Cloud Data Fusion 实例,请按照以下步骤操作:
控制台
在 Google Cloud 控制台中,前往 Cloud Data Fusion 实例 页面,然后点击创建实例。
在实例名称 字段中,为新实例输入名称。
在说明 字段中,为实例输入说明。
从区域 列表中,选择要在其中 Google Cloud 创建实例的区域。
从版本 列表中,选择
6.10或更高版本。选择版本 。如需详细了解不同 版本的价格,请参阅 Cloud Data Fusion 价格概览。
展开高级选项 并执行以下操作:
选择启用专用 IP 。
选择 Private Service Connect 作为连接类型 。
在网络连接 部分中,选择您在创建网络连接中创建的网络连接 。
点击创建 。最长可能需要 30 分钟才能完成实例创建过程。

REST API
运行以下命令:
alias authtoken="gcloud auth print-access-token"
EDITION=EDITION
PROJECT_ID=PROJECT_ID
REGION=REGION
CDF_ID=INSTANCE_ID
NETWORK_ATTACHMENT_ID=NETWORK_ATTACHMENT_ID
read -r -d '' BODY << EOM
{
"description": "PSC enabled instance",
"version": "6.10",
"type": "$EDITION",
"privateInstance": "true",
"networkConfig": {
"connectionType": "PRIVATE_SERVICE_CONNECT_INTERFACES",
"privateServiceConnectConfig": {
"networkAttachment": "$NETWORK_ATTACHMENT_ID"
}
}
}
EOM
curl -H "Authorization: Bearer $(authtoken)" \
-H "Content-Type: application/json" \
-X POST -d "$BODY" "https://datafusion.googleapis.com/v1/projects/$PROJECT_ID/locations/$REGION/instances/?instanceId=$CDF_ID"
替换以下内容:
EDITION:Cloud Data Fusion 版本 -BASIC、DEVELOPER或ENTERPRISE。PROJECT_ID:您的项目的 ID。REGION: Google Cloud 区域的名称。 此区域必须与 Cloud Data Fusion 实例相同。INSTANCE_ID:您的实例的 ID。NETWORK_ATTACHMENT_ID:您的网络连接的 ID。
高级配置
如需启用子网共享,您可以向多个 Cloud Data Fusion 实例提供相同的网络连接。相反,如果您想为特定的 Cloud Data Fusion 实例专用子网,则必须提供特定的网络连接,供 Cloud Data Fusion 实例使用。
建议:如需对所有 Cloud Data Fusion 实例应用统一的防火墙政策,请使用相同的网络连接。
如果您想控制 Cloud Data Fusion 无法访问的 /25 CIDR 块,请在创建实例时指定 unreachableCidrBlock 属性。例如:
alias authtoken="gcloud auth print-access-token"
EDITION=EDITION
PROJECT_ID=PROJECT_ID
REGION=REGION
CDF_ID=INSTANCE_ID
NETWORK_ATTACHMENT_ID=NETWORK_ATTACHMENT_ID
UNREACHABLE_RANGE=UNREACHABLE_RANGE
read -r -d '' BODY << EOM
{
"description": "PSC enabled instance",
"version": "6.10",
"type": "$EDITION",
"privateInstance": "true",
"networkConfig": {
"connectionType": "PRIVATE_SERVICE_CONNECT_INTERFACES",
"privateServiceConnectConfig": {
"unreachableCidrBlock": "$UNREACHABLE_RANGE",
"networkAttachment": "projects/$PROJECT_ID/regions/$REGION/networkAttachments/$NETWORK_ATTACHMENT_ID"
}
}
}
EOM
curl -H "Authorization: Bearer $(authtoken)" \
-H "Content-Type: application/json" \
-X POST -d "$BODY" "https://datafusion.googleapis.com/v1/projects/$PROJECT_ID/locations/$REGION/instances/?instanceId=$CDF_ID"
替换以下内容:
EDITION:Cloud Data Fusion 版本 -BASIC、DEVELOPER或ENTERPRISE。PROJECT_ID:您的项目的 ID。REGION: Google Cloud 区域的名称。 此区域必须与 Cloud Data Fusion 实例相同。INSTANCE_ID:您的实例的 ID。NETWORK_ATTACHMENT_ID:您的网络连接的 ID。UNREACHABLE_RANGE:不可访问的范围,例如10.0.0.0/25。
安全
本部分介绍了 Cloud Data Fusion 与使用方之间的安全。
Cloud Data Fusion 到使用方的安全
Private Service Connect 接口支持出站防火墙规则,以控制 Cloud Data Fusion 可以在 VPC 中访问的内容。 如需了解详情,请参阅 限制从提供方到使用方的入站流量。
使用方到 Cloud Data Fusion 的安全
具有 Private Service Connect 接口的 Cloud Data Fusion 虚拟机将阻止来自 VPC 且不是响应数据包的任何流量。
连接用例的步骤
以下部分介绍了专用实例的连接相关用例。
启用专用 Google 访问通道
如需通过内部 IP 地址访问资源,Cloud Data Fusion 必须创建 Managed Service for Apache Spark 集群,并在具有专用 Google 访问通道的子网中运行数据流水线。您必须为包含 Managed Service for Apache Spark 集群的子网启用专用 Google 访问通道。
- 如果 Managed Service for Apache Spark 集群启动的区域中只有一个子网,则集群会在该子网中启动。
如果一个区域中有多个子网,您必须配置 Cloud Data Fusion 以选择具有专用 Google 访问通道的子网来启动 Managed Service for Apache Spark 集群。
如需为子网启用专用 Google 访问通道,请参阅 专用 Google 访问通道配置。
可选:启用 DNS 对等互连
在以下情况下启用 DNS 对等互连:
- 当 Cloud Data Fusion 通过主机名(而非 IP 地址)连接到系统时
- 当目标系统部署在负载均衡器后时,例如在某些 SAP 部署中