服務帳戶是一種特殊的帳戶類型,通常是由應用程式或運算工作負載 (例如 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 位址。