使用企业证书启用基于证书的访问权限

本页介绍了如何启用 基于证书的访问权限 (CBA) 使用您的企业证书。

如果您没有公钥基础架构 (PKI),则可以使用端点验证预配的证书

零信任访问模型的一个重要要求是仅允许访问 授权的设备。情境感知访问权限 CBA 会使用存储在设备上安全密钥库中的证书及其私钥来确定设备是否已获得授权。如需启用此功能,请完成以下步骤。

准备工作

确保您已为 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 证书的通用名称。

完成此配置后,用户可以使用 Chrome 浏览器访问 console-secure.cloud.google.com 中受保护的 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 随附一个名为企业证书代理 (ECP) 的开源组件,用于与密钥管理 API 进行交互。

如果您使用的是 Windows 系统,则必须安装 Visual Studio C++ 运行时库

支持以下操作系统及其各自的原生密钥库:

  • 带钥匙串的 macOS

  • 带有 CryptoAPI 的 Microsoft Windows

  • 采用 PKCS #11 的 Linux

必须为 ECP 配置必要的元数据信息,以找到 证书。

使用 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"
  }
}

完成此配置后,用户可以访问受保护的 Google Cloud 资源 方法是启用 CBA 标志

如需为 Google Cloud CLI 启用 CBA,请设置 context_aware/use_client_certificate 属性设置为 true

要为包括 Terraform 在内的所有其他命令行工具启用 CBA,请将 将环境变量 GOOGLE_API_USE_CLIENT_CERTIFICATE 更改为 true

后续步骤