本頁說明如何使用端點驗證所佈建的憑證,啟用憑證存取權 (CBA)。
您可以使用端點驗證,為裝置自動佈建自行簽署的憑證。端點驗證已佈建憑證,讓您在沒有 PKI 基礎架構的情況下使用 CBA。這些憑證會儲存在 macOS 的鑰匙圈、Windows 的憑證存放區,以及 Linux 的檔案系統中。
如果您有 PKI 基礎架構,請參閱這篇文章,瞭解如何啟用 CBA。
您可以在下列作業系統上啟用端點驗證佈建憑證:
- 使用 Chrome 瀏覽器的 macOS 和 Windows
- 使用 Google Cloud CLI 的 macOS、Windows 和 Linux
如果您的作業系統未列於清單中,請參閱使用不完全支援的作業系統。
事前準備
請先確認您符合下列條件再繼續操作:
您為 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 設定會儲存在 JSON 檔案中,位於
~/.config/gcloud/certificate_config.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 設定會儲存在 JSON 檔案中,位於
%APPDATA%\gcloud\certificate_config.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)
完成先前程序中的步驟。