本页面介绍了如何在 Cloud Data Fusion。
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 提供的使用方端控制。
下图展示了 Private Service Connect 接口 部署在 Cloud Data Fusion 中:
图 1. Private Service Connect 接口的部署
图 1 的说明:
运行 Cloud Data Fusion 的虚拟机 (VM) 托管在 Google 拥有的租户项目。如需访问客户 VPC 中的资源,请执行以下操作: Cloud Data Fusion 虚拟机使用由 Private Service Connect 网络接口,从客户的 子网此子网已添加到 Cloud Data Fusion。
系统会以与同一子网中的虚拟机类似的方式处理来自 Private Service Connect 接口的 IP 数据包。这个 使 Cloud Data Fusion 能够直接访问 客户 VPC 或对等 VPC,而无需代理。
在 客户 VPC 网络,而本地资源可通过 互连方式。
如需管理 Private Service Connect 的入站流量或出站流量, 您可以实施防火墙规则
主要优势
以下是将 Cloud Data Fusion 与 Private Service Connect:
更好地控制 IP 空间。您可以控制 Cloud Data Fusion 用于连接到您的网络。您自行选择子网 从中将 IP 地址分配给 Cloud Data Fusion。所有 来自 Cloud Data Fusion 的流量具有来自您的 配置的子网
Private Service Connect 无需预留 IP 来自客户 VPC 的 IP 地址。VPC 对等互连需要 /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 实例存在于服务项目中,并且 使用来自服务项目的网络连接建立专用连接 连接。
系统会为 Cloud Data Fusion 实例分配该子网中的 IP 地址 位于共享 VPC 中。
准备工作
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 管理员 (
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.get
compute.networkAttachments.update
compute.networkAttachments.list
具有这些权限限制性最强的角色是 Compute Network Admin (
roles/compute.networkAdmin
) 角色。这些权限属于 Cloud Data Fusion API 服务代理 (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)用于 创建项目。这称为不可访问或预留范围。您可以使用 但是,Cloud Data Fusion 虚拟机无法 使用此范围连接到您的资源
在大多数情况下,这不是问题,因为无法访问的 CIDR 块默认位于非 RFC 1918 范围 (240.0.0.0/8) 内。如果您想控制 请参阅高级配置。
要使用以下内容创建 Cloud Data Fusion 实例: 启用 Private Service Connect,请按以下步骤操作:
控制台
在 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
:您的 网络连接。
高级配置
要实现子网共享,您可以将同一网络连接 多个 Cloud Data Fusion 实例。相比之下,如果您希望专用于 一个特定 Cloud Data Fusion 实例的子网,则必须 提供特定的网络连接,以供 Cloud Data Fusion 使用 实例。
建议:要将统一的防火墙政策应用于 Cloud Data Fusion 实例使用相同的网络连接。
如果您想控制应用无法访问的 /25 CIDR 地址块
Cloud Data Fusion,请在您进行集成时指定 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
:您的 网络连接。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 且不是响应数据包的任何流量。