使用網址清單建立政策

本指南說明如何使用網址清單定義使用者可存取的網址。

事前準備

  • 完成初始設定步驟

  • 確認已安裝 Google Cloud CLI 406.0.0 以上版本:

    gcloud version | head -n1
    

    如果您安裝的是舊版 gcloud CLI,請更新版本:

    gcloud components update --version=406.0.0
    

建立含有空政策的 Secure Web Proxy 執行個體

如要建立 Secure Web Proxy 執行個體,請先建立空白的安全政策,然後再建立網路 Proxy。

建立空白安全性政策

主控台

  1. 在 Google Cloud 控制台中,前往「SWP Policies」頁面。

    前往「SWP 政策」

  2. 按一下「建立政策」

  3. 輸入要建立的政策名稱,例如 myswppolicy

  4. 輸入政策的說明,例如 My new swp policy

  5. 在「區域」清單中,選取要建立政策的區域。

  6. 按一下 [建立]。

Cloud Shell

  1. 使用您慣用的文字編輯器建立 POLICY_FILE.yaml 檔案。將 POLICY_FILE 替換為您要用於政策檔案的檔案名稱。

  2. 在您建立的 YAML 檔案中加入下列內容:

    name: projects/PROJECT_NAME/locations/REGION/gatewaySecurityPolicies/POLICY_NAME
    description: POLICY_DESCRIPTION
    

    更改下列內容:

    • PROJECT_NAME:專案名稱
    • REGION:這項政策適用的地區
    • POLICY_NAME:您要建立的政策名稱
    • POLICY_DESCRIPTION:您要建立的政策說明
  3. 匯入安全性政策:

    gcloud network-security gateway-security-policies import POLICY_NAME \
        --source=POLICY_FILE.yaml \
        --location=REGION
    

建立網路 Proxy

主控台

  1. 前往 Google Cloud 控制台的「Web Proxies」頁面。

    前往「網路 Proxy」

  2. 按一下「建立安全無虞的網路 Proxy」

  3. 輸入要建立的網路 Proxy 名稱,例如 myswp

  4. 輸入網頁 Proxy 的說明,例如 My new swp

  5. 在「區域」清單中,選取要建立網路 Proxy 的區域。

  6. 在「Network」(網路) 清單中,選取要建立網路 Proxy 的網路。

  7. 在「Subnetwork」(子網路) 清單中,選取要建立網路 Proxy 的子網路。

  8. 選用步驟:輸入 Secure Web Proxy IP 位址。您可以從先前步驟中建立的子網路中,輸入安全網路 Proxy IP 位址範圍的 IP 位址。如果您未輸入 IP 位址,安全 Web Proxy 例項會自動從所選子網路中選擇 IP 位址。

  9. 在「憑證」清單中,選取要用來建立網路 Proxy 的憑證。

  10. 在「Policy」清單中,選取要與網路 Proxy 建立關聯的政策。

  11. 按一下 [建立]。

Cloud Shell

  1. 使用您慣用的文字編輯器建立 GATEWAY_FILE.yaml 檔案。將 GATEWAY_FILE 替換為您要用於網頁 Proxy 檔案的檔案名稱。

  2. 在您建立的 YAML 檔案中加入下列內容:

    name: projects/PROJECT_NAME/locations/REGION/gateways/GATEWAY_NAME
    type: SECURE_WEB_GATEWAY
    ports: [GATEWAY_PORT_NUMBERS]
    certificateUrls: [CERTIFICATE_URLS]
    gatewaySecurityPolicy: projects/PROJECT_NAME/locations/REGION/gatewaySecurityPolicies/POLICY_NAME
    network: projects/PROJECT_NAME/global/networks/NETWORK_NAME
    subnetwork: projects/PROJECT_NAME/regions/REGION/subnetworks/SUBNET_NAME
    addresses: [GATEWAY_IP_ADDRESS]
    scope: samplescope
    

    更改下列內容:

    • GATEWAY_NAME:這個例項的名稱
    • GATEWAY_PORT_NUMBERS:這個閘道器的通訊埠號碼清單,例如 [80,443]
    • CERTIFICATE_URLS:SSL 憑證網址清單
    • SUBNET_NAME:包含 GATEWAY_IP_ADDRESS 的子網路名稱

    • GATEWAY_IP_ADDRESS:選用的 IP 位址清單,適用於先前在初始設定步驟中建立的 Proxy 子網路內的 Secure Web Proxy 例項

      如果您選擇不列出 IP 位址,請省略這個欄位,讓網路 Proxy 為您選擇 IP 位址。

  3. 建立 Secure Web Proxy 執行個體:

    gcloud network-services gateways import GATEWAY_NAME \
        --source=GATEWAY_FILE.yaml \
        --location=REGION
    

測試連線能力

如要測試連線能力,請在虛擬私有雲 (VPC) 網路中的任何 VM 中使用 curl 指令:

  curl -x https://GATEWAY_IP_ADDRESS:PORT_NUMBER https://www.example.com --proxy-insecure

預期會發生 403 Forbidden 錯誤。

建立網址清單

如要建立網址清單並新增規則,請完成下列各節中的任務。

建立及設定網址清單

