本頁面說明如何在 Cloud Data Fusion 中設定 Private Service Connect。
Cloud Data Fusion 中的 Private Service Connect 簡介
Cloud Data Fusion 執行個體可能需要連線至位於地端部署、 Google Cloud或其他雲端服務供應商的資源。使用內部 IP 位址搭配 Cloud Data Fusion 時,系統會透過Google Cloud 專案中的虛擬私有雲 (VPC) 網路,建立與外部資源的連線。網路流量不會經過公開網際網路。使用 VPC 對等互連為 Cloud Data Fusion 提供虛擬私有雲網路存取權時,會受到限制,使用大型網路時會更加明顯。
透過 Private Service Connect 介面,Cloud Data Fusion 可連線至您的虛擬私有雲,不必使用虛擬私有雲對等互連。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 擁有的租戶專案中。如要存取客戶虛擬私有雲中的資源,Cloud Data Fusion VM 會使用客戶子網路中,由 Private Service Connect 網路介面指派的 IP 位址。這個子網路會新增至 Cloud Data Fusion 使用的網路連結。
來自 Private Service Connect 介面的 IP 封包,會以類似於來自相同子網路中 VM 的封包方式處理。這項設定可讓 Cloud Data Fusion 直接存取客戶虛擬私有雲或對等互連虛擬私有雲中的資源,無須使用 Proxy。
在客戶虛擬私有雲中啟用 Cloud NAT 後,即可存取網際網路資源,而地端部署資源則可透過互連存取。
如要管理 Private Service Connect 的輸入或輸出流量,可以實作防火牆規則。
主要優點
搭配 Private Service Connect 使用 Cloud Data Fusion 的主要優點如下:
更完善的 IP 空間控制功能。您可以控管 Cloud Data Fusion 用於連線至網路的 IP 位址。您可以選擇要將 IP 位址分配給 Cloud Data Fusion 的子網路。Cloud Data Fusion 的所有流量都會使用您設定的子網路中的來源 IP 位址。
Private Service Connect 可免除從客戶虛擬私有雲保留 IP 位址的需求。VPC 對等互連需要每個 Cloud Data Fusion 執行個體使用 /22 CIDR 區塊 (1024 個 IP 位址)。
提升安全性和隔離效果。設定網路附件後,您就能控管哪些服務可以存取網路。
簡化 Cloud Data Fusion 執行個體設定。每個客戶 VPC 只能建立一次網路附件。不需要使用 Proxy VM 連線至網際網路、對等互連 VPC 或地端部署的資源。
基本概念
本節說明 Cloud Data Fusion 中 Private Service Connect 的相關概念。
網路連結
網路連結是一種區域性資源,可授權 Cloud Data Fusion 使用及建立私人網路連線,存取虛擬私有雲中的資源。詳情請參閱「關於網路連結」。
共用虛擬私有雲
以下是搭配共用虛擬私有雲使用 Private Service Connect 介面的用途:
網路或基礎架構團隊擁有主專案中的子網路。應用程式團隊可透過這些子網路使用服務專案。
應用程式團隊擁有服務專案中的網路連結。網路連結會定義哪些 Cloud Data Fusion 租戶專案可以連線至與網路連結相關聯的子網路。
您可以在服務專案中建立網路連結。網路附件中使用的子網路只能位於主專案中。
下圖說明這個應用情境:

