本頁說明如何使用已佈建的端點驗證憑證,啟用憑證式存取權 (CBA)。
您可以使用端點驗證,自動為裝置佈建自行簽署的憑證。透過端點驗證佈建的憑證,您可以使用 CBA,無須 PKI 基礎架構。這些憑證會儲存在 macOS 的鑰匙圈、Windows 的憑證存放區,以及 Linux 的檔案系統中。
如果您有 PKI 基礎架構,請參閱「使用企業憑證啟用憑證式存取權」,瞭解如何啟用 CBA。
您可以在下列作業系統上啟用端點驗證佈建的憑證:
- 使用 Chrome 瀏覽器的 macOS 和 Windows
- macOS、Windows 和 Linux (使用 Google Cloud CLI)
如果您的作業系統未列出,請參閱「使用未完全支援的作業系統」。
事前準備
繼續操作前,請確認符合下列條件:
您已為 Google Cloud 專案建立 CBA 存取層級。
您可以透過下列任一方法,對 Google Cloud 資源強制執行 CBA:
- (建議) 透過情境感知存取權政策強制執行以憑證為準的存取權,為使用者設定相關規則。
- 透過 VPC Service Controls 強制執行憑證式存取權,設定資料相關規則。
您有權使用有效用戶端憑證,完成 mTLS 連線程序。
設定端點驗證
按照說明,為貴機構的所有使用者裝置安裝 Chrome 端點驗證擴充功能。擴充功能會在裝置上佈建自簽憑證,並將憑證中繼資料同步至 Google Cloud。
安裝端點驗證輔助應用程式。使用 CBA 搭配端點驗證時,必須安裝這個應用程式。
設定使用者的 Chrome 瀏覽器
如要設定使用者的 Chrome 瀏覽器,以使用端點驗證佈建的憑證,您必須設定 AutoSelectCertificateForURLs Chrome 政策,允許端點驗證透過 Chrome 搜尋並收集裝置憑證。
- 確認使用者的 Chrome 瀏覽器由 Chrome 瀏覽器雲端管理服務管理。
在 Google 管理控制台中,新增 AutoSelectCertificateForUrls 政策。
- 依序前往「裝置」>「Chrome」>「設定」>「使用者與瀏覽器設定」>「用戶端憑證」。
- 選取適當的組織單位。
新增政策。以下範例會新增 AutoSelectCertificateForUrls 政策:
{"pattern":"https://[*.]clients6.google.com","filter":{"ISSUER":{"CN":"Google Endpoint Verification"}}} {"pattern":"https://console-secure.cloud.google.com","filter":{"ISSUER":{"CN":"Google Endpoint Verification"}}} {"pattern":"https://storage.mtls.cloud.google.com","filter":{"ISSUER":{"CN":"Google Endpoint Verification"}}}
設定完成後,使用者就能透過 Chrome 瀏覽器前往 console-secure.cloud.google.com,存取受保護的資源。Google Cloud
(選用) 驗證政策設定
- 在 Chrome 瀏覽器中輸入
chrome://policy
。 - 確認「AutoSelectCertificateForUrls」列在「Chrome 政策」下方。
- 確認「套用對象」的值為「裝置」。在 ChromeOS 中,「適用對象」的值為「目前使用者」。
- 確認政策的狀態未顯示衝突。如果狀態有衝突,請參閱「瞭解 Chrome 政策管理」一文。
設定指令列工具
您可以設定下列工具,使用端點驗證佈建的憑證:
- Google Cloud CLI
- Terraform CLI (需要 gcloud CLI 才能安裝及設定輔助元件)。
由於裝置憑證儲存在 macOS 和 Windows 金鑰儲存區中,因此 gcloud CLI 會與 Enterprise Certificate Proxy (ECP) 開放原始碼元件一併封裝,以便與金鑰管理 API 互動。
如果您使用 Windows 系統,必須安裝 Visual Studio C++ 執行階段程式庫。
- 安裝 gcloud CLI。 安裝時啟用隨附的 Python 選項。
- 啟用 CBA。
如果是 macOS 和 Linux,請下載並執行
install.sh
指令碼。./google-cloud-sdk/install.sh
Linux 使用者請前往「啟用 CBA 和端點驗證佈建憑證 」步驟。macOS 和 Windows 使用者請完成下列步驟。
使用 gcloud CLI 安裝 ECP 輔助元件。
gcloud components install enterprise-certificate-proxy
使用 gcloud CLI 初始化 ECP 憑證設定。
macOS
gcloud auth enterprise-certificate-config create macos \ --issuer="Google Endpoint Verification"
Windows
gcloud auth enterprise-certificate-config create windows \ --issuer="Google Endpoint Verification" \ --provider=current_user \ --store=MY
(選用) 執行下列指令,手動設定 ECP 憑證。
macOS
ECP 設定會儲存在
~/.config/gcloud/certificate_config.json
中的 JSON 檔案。{ "cert_configs": { "macos_keychain": { "issuer": "Google Endpoint Verification" } }, "libs": { "ecp": "<YOUR_GCLOUD_INSTALL_PATH>/google-cloud-sdk/bin/ecp", "ecp_client": "<YOUR_GCLOUD_INSTALL_PATH>/google-cloud-sdk/platform/enterprise_cert/libecp.dylib", "tls_offload": "<YOUR_GCLOUD_INSTALL_PATH>/google-cloud-sdk/platform/enterprise_cert/libtls_offload.dylib" } }
Windows
ECP 設定會儲存在
%APPDATA%\gcloud\certificate_config.json
中的 JSON 檔案。{ "cert_configs": { "windows_store": { "store": "MY", "provider": "current_user", "issuer":"Google Endpoint Verification" } }, "libs": { "ecp": "C:/Users/<USERNAME>/AppData/Local/Google/Cloud SDK/google-cloud-sdk/bin/ecp.exe", "ecp_client": "C:/Users/<USERNAME>/AppData/Local/Google/Cloud SDK/google-cloud-sdk/platform/enterprise_cert/libecp.dll", "tls_offload": "C:/Users/<USERNAME>/AppData/Local/Google/Cloud SDK/google-cloud-sdk/platform/enterprise_cert/libtls_offload.dll" } }
啟用 CBA 和端點驗證佈建憑證。
如果是 gcloud CLI,請執行下列指令。
gcloud config set context_aware/use_client_certificate true
如要使用其他指令列工具 (包括 Terraform),請設定環境變數。
export GOOGLE_API_USE_CLIENT_CERTIFICATE=1
使用未完全支援的作業系統
如果您的作業系統不在支援的作業系統清單中,但您想使用已佈建的端點驗證憑證,可以免除環境的憑證強制執行,改用其他類型的強制執行措施來保護環境。例如使用公司擁有的裝置政策。
請注意,相較於其他類型的強制執行方式,以憑證為基礎的強制執行方式可提供更強大的保護機制,因為這類方式會透過 mTLS 握手,強制執行來自裝置的每個要求。
以下範例說明如何免除環境的憑證強制執行措施,並使用其他類型的強制執行措施保護環境。
在本例中,機構使用 macOS、Windows 和 ChromeOS 裝置。該機構想保護源自Google Cloud 控制台的存取權。
建立存取層級,針對所有裝置強制執行以憑證為基礎的存取權,但 ChromeOS 裝置除外,因為這類裝置必須符合公司擁有的裝置政策。將 YAML 檔案換成下列自訂運算式:
certificateBindingState(origin, device) == CertificateBindingState.CERT_MATCHES_EXISTING_DEVICE || (device.os_type == OsType.DESKTOP_CHROME_OS && device.is_corp_owned_device)
完成先前程序中的步驟。