控管輸入和輸出流量

本頁說明如何設定 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 工作階段的名稱。VPN_BGP_PEER_NAME

    詳情請參閱「建立 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 通道,請為該專案停用資料外洩防護功能。詳情請參閱「防止資料外洩」。

後續步驟