本頁面說明如何為 Secure Web Proxy 執行個體啟用傳輸層安全標準 (TLS) 檢查功能。Secure Web Proxy 提供 TLS 檢查服務,可讓您攔截 TLS 流量、檢查加密要求並強制執行安全性政策。如要進一步瞭解 TLS 檢查,請參閱「TLS 檢查總覽」。
事前準備
設定 Secure Web Proxy 執行個體以便檢查 TLS 之前,請先完成下列各節中的任務。
啟用憑證授權單位服務
Secure Web Proxy 會使用憑證授權單位服務產生用於 TLS 檢查的憑證。
如要啟用 CA 服務,請使用下列指令:
gcloud services enable privateca.googleapis.com
建立憑證授權單位集區
憑證授權單位 (CA) 集區內含多個 CA,這些 CA 採用相同的憑證核發政策和 身分與存取權管理 (IAM) 政策。您可以使用 CA 集區來輪替信任鏈結,酬載不會服務中斷或停機。
您必須先建立 CA 集區,才能使用 CA 服務建立 CA。本節將逐步說明完成此工作所需的權限,並說明如何建立 CA 集區。
為產生憑證,TLS 檢查會為每個名為 service-[PROJECT_NUMBER]@gcp-sa-networksecurity.iam.gserviceaccount.com
的專案使用個別的服務帳戶。請確認您已授予此服務帳戶使用 CA 資源池的權限。如果撤銷這項存取權,TLS 檢查功能就會停止運作。
如要使用 CA 集區專案的 PROJECT_ID
擷取 PROJECT_NUMBER
,請使用下列指令:
gcloud projects describe <var>PROJECT_ID</var>
--format="value(projectNumber)"
如要建立集區,請使用 gcloud privateca pools create
指令,並指定子集區 ID、層級、專案 ID 和位置。
gcloud privateca pools create SUBORDINATE_POOL_ID \ --tier=TIER \ --project=PROJECT_ID \ --location=REGION
更改下列內容:
SUBORDINATE_POOL_ID
:CA 集區名稱TIER
:CA 層級,可為devops
或enterprise
建議您在
devops
層級建立 CA 集區,因為不需要追蹤個別核發的憑證。PROJECT_ID
:CA 集區專案 IDREGION
:CA 集區的位置
建立從屬 CA 集區
如果您有多個憑證核發情境,則可以為每個情境建立從屬 CA。您可以在 CA 集區中建立從屬 CA,而根 CA會為該 CA 集區中的所有 CA 簽署。這些憑證會用於簽署為 TLS 檢查作業產生的伺服器憑證。
如要建立子 CA 集區,請使用下列其中一種方法。
使用憑證授權單位服務中儲存的現有根 CA 建立子 CA 集區
如要產生次級 CA,請按照下列步驟操作:
使用外部持有的現有根 CA 建立子 CA 集區
如要產生次級 CA,請按照下列步驟操作:
建立根 CA
如果沒有根 CA,您可以在 CA 服務中建立一個。
如要建立根 CA,請按照下列步驟操作:
建立服務帳戶
服務帳戶可提供 TLS 檢查所需的權限,同時確保使用者帳戶或 Secure Web Proxy 執行個體本身的安全性。
如果您沒有服務帳戶,請務必建立一個,然後將必要權限授予該服務帳戶。
建立服務帳戶。
gcloud beta services identity create \ --service=networksecurity.googleapis.com \ --project=PROJECT_ID
Google Cloud CLI 會建立名為
service-[PROJECT_NUMBER]@gcp-sa-networksecurity.iam.gserviceaccount.com
的服務帳戶。如要使用 CA 集區專案的
PROJECT_ID
擷取PROJECT_NUMBER
,請使用下列指令:gcloud projects describe PROJECT_ID --format="value(projectNumber)"
針對您建立的服務帳戶,授予使用 CA 集區產生憑證的權限。
gcloud privateca pools add-iam-policy-binding CA_POOL \ --member='serviceAccount:SERVICE_ACCOUNT' \ --role='roles/privateca.certificateManager' \ --location='REGION'
設定 Secure Web Proxy 以檢查 TLS
您必須先完成「事前準備」一節中列出的先決條件工作,才能繼續執行本節中的任務。
如要設定 TLS 檢查功能,請完成下列各節中的任務。
建立 TLS 檢查政策
主控台
在 Google Cloud 控制台中,前往「TLS inspection policies」頁面。
在專案選取器選單中選取專案。
按一下「建立 TLS 檢查政策」。
在「Name」 中輸入名稱。
選用:在「說明」欄位中輸入說明。
在「Region」清單中,選取要建立 TLS 檢查政策的區域。
在「CA pool」清單中,選取要建立憑證的 CA 集區。
如果您尚未設定 CA 集區,請按一下「New Pool」(新集區),然後按照「Create a CA pool」(建立 CA 集區) 一文中的指示操作。
選用:在「Minimum TLS version」清單中,選取政策支援的最低 TLS 版本。
在「信任設定」中,選取下列任一選項:
選用:在「加密套件設定檔」清單中,選取 TLS 設定檔類型。您可以選擇下列任一值:
- Compatible:允許與負載平衡器交涉 TLS 的用戶端組合範圍最廣,涵蓋僅支援過時 TLS 功能的用戶端。
- 新式:支援廣泛的 TLS 功能組合,可讓新式用戶端與 TLS 交涉。
- Restricted:支援較少的 TLS 功能組合,適用於較嚴格的法規遵循規定。
自訂:可讓您個別選取 TLS 功能。
在「Cipher suites」清單中,選取自訂設定檔支援的加密套件。
按一下 [建立]。
gcloud
建立
TLS_INSPECTION_FILE.yaml
檔案。請將TLS_INSPECTION_FILE
替換為必要的檔案名稱。將下列程式碼新增至 YAML 檔案,設定必要的 TlsInspectionPolicy:
name: projects/PROJECT_ID/locations/REGION/tlsInspectionPolicies/TLS_INSPECTION_NAME caPool: projects/PROJECT_ID/locations/REGION/caPools/CA_POOL
更改下列內容:
PROJECT_ID
:專案 IDREGION
:要建立政策的區域TLS_INSPECTION_NAME
:Secure Web Proxy TLS 檢查政策的名稱CA_POOL
:要用來建立憑證的 CA 集區名稱
CA 集區必須位於相同區域。
匯入 TLS 檢查政策
匯入先前步驟中建立的 TLS 檢查政策:
gcloud network-security tls-inspection-policies import TLS_INSPECTION_NAME \
--source=TLS_INSPECTION_FILE.yaml \
--location=REGION
將 TLS 檢查政策新增至安全性政策
控制台
建立網路 Proxy 政策
在 Google Cloud 控制台中,前往「SWP Policies」頁面。
按一下「建立政策」。
輸入要建立的政策名稱,例如
myswppolicy
。輸入政策的說明,例如
My new swp policy
。在「區域」清單中,選取要建立安全 Web Proxy 政策的區域。
如要設定 TLS 檢查功能,請選取「設定 TLS 檢查」。
在「TLS 檢查政策」清單中,選取您建立的 TLS 檢查政策。
如要為政策建立規則,請依序點選「繼續」和「新增規則」。詳情請參閱「建立 Secure Web Proxy 規則」。
按一下 [建立]。
建立 Secure Web Proxy 規則
在 Google Cloud 控制台中,前往「SWP Policies」頁面。
在專案選取器選單中,選取機構 ID 或包含政策的資料夾。
按一下政策名稱。
按一下「新增規則」。
填入規則欄位:
- 名稱
- 說明
- 狀態
- 優先順序:規則的數字評估順序。系統會從最高優先順序到最低優先順序評估規則,其中
0
為最高優先順序。 - 在「動作」專區中,指定要允許 (「允許」) 或拒絕 (「拒絕」) 符合規則的連線。
- 在「工作階段比對」部分,指定比對工作階段的條件。如要進一步瞭解
SessionMatcher
的語法,請參閱 CEL 比對器語言參考資料。 - 如要啟用 TLS 檢查功能,請選取「Enable TLS inspection」。
- 在「應用程式比對」部分,指定比對要求的條件。如未啟用 TLS 檢查規則,要求只能比對 HTTP 流量。
- 按一下 [建立]。
按一下「新增規則」即可新增其他規則。
按一下「建立」,建立政策。
設定網路 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
建立檔案
policy.yaml
:description: basic Secure Web Proxy policy name: projects/PROJECT_ID/locations/REGION/gatewaySecurityPolicies/policy1 tlsInspectionPolicy: projects/PROJECT_ID/locations/REGION/tlsInspectionPolicies/TLS_INSPECTION_NAME
建立 Secure Web Proxy 政策:
gcloud network-security gateway-security-policies import policy1 \ --source=policy.yaml --location=REGION
建立檔案
rule.yaml
:name: projects/PROJECT_ID/locations/REGION/gatewaySecurityPolicies/policy1/rules/allow-example-com description: Allow example.com enabled: true priority: 1 basicProfile: ALLOW sessionMatcher: host() == 'example.com' applicationMatcher: request.path.contains('index.html') tlsInspectionEnabled: true
建立安全性政策規則。
gcloud network-security gateway-security-policies rules import allow-example-com \ --source=rule.yaml \ --location=REGION \ --gateway-security-policy=policy1
如要將 TLS 檢查政策附加至現有安全政策,請建立
POLICY_FILE
.yaml 檔案。將POLICY_FILE
替換為您的檔案名稱。description: My Secure Web Proxy policy name: projects/PROJECT_ID/locations/REGION/gatewaySecurityPolicies/POLICY_NAME tlsInspectionPolicy: projects/PROJECT_ID/locations/REGION/tlsInspectionPolicies/TLS_INSPECTION_NAME