圖 2:搭配共用虛擬私有雲使用 Private Service Connect 介面的用途
圖 2 說明:
服務專案中存在網路連結。網路附件會使用屬於主專案中 Shared VPC 的子網路。
Cloud Data Fusion 執行個體位於服務專案中,並使用服務專案中的網路連結建立私人連線。
系統會從 Shared 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 管理員 (
roles/datafusion.admin) - 建立、查看及刪除網路附件:Compute 網路管理員 (
roles/compute.networkAdmin)
為確保 Cloud Data Fusion 擁有驗證網路設定的必要權限,請要求管理員在專案中,授予 Cloud Data Fusion 服務代理人 (格式為 service-CUSTOMER_PROJECT_NUMBER@gcp-sa-datafusion.iam.gserviceaccount.com) 下列 IAM 角色:
與網路附件相關聯的虛擬私有雲:Compute 網路檢視者 (
roles/compute.networkViewer)如要讓 Cloud Data Fusion 將租戶專案新增至網路連結的生產者接受清單:
compute.networkAttachments.getcompute.networkAttachments.updatecompute.networkAttachments.list
具備這些權限且限制最多的角色是 Compute 網路管理員 (
roles/compute.networkAdmin) 角色。這些權限屬於「Cloud Data Fusion API 服務代理人」(roles/datafusion.serviceAgent) 角色,系統會自動將這個角色授予 Cloud Data Fusion 服務代理人。因此,除非明確移除服務代理程式角色授權,否則無須採取任何行動。
如要進一步瞭解如何授予角色,請參閱「管理存取權」。
如要進一步瞭解 Cloud Data Fusion 中的存取控管選項,請參閱「使用 IAM 控管存取權」。
建立虛擬私有雲或 Shared VPC 網路
確認您已建立虛擬私有雲網路或Shared VPC 網路。
設定 Private Service Connect
如要在 Cloud Data Fusion 中設定 Private Service Connect,您必須先建立網路連結,然後建立使用 Private Service Connect 的 Cloud Data Fusion 執行個體。
建立網路連結
網路連結會提供一組子網路。如要建立網路附件,請按照下列步驟操作:
控制台
前往 Google Cloud 控制台的「Network attachments」(網路附件) 頁面:
按一下「Create network attachment」(建立網路連結)。
在「Name」(名稱) 欄位中,輸入網路連結的名稱。
從「Network」(網路) 清單中,選取虛擬私有雲或 Shared VPC 網路。
從「Region」(區域) 清單中選取 Google Cloud 區域。這個區域必須與 Cloud Data Fusion 執行個體相同。
在「Subnetwork」(子網路) 清單中,選取子網路範圍。
在「連線偏好設定」中,選取「接受所選專案的連線」。
建立 Cloud Data Fusion 執行個體時,Cloud Data Fusion 會自動將 Cloud Data Fusion 租戶專案新增至「Accepted projects」(接受的專案) 清單。
請勿新增「已接受專案」或「遭拒的專案」。
按一下「Create network attachment」(建立網路連結)。

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 VM 無法使用這個範圍與資源連線。
在大多數情況下,這並非問題,因為無法連線的 CIDR 區塊預設位於非 RFC 1918 範圍 (240.0.0.0/8)。如要控管無法連線的範圍,請參閱進階設定。
如要建立已啟用 Private Service Connect 的 Cloud Data Fusion 執行個體,請按照下列步驟操作:
控制台
前往 Google Cloud 控制台的 Cloud Data Fusion「Instances」(執行個體) 頁面,然後按一下「Create instance」(建立執行個體)。
在「Instance name」(執行個體名稱) 欄位中,輸入新執行個體的名稱。
在「Description」(說明) 欄位輸入執行個體的說明。
從「Region」(區域) 清單中,選取要建立執行個體的 Google Cloud 區域。
從「Version」(版本) 清單中,選取
6.10以上版本。選取一個「Edition」(版本)。如要進一步瞭解不同版本的定價,請參閱 Cloud Data Fusion 定價總覽。
展開「Advance options」(進階選項) 並執行下列操作:
選取「Enable private IP」(啟用私人 IP)。
選取「Private Service Connect」做為「連線類型」。
在「Network attachment」(網路連結) 區段中,選取您在「建立網路連結」中建立的網路連結。
點按「Create」(建立)。執行個體建立程序最多需要 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 VM 會封鎖來自 VPC 的所有流量,但回應封包除外。
連結用途的步驟
以下各節說明私人執行個體的連線相關用途。
啟用 Private Google Access
如要透過內部 IP 位址存取資源,Cloud Data Fusion 必須建立 Managed Service for Apache Spark 叢集,並在具備 Private Google Access 的子網路中執行資料管道。您必須為包含 Managed Service for Apache Spark 叢集的子網路啟用 Private Google Access。
- 如果啟動 Managed Service for Apache Spark 叢集的區域只有一個子網路,叢集就會在該子網路中啟動。
如果某個區域有多個子網路,您必須設定 Cloud Data Fusion,選取具有 Private Google Access 的子網路,才能啟動 Managed Service for Apache Spark 叢集。
如要為子網路啟用 Private Google Access,請參閱Private Google Access 設定。
選用:啟用 DNS 對等互連
在下列情況下啟用 DNS 對等互連:
- Cloud Data Fusion 透過主機名稱 (而非 IP 位址) 連線至系統
- 如果目標系統部署在負載平衡器後方,例如某些 SAP 部署作業