使用網址清單建立政策

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

事前準備

  • 完成初始設定步驟

  • 確認您已安裝 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 政策) 頁面。

    前往 SWP 政策

  2. 按一下「建立政策」

  3. 在「Name」(名稱) 欄位中,輸入政策名稱,例如 myswppolicy

  4. 在「Description」(說明) 欄位中輸入政策說明,例如 My new swp policy

  5. 在「區域」部分,選取要建立政策的區域,例如 us-central1

  6. 點選「建立」

Cloud Shell

  1. 使用偏好的文字編輯器建立 policy.yaml 檔案。

  2. 在您建立的 policy.yaml 檔案中新增下列內容:

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

    更改下列內容:

    • PROJECT_NAME:專案名稱

    • REGION:建立政策的區域,例如 us-central1

    • POLICY_NAME:政策名稱

    • POLICY_DESCRIPTION:政策說明

  3. 使用 gcloud network-security gateway-security-policies import 指令匯入安全政策:

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

建立網路 Proxy

控制台

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

    前往「網路 Proxy」

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

  3. 在「Name」(名稱) 欄位中,輸入網頁 Proxy 的名稱,例如 myswp

  4. 在「Description」(說明) 欄位中輸入網頁 Proxy 的說明,例如 My new swp

  5. 在「Routing mode」(轉送模式) 中,選取「Explicit」(明確) 選項。

  6. 在「Regions」(區域) 中,選取要建立網頁 Proxy 的區域,例如 us-central1

  7. 在「Network」(網路) 中,選取要建立網頁 Proxy 的網路。

  8. 在「子網路」部分,選取您先前在初始設定步驟中建立的虛擬私有雲子網路。

  9. 選用:在「網路 Proxy IP 位址」欄位中,輸入安全網路 Proxy IP 位址。

    您可以輸入位於上一步驟所建立子網路中的安全網路 Proxy IP 位址範圍內的 IP 位址。如果您未輸入 IP 位址,安全網頁 Proxy 執行個體會自動從所選子網路中選擇 IP 位址。

  10. 在「憑證」部分,選取要用來建立網頁 Proxy 的憑證。

  11. 在「政策」部分,選取您建立的政策,以便將網路 Proxy 與該政策建立關聯。

  12. 點選「建立」

Cloud Shell

  1. 使用偏好的文字編輯器建立 gateway.yaml 檔案。

  2. gateway.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/SUBNETWORK
    addresses: [GATEWAY_IP_ADDRESS]
    scope: samplescope
    

    更改下列內容:

    • GATEWAY_NAME:這個 Secure Web Proxy 執行個體的名稱

    • GATEWAY_PORT_NUMBERS:這個閘道的通訊埠編號清單,例如 [80,443]

    • CERTIFICATE_URLS:SSL 憑證網址清單

    • SUBNETWORK:您先前建立的虛擬私有雲子網路,屬於初始設定步驟

    • GATEWAY_IP_ADDRESS:選用清單,列出您在先前初始設定步驟中建立的 Proxy 子網路內,Secure Web Proxy 執行個體的 IP 位址

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

  3. 使用 gcloud network-services gateways import 指令建立 Secure Web Proxy 執行個體:

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

測試連線能力

如要測試連線,請從虛擬私有雲 (VPC) 網路中的任何虛擬機器 (VM) 執行個體使用 curl 指令:

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

如果一切運作正常,Secure Web Proxy 執行個體會傳回 403 Forbidden 狀態碼。這項錯誤確認了下列事項:

  • Secure Web Proxy 執行個體已成功部署,並主動接收流量。

  • Secure Web Proxy 政策會正確強制執行預設安全性狀態,拒絕所有流量,直到您在下節中定義特定allow規則為止。

建立網址清單

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

建立及設定網址清單

控制台

  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 政策) 頁面。

    前往 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」(啟用 TLS 檢查功能)

    8. 在「Application Match」(應用程式比對) 區段,指定比對要求的條件。

    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:現有 GatewaySecurityPolicy 的名稱,Secure Web Proxy 執行個體會使用這個名稱
    • 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 中的主機或網址項目相符

要求應會傳回成功的回應。

後續步驟