本頁說明如何將Resource Manager 標記附加至 Secure Web Proxy 政策。Resource Manager 標記是可附加至各種 Google Cloud 資源的標籤,例如虛擬機器 (VM) 執行個體。您可以使用標記,透過現有的機構標籤,在整個網路中強制執行條件式存取權控管。
使用這些標記,您可以執行下列動作:
區隔工作負載:您可以分別識別不同環境 (例如
production或development) 和服務類型 (例如frontend或database)。集中控管存取權:您可以根據這些標記制定 Secure Web Proxy 政策。舉例來說,您可以建立政策規則,規定「只有來自具有
tag segment=production標記資源的流量,才能存取一組特定網址」。
本頁面說明如何執行下列操作:
- 建立具有空白政策的 Secure Web Proxy 執行個體
- 建立 Resource Manager 標記,並附加至 VM 執行個體
- 建立 Secure Web Proxy 規則
- 測試整個 Secure Web Proxy 設定的連線
事前準備
設定初始設定步驟。
請組織管理員授予您建立及更新代碼的必要角色。
確認您已安裝 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。在「轉送模式」中,選取下列任一選項:
- 明確:以明確 Proxy 模式部署 Secure Web Proxy 執行個體。
- 下一個躍點:以下一個躍點模式部署 Secure Web Proxy 執行個體。
在「Regions」(區域) 中,選取要建立網頁 Proxy 的區域,例如
us-central1。在「Network」(網路) 中,選取要建立網頁 Proxy 的網路。
選用:在「網路 Proxy IP 位址」欄位中,輸入 Secure Web Proxy IP 位址。
您可以輸入 IP 位址,該位址必須位於您在上一個步驟建立的子網路中,且屬於 Secure Web Proxy IP 位址範圍。如果您未輸入 IP 位址,Secure Web 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 routingMode: ROUTING_MODE addresses: [GATEWAY_IP_ADDRESS] scope: samplescope更改下列內容:
GATEWAY_NAME:這個 Secure Web Proxy 執行個體的名稱GATEWAY_PORT_NUMBERS:這個閘道的通訊埠編號清單,例如[80,443]CERTIFICATE_URLS:SSL 憑證網址清單ROUTING_MODE:指定必要的網路 Proxy 路由模式:EXPLICIT_ROUTING_MODE:以明確 Proxy 模式部署 Secure Web Proxy 執行個體NEXT_HOP_ROUTING_MODE:以次一躍點模式部署 Secure Web Proxy 執行個體
GATEWAY_IP_ADDRESS:選用清單,列出您先前在初始設定步驟中建立的 Proxy 子網路內,Secure Web Proxy 執行個體的 IP 位址如果您選擇不列出 IP 位址,請省略該欄位,讓網路 Proxy 為您選擇 IP 位址。
使用
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規則為止。
建立及附加 Resource Manager 標記
-
GCE_FIREWALL範例:如要為受限環境建立代碼,請按照下列步驟操作:
使用
gcloud resource-manager tags keys create指令建立標記鍵 (access-level),並將用途設為GCE_FIREWALL。從建立指令的輸出內容中,或使用
gcloud resource-manager tags keys list指令,擷取標記金鑰 ID。 您需要這個 ID,才能將標記值連結至這個特定標記鍵。使用
gcloud resource-manager tags values create指令建立標記值 (restricted),並將標記金鑰 ID 指定為父項。
# Create the tag key # The output provides a unique ID, such as "tagKeys/1234567890" gcloud resource-manager tags keys create "access-level" \ --parent="organizations/1234567890" \ --purpose="GCE_FIREWALL" \ --purpose-values="execution_env=ANS" # Create the tag value and connect it to the key # The "--parent" flag identifies to which key this value belongs gcloud resource-manager tags values create "restricted" \ --parent="tagKeys/1234567890" -
附加這些標記後,VM 執行個體的輸出流量就會與特定標記身分建立關聯,讓 Proxy 能夠辨識工作負載並強制執行安全政策規則。
範例:假設您有名為
internal-tool的 VM 執行個體。您可以使用gcloud resource-manager tags bindings create指令,將restricted標記值附加至internal-tool。指派這個標記後,Proxy 就能識別來自internal-toolVM 執行個體的流量。# Attach the "restricted" tag to a specific VM instance gcloud resource-manager tags bindings create \ --parent="//[compute.googleapis.com/projects/my-project/zones/us-central1-a/instances/internal-tool](https://compute.googleapis.com/projects/my-project/zones/us-central1-a/instances/internal-tool)" \ --tag-value="tagValues/987654321"
建立 Secure Web Proxy 規則
控制台
前往 Google Cloud 控制台的「SWP Policies」(SWP 政策) 頁面。
按一下政策名稱,例如
myswppolicy。按一下「新增規則」。
針對每項規則,請執行下列操作:
在「優先順序」中,輸入規則的評估順序 (數字)。系統會由高至低評估規則優先順序,其中
0為最高優先順序。在「Name」(名稱) 欄位中,輸入規則名稱。
在「Description」(說明) 欄位中輸入規則說明。
在「動作」部分,選取下列任一選項:
- 允許:允許符合規則的連線要求。
- 拒絕:拒絕符合規則的連線要求。
在「狀態」欄位中,選取下列任一選項來強制執行規則:
- 已啟用:在 Secure Web Proxy 執行個體上強制執行規則。
- 已停用:不在 Secure Web Proxy 執行個體上強制執行規則。
在「工作階段比對」部分,指定您在上一節建立的代碼專屬 ID。例如:
sessionMatcher: "source.matchTag('TAG_VALUE') && host() == 'example.com'"如要進一步瞭解
SessionMatcher的語法,請參閱 CEL 比對器語言參考資料。在「應用程式比對」部分,指定比對要求的條件。
按一下「Add rule」(新增規則)。
Cloud Shell
使用偏好的文字編輯器建立
rule.yaml檔案。如要允許從必要標記存取網址,請在
rule.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,請在 YAML 檔案中加入下列sessionMatcher行:sessionMatcher: "source.matchTag('TAG_VALUE') && host() == 'example.com'"將
TAG_VALUE替換為您要允許的代碼。請確認代碼符合數字資源 ID 格式,例如tagValues/567890123456。使用
gcloud network-security gateway-security-policies rules import指令匯入您建立的規則:gcloud network-security gateway-security-policies rules import RULE_NAME \ --source=RULE_FILE.yaml \ --location=REGION \ --gateway-security-policy=POLICY_NAME
測試政策設定
您可以再次測試連線能力,驗證 Secure Web Proxy 政策 (依賴 Resource Manager 標記來識別身分) 是否正常運作。
如要測試連線能力,請從與適當 TAG_VALUE 標記相關聯的任何 VM 使用 curl 指令。
curl -x https://IPv4_ADDRESS:443 http://example.com
--proxy-insecure
將 IPv4_ADDRESS 替換為 Secure Web Proxy 執行個體的 IPv4 位址。
如果一切正常,您會收到 200 OK 或 403 Forbidden 狀態碼。這些回應確認了下列重要結果:
以標記為準的成功:
200 OK狀態碼會驗證來自 VM 的流量 (已附加正確的 Resource Manager 標記) 是否符合政策規則,並允許流量通過 Proxy。驗證相符後,即可順利連線。以標記為準的拒絕:
403 Forbidden狀態碼會驗證政策是否正確拒絕來自 VM 的流量,這些 VM 要麼沒有指定標記,要麼標記不正確。這項強制執行措施證明,以標記為準的區隔和強制執行措施運作正常。