服務帳戶是一種特殊的帳戶類型,通常是由應用程式或運算工作負載 (例如 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。
建立空白安全性政策
主控台
- 在 Google Cloud 控制台中,前往「SWP Policies」頁面。 
- 按一下「建立政策」。 
- 輸入要建立的政策名稱,例如 - myswppolicy。
- 輸入政策的說明,例如 - My new swp policy。
- 在「區域」清單中,選取要建立政策的區域。 
- 按一下 [建立]。 
Cloud Shell
- 使用您慣用的文字編輯器建立 - POLICY_FILE.yaml 檔案。將- POLICY_FILE替換為您要用於政策檔案的檔案名稱。
- 在您建立的 YAML 檔案中加入下列內容: - name: projects/PROJECT_NAME/locations/REGION/gatewaySecurityPolicies/POLICY_NAME description: POLICY_DESCRIPTION- 更改下列內容: - PROJECT_NAME:專案名稱
- REGION:這項政策適用的地區
- POLICY_NAME:您要建立的政策名稱
- POLICY_DESCRIPTION:您要建立的政策說明
 
- 匯入安全性政策: - gcloud network-security gateway-security-policies import POLICY_NAME \ --source=POLICY_FILE.yaml \ --location=REGION
建立網路 Proxy
主控台
- 前往 Google Cloud 控制台的「Web Proxies」頁面。 
- 按一下「建立安全無虞的網路 Proxy」。 
- 輸入要建立的網路 Proxy 名稱,例如 - myswp。
- 輸入網頁 Proxy 的說明,例如 - My new swp。
- 在「區域」清單中,選取要建立網路 Proxy 的區域。 
- 在「Network」(網路) 清單中,選取要建立網路 Proxy 的網路。 
- 在「Subnetwork」(子網路) 清單中,選取要建立網路 Proxy 的子網路。 
- 選用步驟:輸入 Secure Web Proxy IP 位址。您可以從先前步驟中建立的子網路中,輸入安全網路 Proxy IP 位址範圍的 IP 位址。如果您未輸入 IP 位址,安全 Web Proxy 例項會自動從所選子網路中選擇 IP 位址。 
- 在「憑證」清單中,選取要用來建立網路 Proxy 的憑證。 
- 在「Policy」清單中,選取要與網路 Proxy 建立關聯的政策。 
- 按一下 [建立]。 
Cloud Shell
- 使用您慣用的文字編輯器建立 - GATEWAY_FILE.yaml 檔案。將- GATEWAY_FILE替換為您要用於網頁 Proxy 檔案的檔案名稱。
- 在您建立的 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 位址。 
 
- 建立 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 錯誤。
建立服務帳戶並將其附加至資源
如要建立及連結服務帳戶,請按照下列步驟操作:
建立 Secure Web Proxy 規則
如要建立 Secure Web Proxy 規則,請按照下列步驟操作:
- 使用您慣用的文字編輯器建立 - RULE_FILE.yaml 檔案。將- RULE_FILE替換為您選擇的檔案名稱。
- 如要允許所選服務帳戶存取網址,請在 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替換為您要允許的服務帳戶。這必須是服務帳戶的電子郵件地址。
 
- 匯入您建立的規則: - 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 位址。