控制台

  1. 前往 Google Cloud 控制台的「網址清單」頁面。

    前往「網址清單」

  2. 按一下「建立網址清單」

  3. 輸入要建立的網址清單名稱,例如 myurllist

  4. 輸入網址清單的說明,例如 My new URL list

  5. 在「區域」清單中,選取要建立網址清單的區域。

  6. 點選「上傳清單」,上傳要比對的主機、網址或模式清單。詳情請參閱 UrlList 語法參考資料

  7. 按一下 [建立]。

Cloud Shell

  1. 使用您偏好的文字編輯器,建立檔案 URL_LIST_FILE.yaml. ReplaceURL_LIST_FILE` 並使用您想要的檔案名稱。

      name: projects/PROJECT_ID/locations/REGION/urlLists/URL_LIST_NAME
      values: URL_LIST
    

    更改下列內容:

    • PROJECT_ID:您的專案編號
    • REGION:這個網址清單適用的區域
    • URL_LIST_NAME:您要建立的網址清單名稱
    • URL_LIST:要比對的主機、網址或模式清單

    詳情請參閱 UrlList 語法參考資料

    以下是網址清單規則檔案範例:

    name: projects/PROJECT_ID/locations/REGION/urlLists/example-org-allowed-list
    values:
      - www.example.com
      - about.example.com
      - "*.google.com"
      - "github.com/example-org/*"
    

    星號 (*) 字元在 YAML 中具有特殊意義。因此,您必須在包含 * 字元的網址前後加上引號。

  2. 新增網址清單,讓 Secure Web Proxy 規則參照:

    gcloud network-security url-lists import URL_LIST_NAME \
        --location=REGION \
        --project=PROJECT_ID \
        --source=URL_LIST_FILE.yaml
    

新增規則

控制台

  1. 在 Google Cloud 控制台中,前往「SWP Policies」頁面。

    前往「SWP 政策」

  2. 在專案選取器選單中,選取機構 ID 或包含政策的資料夾。

  3. 按一下政策名稱。

  4. 按一下「新增規則」

  5. 填入規則欄位:

    1. 名稱
    2. 說明
    3. 狀態
    4. 優先順序:規則的數字評估順序。系統會從最高優先順序到最低優先順序評估規則,其中 0 為最高優先順序。
    5. 在「動作」專區中,指定要允許 (「允許」) 或拒絕 (「拒絕」) 符合規則的連線。
    6. 在「Session Match」部分,指定先前建立的網址清單名稱。例如:

        sessionMatcher: "inUrlList(host(), 'projects/PROJECT_ID/locations/REGION/urlLists/URL_LIST_NAME')"
      
    7. 如要啟用 TLS 檢查功能,請選取「Enable TLS inspection」

    8. 在「應用程式比對」部分,指定比對要求的條件。

    9. 按一下 [建立]。

  6. 按一下「新增規則」即可新增其他規則。

  7. 按一下「建立」,建立政策。

Cloud Shell

  1. 使用您慣用的文字編輯器建立 RULE_FILE.yaml 檔案。將 RULE_FILE 替換為您想要的檔案名稱。

    name: projects/PROJECT_ID/locations/REGION/gatewaySecurityPolicies/POLICY_NAME/rules/RULE_NAME
    basicProfile: ALLOW
    enabled: true
    priority: PRIORITY_VALUE
    description: RULE_DESCRIPTION
    sessionMatcher: SESSION_CEL_EXPRESSION
    applicationMatcher: APPLICATION_CEL_EXPRESSION
    

    更改下列內容:

    • PROJECT_ID:您的專案編號
    • REGION:此規則適用的地區
    • POLICY_NAME:Secure Web Proxy 執行個體使用的現有 GatewaySecurityPolicy 名稱
    • RULE_NAME:您要建立的 GatewaySecurityPolicyRule 名稱
    • PRIORITY_VALUE:此規則的優先順序值;數字越低,優先順序越高
    • RULE_DESCRIPTION:您要建立的政策說明
    • SESSION_CEL_EXPRESSION:工作階段的 一般運算語言 (CEL) 運算式
    • APPLICATION_CEL_EXPRESSION:應用程式的 CEL 運算式

    以下是規則檔案範例:

    name: projects/PROJECT_ID/locations/REGION/urlLists/allow-repos
    basicProfile: ALLOW
    enabled: true
    priority: 100
    description: Allow access to our list of known code repos.
    sessionMatcher: "inUrlList(host(), 'projects/PROJECT_ID/locations/REGION/urlLists/URL_LIST_NAME')"
    

  2. 使用先前建立的網址清單新增 Secure Web Proxy 規則:

        gcloud network-security gateway-security-policies rules import RULE_NAME \
          --location=REGION \
          --project=PROJECT_ID \
          --source=RULE_FILE.yaml \
          --gateway-security-policy=POLICY_NAME
    

測試連線能力

如要測試連線,請使用下列 curl 指令:

curl -x https://SWP_IP_ADDRESS:SWP_PORT_NUMBER HTTP_TEST_ADDRESS
--proxy-insecure

更改下列內容:

  • SWP_IP_ADDRESS:網路 Proxy 的 IP 位址

  • SWP_PORT_NUMBER:網頁 Proxy 的通訊埠號碼,例如 443

  • HTTP_TEST_ADDRESS:要測試的地址 (例如 https://www.example.com),必須與 URL_LIST 中的主機或網址項目相符

要求應傳回成功的回應。

後續步驟