本指南說明如何使用網址清單,定義使用者可存取的網址。
事前準備
完成初始設定步驟。
確認您已安裝 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」(SWP 政策) 頁面。
按一下「建立政策」。
在「Name」(名稱) 欄位中,輸入政策名稱,例如
myswppolicy。在「Description」(說明) 欄位中輸入政策說明,例如
My new swp policy。在「區域」部分,選取要建立政策的區域,例如
us-central1。點選「建立」。
Cloud Shell
使用偏好的文字編輯器建立
policy.yaml檔案。在您建立的
policy.yaml檔案中新增下列內容:name: projects/PROJECT_NAME/locations/REGION/gatewaySecurityPolicies/POLICY_NAME description: POLICY_DESCRIPTION更改下列內容:
PROJECT_NAME:專案名稱REGION:建立政策的區域,例如us-central1POLICY_NAME:政策名稱POLICY_DESCRIPTION:政策說明
使用
gcloud network-security gateway-security-policies import指令匯入安全政策:gcloud network-security gateway-security-policies import POLICY_NAME \ --source=POLICY_FILE.yaml \ --location=REGION
建立網路 Proxy
控制台
前往 Google Cloud 控制台的「Web Proxies」(網頁 Proxy) 頁面。
按一下「建立安全無虞的網路 Proxy」。
在「Name」(名稱) 欄位中,輸入網頁 Proxy 的名稱,例如
myswp。在「Description」(說明) 欄位中輸入網頁 Proxy 的說明,例如
My new swp。在「Routing mode」(轉送模式) 中,選取「Explicit」(明確) 選項。
在「Regions」(區域) 中,選取要建立網頁 Proxy 的區域,例如
us-central1。在「Network」(網路) 中,選取要建立網頁 Proxy 的網路。
在「子網路」部分,選取您先前在初始設定步驟中建立的虛擬私有雲子網路。
選用:在「網路 Proxy IP 位址」欄位中,輸入安全網路 Proxy IP 位址。
您可以輸入位於上一步驟所建立子網路中的安全網路 Proxy IP 位址範圍內的 IP 位址。如果您未輸入 IP 位址,安全網頁 Proxy 執行個體會自動從所選子網路中選擇 IP 位址。
在「憑證」部分,選取要用來建立網頁 Proxy 的憑證。
在「政策」部分,選取您建立的政策,以便將網路 Proxy 與該政策建立關聯。
點選「建立」。
Cloud Shell
使用偏好的文字編輯器建立
gateway.yaml檔案。在
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更改下列內容:
使用
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規則為止。
建立網址清單
如要建立網址清單並新增規則,請完成下列各節中的工作。
建立及設定網址清單
控制台
前往 Google Cloud 控制台的「網址清單」頁面。
按一下「建立網址清單」。
輸入要建立的網址清單名稱,例如
myurllist。輸入網址清單的說明,例如
My new URL list。在「區域」清單中,選取要建立網址清單的區域。
按一下「上傳清單」,上傳要比對的主機、網址或模式清單。詳情請參閱「UrlList 語法參考資料」。
點選「建立」。
Cloud Shell
使用偏好的文字編輯器建立檔案 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 中具有特殊意義。因此,如果網址包含*字元,請務必加上引號。新增網址清單,以便 Secure Web Proxy 規則參照:
gcloud network-security url-lists import URL_LIST_NAME \ --location=REGION \ --project=PROJECT_ID \ --source=URL_LIST_FILE.yaml
新增規則
控制台
前往 Google Cloud 控制台的「SWP Policies」(SWP 政策) 頁面。
在專案選取器選單中,選取您的機構 ID 或包含政策的資料夾。
按一下政策名稱。
按一下「新增規則」。
填寫規則欄位:
- 名稱
- 說明
- 狀態
- 優先順序:規則的數值評估順序。系統會依優先順序由高至低評估規則,其中
0的優先順序最高。 - 在「動作」部分,指定要允許 (允許) 或拒絕 (拒絕) 符合規則的連線。
在「Session Match」(工作階段比對) 專區中,指定您先前建立的網址清單名稱。例如:
sessionMatcher: "inUrlList(host(), 'projects/PROJECT_ID/locations/REGION/urlLists/URL_LIST_NAME')"如要啟用 TLS 檢查功能,請選取「Enable TLS inspection」(啟用 TLS 檢查功能)。
在「Application Match」(應用程式比對) 區段,指定比對要求的條件。
點選「建立」。
按一下「新增規則」,新增其他規則。
按一下「建立」,建立政策。
Cloud Shell
使用您偏好的文字編輯器建立
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')"使用先前建立的網址清單新增 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 的通訊埠號碼,例如443HTTP_TEST_ADDRESS:要測試的地址,例如https://www.example.com,與URL_LIST中的主機或網址項目相符
要求應會傳回成功的回應。