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

本頁面說明如何使用企業憑證啟用憑證式存取權 (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. 確認「套用對象」的值為「裝置」。在 Chrome 作業系統上,「適用對象」的值為「目前使用者」

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

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

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

系統支援下列指令列工具:

  • Google Cloud CLI

  • Terraform CLI (仍需使用 gcloud CLI 安裝及設定輔助元件)。

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

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

系統支援下列作業系統和各自的原生金鑰儲存區:

  • macOS (附鑰匙圈)

  • 使用 CryptoAPI 的 Microsoft Windows

  • 使用 PKCS #11 的 Linux

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

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

後續步驟