使用企業憑證啟用以憑證為準的存取權

本頁面說明如何使用企業憑證啟用憑證式存取權 (CBA)

如果沒有公用金鑰基礎架構 (PKI),可以使用端點驗證提供的憑證

零信任存取模型的重要規定是只允許授權裝置存取。情境感知存取權 CBA 會使用儲存在裝置安全 KeyStore 中的憑證和私密金鑰,判斷裝置是否已獲得授權。如要啟用這項功能,請完成下列程序。

事前準備

確認您已為 Google Cloud 專案建立 CBA 存取層級。如需建立存取層級,請參閱「建立憑證式存取層級」。

請使用下列其中一種方法,確保您在 Google Cloud 資源上強制執行 CBA:

在 Google Cloud 資源上強制執行 CBA 時,授權使用者必須出示有效的裝置憑證,才能存取Google Cloud 資源。

上傳信任錨點

如要允許情境感知存取權收集及驗證裝置的企業憑證,您必須上傳用於核發裝置憑證的信任錨點。信任錨點是自行簽署的根 CA 憑證,以及相關的中繼和從屬憑證。如要上傳信任錨點,請完成下列步驟:

  1. Google 管理控制台中,依序前往「裝置」>「網路」>「憑證」,然後選取要上傳信任錨點的機構單位。請確認所選機構單位包含要授予存取權的使用者。

  2. 選取「新增憑證」,然後輸入根憑證名稱。

  3. 按一下「上傳」即可上傳憑證。

  4. 選取「啟用端點驗證」,然後按一下「新增」

上傳的憑證應為 CA 憑證,也就是安裝在公司裝置上的用戶端憑證核發單位。如果貴公司沒有 CA 憑證和相應的用戶端憑證,可以透過 Google Cloud 憑證授權單位服務建立。將用戶端憑證安裝到原生金鑰儲存區的步驟因作業系統而異,不在本文討論範圍內。

設定使用者的 Chrome 瀏覽器,使用企業憑證

按照「設定端點驗證」一文中的說明,為貴機構的所有使用者安裝 Chrome 的端點驗證擴充功能。這個擴充功能會將憑證中繼資料同步到 Google Cloud的後端。

設定瀏覽器擴充功能後,請設定 AutoSelectCertificateForURLs Chrome 政策,允許端點驗證透過 Chrome 搜尋及收集裝置憑證。

  1. 確認 Chrome 瀏覽器雲端管理服務可管理使用者的 Chrome 瀏覽器。

  2. 在管理控制台中新增 AutoSelectCertificateForUrls 政策:

    1. 依序前往「裝置」>「Chrome」>「設定」>「使用者與瀏覽器設定」>「用戶端憑證」

    2. 選取適當的組織單位。

    3. 新增政策。

      以下範例會新增 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 資源。

驗證政策設定 (選用)

  1. 在 Chrome 瀏覽器中輸入 chrome://policy

  2. 確認 AutoSelectCertificateForUrls 列在「Chrome 政策」下方。

  3. 確認「套用對象」的值為「裝置」。在 ChromeOS 中,「適用對象」的值為「目前使用者」

  4. 確認政策的「狀態」未顯示「衝突」。 如果狀態有衝突,請參閱「瞭解 Chrome 政策管理」一文。

設定指令列工具以使用企業憑證

如果貴機構的使用者需要從指令列存取 Google Cloud 資源,必須完成下列程序,才能在指令列工具中透過企業憑證啟用 CBA。

支援的指令列工具有:

  • Google Cloud CLI

  • Terraform CLI (需要 gcloud CLI 才能安裝及設定輔助元件)。

由於裝置憑證儲存在原生金鑰儲存區中,因此 Google Cloud CLI 會與名為「企業憑證 Proxy」(ECP) 的開放原始碼元件一併封裝,以便與金鑰管理 API 互動。

如果您使用 Windows 系統,必須安裝 Visual Studio C++ 執行階段程式庫

支援的作業系統及其各自的內建金鑰儲存區包括:

  • macOS (附鑰匙圈)

  • 使用 CryptoAPI 的 Microsoft Windows

  • Linux (使用 PKCS #11)

ECP 必須設定必要的 metadata 資訊,才能在金鑰儲存區中找到憑證。

使用 Google Cloud CLI 安裝及設定 ECP

  1. 安裝 Google Cloud CLI 並啟用 CBA。 安裝時啟用 bundled python 選項。

  2. 如果是 macOS 和 Linux,請下載 install.sh 指令碼並執行:

    $ ./google-cloud-sdk/install.sh
    
  3. 使用 Google Cloud CLI 安裝 ECP 輔助元件:

    gcloud components install enterprise-certificate-proxy
    
  4. 使用 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

$ gcloud config set context_aware/use_client_certificate true

如要為所有其他指令列工具 (包括 Terraform) 啟用 CBA,請將環境變數 GOOGLE_API_USE_CLIENT_CERTIFICATE 設為 true

後續步驟