本頁面說明如何使用企業憑證啟用憑證存取權 (CBA)。
如果您沒有公用金鑰基礎架構 (PKI),可以使用由端點驗證提供的憑證。
零信任存取模型的一項重要要求,就是只允許存取已授權的裝置。情境感知存取 CBA 會使用儲存在裝置上安全 KeyStore 中的憑證和私密金鑰,判斷裝置是否已授權。如要啟用這項功能,請完成下列程序。
事前準備
請確認您已為 Google Cloud 專案建立 CBA 存取層級。如果您需要建立存取層級,請參閱「建立以憑證為基礎存取權的存取層級」。
請務必使用下列任一方法,對 Google Cloud 資源強制執行 CBA:
(建議) 透過情境感知存取權政策強制實施以憑證為基礎的存取權:設定使用者規則。
使用 VPC Service Controls 強制執行以憑證為基礎的存取權:設定資料相關規則。
當您對 Google Cloud 資源強制執行 CBA 時,授權使用者必須同時出示有效的裝置憑證,才能存取Google Cloud 資源。
上傳信任錨點
如要允許情境感知存取權收集及驗證裝置的企業憑證,您必須上傳用於核發裝置憑證的信任錨點。信任錨點是自行簽署的根 CA 憑證,以及相關的中繼和從屬憑證。如要上傳信任錨點,請完成下列步驟:
在 Google 管理控制台中,依序前往「裝置」 >「網路」 >「憑證」,然後選取要上傳信任錨點的機構單位。請確認您選取的機構單位包含要授予存取權的使用者。
選取「Add Certificate」,然後輸入根憑證的名稱。
按一下「上傳」即可上傳憑證。
選取「啟用端點驗證」,然後按一下「新增」。
您要上傳的憑證應為 CA 憑證,也就是在公司裝置上安裝的用戶端憑證核發者。如果貴公司還沒有 CA 憑證和相應的用戶端憑證,可以透過 Google Cloud 憑證授權單位服務建立。將用戶端憑證安裝至原生金鑰庫的步驟會因作業系統而異,且不在本文的討論範圍。
設定使用者的 Chrome 瀏覽器,以便使用企業憑證
按照「設定端點驗證」中的說明操作,為貴機構的所有使用者安裝 Chrome 端點驗證擴充功能。這項擴充功能可用於將憑證中繼資料同步處理至 Google Cloud的後端。
設定瀏覽器擴充功能後,請設定 AutoSelectCertificateForURLs
Chrome 政策,允許端點驗證功能透過 Chrome 搜尋並收集裝置憑證。
確認使用者的 Chrome 瀏覽器由 Chrome 瀏覽器雲端管理服務管理:
在管理控制台中新增
AutoSelectCertificateForUrls
政策:依序前往「裝置」>「Chrome」>「設定」>「使用者與瀏覽器設定」>「用戶端憑證」。
選取適當的機構單位。
新增政策。
以下範例會新增
AutoSelectCertificateForUrls
政策:{"pattern":"https://[*.]clients6.google.com","filter":{"ISSUER":{"CN":<CERT_ISSUER>}}} {"pattern":"https://console-secure.cloud.google.com","filter":{"ISSUER":{"CN":<CERT_ISSUER>}}} {"pattern":"https://storage.mtls.cloud.google.com","filter":{"ISSUER":{"CN":<CERT_ISSUER>}}}
在這個範例中,
CERT_ISSUER
是 CA 憑證的通用名稱。
設定完成後,使用者就能透過 console-secure.cloud.google.com
上的 Chrome 瀏覽器存取受保護的 Google Cloud 資源。
驗證政策設定 (選用)
在 Chrome 瀏覽器中輸入
chrome://policy
。確認 Chrome 政策下方列有
AutoSelectCertificateForUrls
。確認「套用對象」的值為「裝置」。在 Chrome 作業系統上,「適用於」的值為「目前使用者」。
確認政策的「狀態」未顯示「衝突」。如果狀態有衝突,請參閱「瞭解 Chrome 政策管理」一文。
設定指令列工具以使用企業憑證
如果貴機構的使用者需要透過指令列存取 Google Cloud 資源,則必須完成下列程序,在指令列工具中啟用 CBA 企業憑證。
系統支援下列指令列工具:
Google Cloud CLI
Terraform CLI (您仍需要使用 gcloud CLI 安裝及設定輔助元件)。
由於裝置憑證會儲存在原生金鑰匣中,Google Cloud CLI 會隨附名為 Enterprise Certificate Proxy (ECP) 的開放原始碼元件,用於與金鑰管理 API 互動。
如果您使用的是 Windows 系統,則必須安裝 Visual Studio C++ 執行階段程式庫。
系統支援下列作業系統及其原生金鑰存放區:
使用 macOS 和鑰匙圈
Microsoft Windows 搭配 CryptoAPI
搭配 PKCS #11 的 Linux
您必須為 ECP 設定必要的中繼資料資訊,才能在金鑰庫中找到憑證。
使用 Google Cloud CLI 安裝及設定 ECP
安裝 Google Cloud CLI 並啟用 CBA。啟用
bundled python
選項後安裝。在 macOS 和 Linux 上,請在下載
install.sh
指令碼後執行:$ ./google-cloud-sdk/install.sh
使用 Google Cloud CLI 安裝 ECP 輔助元件:
gcloud components install enterprise-certificate-proxy
使用 Google Cloud CLI 初始化 ECP 憑證設定:
Linux
$ gcloud auth enterprise-certificate-config create linux
--label=<CERT_LABEL> --module=<PKCS11_MODULE_PATH> --slot=<SLOT_ID>
範例:
$ gcloud auth enterprise-certificate-config create linux
--label="Google Endpoint Verification" --module=/usr/lib/x86_64-linux-gnu/pkcs11/libcredentialkit_pkcs11.so.0 --slot=0x1234567
macOS
$ gcloud auth enterprise-certificate-config create macos
--issuer=<CERT_ISSUER>
範例:
$ gcloud auth enterprise-certificate-config create macos
--issuer="Google Endpoint Verification"
Windows
$ gcloud auth enterprise-certificate-config create windows
--issuer=<CERT_ISSUER> --provider=<PROVIDER> --store=<STORE>
範例:
$ gcloud auth enterprise-certificate-config create windows
--issuer="Google Endpoint Verification" --provider=current_user --store=MY
您也可以手動設定 ECP。並以 JSON 檔案的形式儲存在使用者裝置的以下位置:
Linux 和 macOS:
~/.config/gcloud/certificate_config.json
Windows:
%APPDATA%\gcloud\certificate_config.json
如需設定和結構定義的其他範例,請參閱 GitHub 上的 ECP 說明文件。
Linux
{
"cert_configs": {
"pkcs11": {
"label": "<CERT_LABEL>",
"slot": "<SLOT_ID>",
"module": "<PKCS11_MODULE_PATH>"
}
},
"libs": {
"ecp": "/usr/lib/google-cloud-sdk/bin/ecp",
"ecp_client": "/usr/lib/google-cloud-sdk/platform/enterprise_cert/libecp.so",
"tls_offload": "/usr/lib/google-cloud-sdk/platform/enterprise_cert/libtls_offload.so"
}
}
macOS
{
"cert_configs": {
"macos_keychain": {
"issuer": "<CERT_ISSUER>"
}
},
"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
{
"cert_configs": {
"windows_store": {
"store": "MY",
"provider": "current_user",
"issuer": "<CERT_ISSUER>"
}
},
"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 標記,就能透過指令列工具存取受保護的 Google Cloud 資源。
如要為 Google Cloud CLI 啟用 CBA,請將 context_aware/use_client_certificate
屬性設為 true
。
如要為所有其他指令列工具 (包括 Terraform) 啟用 CBA,請將環境變數 GOOGLE_API_USE_CLIENT_CERTIFICATE
設為 true
。