控管輸入和輸出流量

本頁面說明如何設定 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 通道的流量,請使用 ProjectNetworkPolicy 物件,指定透過 VPN 通道上使用的邊界閘道通訊協定 (BGP) 工作階段接收的路徑:

如要讓專案允許來自 VPN 通道的流量,請按照下列步驟操作:

  1. 從 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_PEER_NAME:VPN BGP 工作階段的名稱。

    詳情請參閱「建立 VPN BGP 工作階段」。

    輸出內容大致如下:

    [
      {
        "prefix": "192.168.100.0/24"
      },
      {
        "prefix": "192.168.101.0/24"
      }
    ]
    
  2. 將從 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 通道。詳情請參閱「防止資料遭竊」。

後續步驟