本頁說明如何在 Distributed Cloud connected 區域中,建立及管理 Google Distributed Cloud connected VPN 連線資源。
這項功能僅適用於 Distributed Cloud 連線機架。 Distributed Cloud 連線伺服器不支援 VPN 連線資源。
如要進一步瞭解 Distributed Cloud VPN 連線,請參閱「Distributed Cloud connected 的運作方式」。
請注意以下幾點:
您必須設定網路,允許 Distributed Cloud VPN 連線所需的流量。
建立 Distributed Cloud VPN 連線時,Distributed Cloud Connected 會建立必要的 Cloud VPN 閘道和 Cloud Router 資源。Cloud VPN 閘道的名稱會加上
anthos-mcc前置字元。Cloud Router 的名稱會加上gdce前置字元。請勿修改這些資源,否則 Distributed Cloud VPN 連線可能會停止運作。如果您不慎修改這些資源,必須刪除並重新建立受影響的 Distributed Cloud VPN 連線。在該Google Cloud 專案和區域中建立第一個 Distributed Cloud VPN 連線時,Distributed Cloud Connected 會為每個 Google Cloud 專案和區域建立一個 Cloud Router。在該 Google Cloud 專案和區域中建立的所有後續 VPN 連線,都會重複使用相同的 Cloud Router 資源。
只有在沒有任何次要網路介面附加至 Cloud Router 資源時,才能刪除該資源。當您刪除最後一個附加的 VPN 連線時,Distributed Cloud 連線會自動刪除 Cloud Router。
Distributed Cloud VPN 連線僅支援 IPv4 位址。
每個 Distributed Cloud 連線叢集只能建立一個 VPN 連線。
如果本機網路使用多個網路位址轉譯 (NAT) 閘道,您必須設定這些閘道,讓 Distributed Cloud 連線安裝程序使用單一 IP 位址,將輸出流量傳送至虛擬私有雲 (VPC) 網路。
根據預設,Distributed Cloud Connected 會在單一節點上設定單一 VPN 用戶端,透過兩個 VPN 通道連線至 Google Cloud ,也就是 Google Cloud 端的高可用性 VPN。您可以使用
--high-availability旗標,進一步提高 VPN 連線的可用性。這個旗標會指示 Distributed Cloud Connected 在兩個不同的節點上設定兩個 VPN 用戶端,總共四個 VPN 通道。如要變更 VPN 連線的設定,必須刪除並重新建立連線。
您可以使用 Google Cloud CLI 或 Distributed Cloud Edge Container API 管理 VPN 連線。
建立 VPN 連線
如要建立 Distributed Cloud VPN 連線,請完成本節中的步驟。
如要完成這項工作,您必須在 Google Cloud 專案中擁有Edge Container 管理員角色roles/edgecontainer.admin。
gcloud
使用 gcloud edge-cloud container vpn-connections create 指令:
gcloud edge-cloud container vpn-connections create VPN_CONNECTION_NAME \
--project=PROJECT_ID \
--location=REGION \
--cluster=CLUSTER_NAME \
--vpc-network=VPC_NETWORK_NAME \
--nat-gateway-ip=NAT_GATEWAY_IP \
--router=ROUTER_NAME \
--high-availability
更改下列內容:
VPN_CONNECTION_NAME:可清楚識別這個 VPN 連線的專屬名稱。PROJECT_ID:目標 Google Cloud 專案的 ID。REGION:建立目標 Distributed Cloud connected 區域的 Google Cloud 區域。CLUSTER_NAME:目標 Distributed Cloud 連結叢集的名稱。VPC_NETWORK_NAME:這個 VPN 連線指向的目標虛擬私有雲網路名稱。這個網路必須與 Distributed Cloud 連線安裝位於相同 Google Cloud 專案。NAT_GATEWAY_IP:目標叢集的 NAT 閘道 IP 位址。如果未使用 NAT,請略過這個旗標。ROUTER_NAME(選用):指定要用於此 VPN 連線的現有 Cloud Router 資源。否則,如果目標Google Cloud 專案和區域中尚未有 Cloud Router,Distributed Cloud 連結網路方案會自動建立一個。--high-availability(選用):在叢集端設定兩個獨立的 VPN 用戶端,分別在兩個獨立節點上執行,為這個 VPN 連線設定叢集端的高可用性。如要停用高可用性,請省略這個旗標。
API
對 projects.locations.vpnConnections.create 方法發出 POST 要求:
POST /v1/PROJECT_ID/locations/REGION/vpnConnections?vpnConnectionId=VPN_CONNECTION_ID&requestId=REQUEST_ID
{
"name": string,
"labels": {
},
"natGatewayIp": NAT_GATEWAY,
"cluster": CLUSTER_PATH,
"vpc": VPC_NETWORK_ID
"enableHighAvailability": HA_ENABLE,
"router": ROUTER_NAME,
}
更改下列內容:
PROJECT_ID:目標 Google Cloud 專案的 ID。REGION:建立目標 Distributed Cloud connected 區域的 Google Cloud 區域。VPN_CONNECTION_ID:這個節點集區資源的專屬程式輔助 ID。REQUEST_ID:用於識別這項要求的專屬程式輔助 ID。VPN_CONNECTION_NAME:可清楚識別這個 VPN 連線的專屬名稱。NAT_GATEWAY:NAT 閘道的 IP 位址。CLUSTER_PATH:目標叢集的完整標準路徑。VPC_NETWORK_ID:目標虛擬私有雲網路的 ID。HA_ENABLE:指出是否要在叢集端設定此 VPN 連線,以確保高可用性。如果設為TRUE,系統會設定兩個獨立的 VPN 用戶端,分別在兩個節點上執行。ROUTER_NAME(選用):指定要用於此 VPN 連線的現有 Cloud Router 資源。否則,如果目標Google Cloud 專案和區域中尚未有 Cloud Router,Distributed Cloud 連結網路方案會自動建立一個。
列出 VPN 連線
如要列出為 Distributed Cloud connected 叢集佈建的 VPN 連線,請完成本節中的步驟。
如要完成這項工作,您必須在 Google Cloud 專案中擁有Edge Container 檢視者角色roles/edgecontainer.viewer。
gcloud
使用 gcloud edge-cloud container vpn-connections list 指令:
gcloud edge-cloud container vpn-connections list \
--project=PROJECT_ID \
--location=REGION
更改下列內容:
PROJECT_ID:目標 Google Cloud 專案的 ID。REGION:建立目標 Distributed Cloud 區域的 Google Cloud 區域。
API
對 projects.locations.vpnConnections.list 方法發出 GET 要求:
GET /v1/PROJECT_ID/locations/REGION/vpnConnections?filter=FILTER&pageSize=PAGE_SIZE&orderBy=SORT_BY&pageToken=PAGE_TOKEN
更改下列內容:
PROJECT_ID:目標 Google Cloud 專案的 ID。REGION:建立目標 Distributed Cloud connected 區域的 Google Cloud 區域。FILTER:限制傳回結果為特定值的運算式。PAGE_SIZE:每頁要傳回的結果數。SORT_BY:以半形逗號分隔的欄位名稱清單,做為傳回結果的排序依據。預設排序順序為遞增;如要遞減排序,請在所需欄位前面加上~。PAGE_TOKEN:在回應的nextPageToken欄位中,對最後一個清單要求的回應中收到的權杖。傳送這個符記即可接收結果頁面。
取得 VPN 連線的相關資訊
如要取得 Distributed Cloud VPN 連線的相關資訊,請完成本節中的步驟。
如要完成這項工作,您必須在 Google Cloud 專案中擁有Edge Container 檢視者角色roles/edgecontainer.viewer。
gcloud
使用 gcloud edge-cloud container vpn-connections describe 指令:
gcloud edge-cloud container vpn-connections describe VPN_CONNECTION_NAME \
--project=PROJECT_ID \
--location=REGION
更改下列內容:
VPN_CONNECTION_NAME:目標 VPN 連線的名稱。PROJECT_ID:目標 Google Cloud 專案的 ID。REGION:建立目標 Distributed Cloud connected 區域的 Google Cloud 區域。
API
對 projects.locations.vpnConnections.get 方法發出 GET 要求:
GET /v1/PROJECT_ID/locations/REGION/vpnConnections/VPN_CONNECTION_NAME
更改下列內容:
PROJECT_ID:目標 Google Cloud 專案的 ID。REGION:建立目標 Distributed Cloud connected 區域的 Google Cloud 區域。VPN_CONNECTION_NAME:目標 VPN 連線的名稱。
刪除 VPN 連線
如要刪除 Distributed Cloud VPN 連線,請完成本節中的步驟。
如果您要刪除與 Distributed Cloud 先前在 Google Cloud 專案中建立的 Cloud Router 資源相關聯的最後一個 VPN 連線,刪除 VPN 連線時,系統會自動刪除相關聯的 Cloud Router 資源。不過,只有 Distributed Cloud 連結網路自動建立的 Cloud Router 資源,才會在這種情況下自動刪除。Distributed Cloud Connected 不會刪除使用 --router 旗標指定的現有 Cloud Router 資源。
如要完成這項工作,您必須在 Google Cloud 專案中擁有Edge Container 管理員角色roles/edgecontainer.admin。
gcloud
使用 gcloud edge-cloud container vpn-connections delete 指令:
gcloud edge-cloud container vpn-connections delete VPN_CONNECTION_NAME \
--location=REGION \
--project=PROJECT_ID
更改下列內容:
VPN_CONNECTION_NAME:可清楚識別這個 VPN 連線的專屬名稱。REGION:建立目標 Distributed Cloud connected 區域的 Google Cloud 區域。PROJECT_ID:目標 Google Cloud 專案的 ID。
API
對 projects.locations.vpnConnections.delete 方法發出 DELETE 要求:
DELETE /v1/PROJECT_ID/locations/REGION/vpnConnections/VPN_CONNECTION_NAME?requestId=REQUEST_ID
更改下列內容:
PROJECT_ID:目標 Google Cloud 專案的 ID。REGION:建立目標 Distributed Cloud connected 區域的 Google Cloud 區域。VPN_CONNECTION_NAME:目標 VPN 連線的名稱。REQUEST_ID:用於識別這項要求的專屬程式輔助 ID。
管理跨專案 VPN 連線
您也可以透過 Distributed Cloud Connected,在 Google Cloud 專案中建立與虛擬私有雲網路的 VPN 連線,該專案與包含 Distributed Cloud Connected 叢集的 Google Cloud 專案不同。
必要條件
您必須先滿足本節中的必要條件,才能建立跨專案 VPN 連線。
呼叫者帳戶權限
目標 VPC 專案中的呼叫者使用者帳戶必須具備下列權限。這些權限封裝在專案 IAM 管理員角色 (roles/resourcemanager.projectIamAdmin) 中:
resourcemanager.projects.getresourcemanager.projects.getIamPolicyresourcemanager.projects.setIamPolicy
如要瞭解如何設定 IAM 角色和權限,請參閱「管理專案、資料夾和機構的存取權」。
Distributed Cloud 服務帳戶權限
如要允許 Distributed Cloud 連線在目標 VPC 專案中建立 Cloud Router 和 Cloud VPN 資源,以啟用跨專案 VPN 連線,您必須在 Distributed Cloud 叢集中,將 Compute Network Admin 角色 (roles/compute.networkAdmin) 授予 Distributed Cloud 服務帳戶。
如要授予 Compute 網路管理員角色,請按照下列步驟操作。
gcloud
使用 gcloud projects add-iam-policy-binding 指令:
gcloud projects add-iam-policy-binding VPC_PROJECT_ID \
--member="serviceAccount:service-PROJECT_NUM@gcp-sa-edgecontainer.iam.gserviceaccount.com" \
--role="roles/compute.networkAdmin" \
--project=VPC_PROJECT_ID
更改下列內容:
VPC_PROJECT_ID:目標 VPC 專案的 ID。PROJECT_NUM:目標 Distributed Cloud Google Cloud 專案的編號。
建立跨專案 VPN 連線
如要建立與其他Google Cloud 專案中虛擬私有雲網路的 VPN 連線,請完成本節中的步驟。
gcloud
使用 gcloud edge-cloud container vpn-connections create 指令:
gcloud edge-cloud container vpn-connections create VPN_CONNECTION_NAME \
--project=PROJECT_ID \
--location=REGION \
--cluster=CLUSTER_NAME \
--vpc-project=VPC_PROJECT_ID \
--vpc-network=VPC_NETWORK_NAME \
--nat-gateway-ip=NAT_GATEWAY_IP \
--high-availability
更改下列內容:
VPN_CONNECTION_NAME:可清楚識別這個 VPN 連線的專屬名稱。PROJECT_ID:目標 Distributed Cloud 連線叢集專案的 ID Google Cloud 。REGION:建立目標 Distributed Cloud connected 區域的 Google Cloud 區域。CLUSTER_NAME:目標 Distributed Cloud 連結叢集的名稱。VPC_PROJECT_ID:包含目標虛擬私有雲網路的目標Google Cloud 專案 ID。VPC_NETWORK_NAME:這個 VPN 連線指向的目標虛擬私有雲網路名稱。NAT_GATEWAY_IP:目標叢集的 NAT 閘道 IP 位址。如果未使用 NAT,請略過這個旗標。--high-availability(選用):在叢集端設定兩個獨立的 VPN 用戶端,分別在兩個獨立節點上執行,為這個 VPN 連線設定高可用性。如要停用高可用性,請省略這個旗標。
API
對 projects.locations.vpnConnections.create 方法發出 POST 要求:
POST /v1/PROJECT_ID/locations/REGION/vpnConnections?vpnConnectionId=VPN_CONNECTION_ID&requestId=REQUEST_ID
{
"name": string,
"labels": {
},
"natGatewayIp": NAT_GATEWAY,
"cluster": CLUSTER_PATH,
"vpc": VPC_NETWORK_ID,
"vpcProject": VPC_PROJECT_ID,
"vpcServiceAccount": var>VPC_PROJECT_SERVICE_ACCOUNT,
"enableHighAvailability": HA_ENABLE,
}
更改下列內容:
PROJECT_ID:目標 Google Cloud 專案的 ID。REGION:建立目標 Distributed Cloud connected 區域的 Google Cloud 區域。VPN_CONNECTION_ID:這個節點集區資源的專屬程式輔助 ID。REQUEST_ID:用於識別這項要求的專屬程式輔助 ID。VPN_CONNECTION_NAME:可清楚識別這個 VPN 連線的專屬名稱。NAT_GATEWAY:NAT 閘道的 IP 位址。CLUSTER_PATH:目標叢集的完整標準路徑。VPC_NETWORK_ID:目標虛擬私有雲網路的 ID。VPC_PROJECT_ID:目標Google Cloud 專案的 ID,其中包含目標 VPC 網路。HA_ENABLE:指出是否要在叢集端設定此 VPN 連線,以確保高可用性。如果設為TRUE,系統會設定兩個獨立的 VPN 用戶端,分別在兩個節點上執行。
跨專案 VPN 連線的 Cloud 稽核記錄
建立跨專案 VPN 連線時,系統會依下列方式寫入 Cloud 稽核記錄:
- Distributed Cloud 連線叢集的稽核記錄會記錄跨專案 VPN 連線的長時間執行作業、驗證和授權資訊。這項資訊包括建立作業的呼叫者,以及呼叫者獲准或遭拒的權限。
- 目標 VPC 專案的稽核記錄會記錄啟用跨專案 VPN 連線的 Google Cloud 資源相關資訊,例如 Cloud Router 和 Cloud VPN 資源。存取這些資源的呼叫端是 Distributed Cloud 連線服務帳戶,您已將 Edge Container 服務代理角色 (
roles/edgecontainer.serviceAgent) 授予該帳戶。
VPN 連線的限制
如果您修改建立特定 VPN 連線的叢集節點集區,就必須刪除並重新建立該 VPN 連線。否則可能會發生非預期的行為,包括:
- VPN 連線不穩
- 無法在 Distributed Cloud 連線區域的其他叢集中建立 VPN 連線
跨專案 VPN 連線的限制
此外,跨專案 VPN 連線有下列限制:
- 跨專案 VPN 連線資源只會存在於 Distributed Cloud 連線叢集。
- 如果您變更目標 VPC 專案中 Distributed Cloud 連線服務帳戶的權限,就無法從 Distributed Cloud 連線叢集刪除跨專案 VPN 連線。