使用服務帳戶建立政策

服務帳戶是一種特殊的帳戶類型,通常是由應用程式或運算工作負載 (例如 Compute Engine 執行個體) 所使用,而非使用者。這個帳戶會使用專屬的電子郵件地址做為識別。

應用程式會使用服務帳戶,透過全網域委派驗證服務帳戶本身,或以 Google Workspace 或 Cloud Identity 使用者的身分進行授權 API 呼叫。應用程式以服務帳戶身分進行驗證時,就能存取服務帳戶有權存取的所有資源。

您可以使用服務帳戶識別流量來源,並視需要設定安全網路 Proxy 政策。

本指南說明如何執行下列操作:

  • 建立含有空白政策的 Secure Web Proxy 執行個體。
  • 建立服務帳戶並附加至資源。
  • 使用服務帳戶建立 Secure Web Proxy 政策。
  • 建立 Secure Web Proxy 執行個體。
  • 測試 VM 的連線能力。

事前準備

  • 完成初始設定步驟

  • 請機構管理員授予服務帳戶存取權

  • 確認已安裝 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:在先前初始設定步驟中建立的 Proxy 子網路中,可選的 Secure Web Proxy 執行個體 IP 位址清單

      如果您選擇不列出 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. 建立服務帳戶

  2. 將服務帳戶連結至資源

建立 Secure Web Proxy 規則

如要建立 Secure Web Proxy 規則,請按照下列步驟操作:

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

  2. 如要允許所選服務帳戶存取網址,請在 YAML 檔案中新增以下內容:

    name: projects/PROJECT_NAME/locations/REGION/gatewaySecurityPolicies/POLICY_NAME/rules/RULE_NAME
    description: RULE_DESCRIPTION
    enabled: true
    priority: RULE_PRIORITY
    sessionMatcher: CEL_EXPRESSION
    basicProfile: ALLOW
    

    更改下列內容:

    • RULE_NAME:此規則的名稱
    • RULE_DESCRIPTION:您要建立的規則說明
    • RULE_PRIORITY:此規則的優先順序;數字越小,優先順序越高
    • CEL_EXPRESSION:一般運算語言 (CEL) 運算式

      詳情請參閱 CEL 比對器語言參考資料

      舉例來說,如要允許資源透過所附服務帳戶存取 example.com,請在為 sessionMatcher 建立的 YAML 檔案中新增以下內容:

      sessionMatcher: "source.matchServiceAccount('SERVICE_ACCOUNT') && host() == 'example.com'"
      

      SERVICE_ACCOUNT 替換為您要允許的服務帳戶。這必須是服務帳戶的電子郵件地址。

  3. 匯入您建立的規則:

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

測試連線能力

如要測試連線情形,請使用附加 SERVICE_ACCOUNT 的資源中的 curl 指令:

curl -x https://IPv4_ADDRESS:443 http://example.com 
--proxy-insecure

IPv4_ADDRESS 替換為安全 Web Proxy 執行個體的 IPv4 位址。

後續步驟