本頁說明如何設定 VPN 通道的輸入和輸出流量。
以專案為單位,控管 VPN 通道的輸出和輸入流量。
- 根據預設,所有專案都會拒絕來自 VPN 通道的連入流量。
- 根據預設,啟用資料外洩防護的專案會拒絕 VPN 通道的輸出流量。
請按照下列指示,變更專案的預設 VPN 流量輸出和輸入規則。
事前準備
如要設定 VPN 通道的輸入和輸出流量,您必須具備下列條件:
- 現有的 VPN 通道。詳情請參閱「建立 VPN 通道」。
必要的身分與存取權角色:
- VPN 管理員:具備所有 VPN 相關資源的讀寫權限。請機構 IAM 管理員授予您 VPN 管理員 (
vpn-admin
) 角色。 - VPN 檢視者:具備所有 VPN 相關資源的讀取權限。請要求機構 IAM 管理員授予您 VPN 檢視者 (
vpn-viewer
) 角色。 - 專案 NetworkPolicy 管理員:管理專案命名空間中的專案網路政策。請機構 IAM 管理員授予您專案 NetworkPolicy 管理員 (
project-networkpolicy-admin
) 角色。 - 詳情請參閱「角色定義」。
- VPN 管理員:具備所有 VPN 相關資源的讀寫權限。請機構 IAM 管理員授予您 VPN 管理員 (
設定輸入流量
根據預設,所有專案都會拒絕來自 VPN 通道的連入流量。如要讓專案允許來自 VPN 通道的流量,請使用 ProjectNetworkPolicy
物件,該物件會以透過 VPN 通道使用的邊界閘道通訊協定 (BGP) 工作階段收到的路徑為目標:
如要啟用專案,允許 VPN 通道的流量,請按照下列步驟操作:
從
VPNBGPPeer
狀態擷取所有收到的路徑:kubectl --kubeconfig MANAGEMENT_API_SERVER get -n platform vpnbgppeer VPN_BGP_PEER_NAME -ojson | jq '.status.received'
更改下列內容:
MANAGEMENT_API_SERVER
:區域 API 伺服器的 kubeconfig 路徑。如果您尚未在目標區域中為 API 伺服器產生 kubeconfig 檔案,請參閱「登入」一文瞭解詳情。- :VPN BGP 工作階段的名稱。
VPN_BGP_PEER_NAME
詳情請參閱「建立 VPN BGP 工作階段」。
輸出內容如下列範例所示:
[ { "prefix": "192.168.100.0/24" }, { "prefix": "192.168.101.0/24" } ]
將
VPNBGPPeer
狀態中收到的所有路徑,新增至專案命名空間的ProjectNetworkPolicy
物件:kubectl --kubeconfig GLOBAL_API_SERVER create -n PROJECT_NAME -f - <<EOF apiVersion: networking.global.gdc.goog/v1 kind: ProjectNetworkPolicy metadata: name: allow-ingress-vpn-traffic spec: policyType: Ingress subject: subjectType: UserWorkload ingress: - from: - ipBlocks: - cidr: 192.168.100.0/24 - cidr: 192.168.101.0/24 EOF
更改下列內容:
GLOBAL_API_SERVER
:全域 API 伺服器的 kubeconfig 路徑。詳情請參閱全球 API 伺服器資源。PROJECT_NAME
:GDC 專案名稱。
設定輸出流量
根據預設,啟用資料外洩防護的專案會拒絕將流量傳送至 VPN。
如要允許專案將流量傳送至 VPN 通道,請為該專案停用資料外洩防護功能。詳情請參閱「防止資料外洩」。