本頁面說明如何在 Cloud Data Fusion 中設定 Private Service Connect。
關於 Cloud Data Fusion 中的 Private Service Connect
Cloud Data Fusion 執行個體可能需要連結至地端、 Google Cloud或其他雲端服務供應商的資源。使用內部 IP 位址的 Cloud Data Fusion 時,系統會透過Google Cloud 專案中的虛擬私有雲 (VPC) 網路,建立與外部資源的連線。網路上的流量不會經過公開網際網路。當 Cloud Data Fusion 透過 VPC 對等互連功能取得虛擬私有雲網路存取權時,會受到限制,這在使用大型網路時會更加明顯。
透過 Private Service Connect 介面,Cloud Data Fusion 可連線至您的 VPC,而無需使用 VPC 對等互連功能。Private Service Connect 介面是一種 Private Service Connect,可讓 Cloud Data Fusion 啟動私人且安全的用戶虛擬私有雲網路連線。這不僅提供彈性和簡易的存取方式 (例如 VPC 對等互連),還提供 Private Service Connect 提供的明確授權和消費者端控管機制。
下圖顯示如何在 Cloud Data Fusion 中部署 Private Service Connect 介面:
圖 1. 部署 Private Service Connect 介面
圖 1 說明:
執行 Cloud Data Fusion 的虛擬機器 (VM) 會在 Google 自有的租用戶專案中代管。為了存取客戶虛擬私有雲中的資源,Cloud Data Fusion VM 會使用由 Private Service Connect 網路介面指派的 IP 位址,該 IP 位址來自客戶的子網路。這個子網路會新增至 Cloud Data Fusion 使用的網路連結。
來自 Private Service Connect 介面的 IP 封包,會與來自相同子網路中的 VM 封包一樣受到處理。這項設定可讓 Cloud Data Fusion 直接存取客戶虛擬私有雲或對等虛擬私有雲中的資源,而不需要使用 Proxy。
在客戶的 VPC 中啟用 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 位址。每個 Cloud Data Fusion 執行個體都需要一個 /22 CIDR 區塊 (1024 個 IP 位址)。
提升安全性和隔離功能。設定網路附件後,您就能控管哪些服務可以存取網路。
簡化 Cloud Data Fusion 執行個體設定程序。每個客戶的虛擬私有雲網路只能建立一次網路附件。不需要使用 Proxy VM 連線至網際網路、對等 VPC 或內部部署的資源。
基本概念
本節說明 Cloud Data Fusion 中 Private Service Connect 的相關概念。
網路連結
網路連結是一種區域性資源,可以授權 Cloud Data Fusion 使用私人網路連線,存取虛擬私有雲內的資源。詳情請參閱「關於網路連結」。
共用虛擬私有雲
以下是 Private Service Connect 與共用虛擬私人雲端介面的用途:
主專案中的子網路由網路或基礎架構團隊擁有。讓應用程式團隊使用服務專案中的這些子網路。
應用程式團隊擁有服務專案中的網路連結。網路附件會定義哪些 Cloud Data Fusion 租用戶專案可以連線至與網路附件連結的子網路。
您可以在服務專案中建立網路連結。網路附件中使用的子網路只能位於主專案中。
下圖說明此用途:
圖 2:搭配共用虛擬私有雲的 Private Service Connect 介面用途
圖 2 說明:
網路連結會顯示在服務專案中。網路附件使用主專案中共用虛擬私有雲的子網路。
Cloud Data Fusion 執行個體會顯示在服務專案中,並使用服務專案中的網路連結建立私人連線。
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 執行個體和網路連結所需的權限,請要求管理員在專案中授予您下列身分和存取權管理 (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 角色:
針對與網路連結相關聯的 VPC: Compute 網路檢視器 (
roles/compute.networkViewer
)如要讓 Cloud Data Fusion 將其租戶專案新增至網路附件中的產生者接受清單,請按照下列步驟操作:
compute.networkAttachments.get
compute.networkAttachments.update
compute.networkAttachments.list
具備這些權限的角色中,限制最嚴格的角色是 Compute 網路管理員 (
roles/compute.networkAdmin
) 角色。這些權限是 Cloud Data Fusion API 服務代理人 (roles/datafusion.serviceAgent
) 角色的一部分,會自動授予 Cloud Data Fusion 服務代理人。因此,除非服務代理角色授權已明確移除,否則您不需要採取任何行動。
如要進一步瞭解如何授予角色,請參閱「管理存取權」。
如要進一步瞭解 Cloud Data Fusion 中的存取控管選項,請參閱「使用 IAM 控管存取權」。
建立虛擬私有雲或共用虛擬私有雲網路
設定 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」(網路連結) 部分,選取您在「建立網路連結」中建立的網路連結。
按一下「建立」,執行個體建立程序最多需要 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 在虛擬私有雲內可存取的內容。詳情請參閱「限制生產者到消費者的入站流量」。
消費者與 Cloud Data Fusion 安全性
使用 Private Service Connect 介面的 Cloud Data Fusion VM 會封鎖任何來自 VPC 且非回應封包的流量。