使用基于证书的访问权限保护资源

基于证书的访问通过通过设备的 X.509 证书来标识设备,从而保护对多种 Google 资源的访问权限。此功能建立在 BeyondCorp Enterprise 现有的上下文感知访问功能(Endpoint Verification、Access Context Manager、VPC Service Controls 和 Identity-Aware Proxy TCP 转发)的基础之上,并确保只有受信任的设备上的那些用户才能使用 Google 生成的证书可以通过 IAP TCP 转发进行管理访问,也可以使用 Google Cloud Console 或 Google Cloud Client Library for Go 访问 Google Cloud API。

这可提供更可靠的设备身份信号,最重要的是,它可在提供凭据和原始设备证书时授予访问权限,从而防止凭据被盗或意外丢失。

此功能可按照以下步骤设置:

  1. 将 Endpoint Verification 部署到组织中的设备。
  2. 在 Access Context Manager 中创建需要匹配设备证书才能访问的访问权限级别。
  3. 通过 IAP TCP 转发或 VPC Service Controls 服务边界应用访问权限级别,以实施访问限制。
  4. 您的用户可以访问现在受基于证书的访问权限保护的虚拟机实例或 Google Cloud API 的访问权限。

部署 Endpoint Verification

借助 Endpoint Verification,您可以构建访问组织数据的设备清单。作为 BeyondCorp Enterprise 解决方案的一部分,它还提供关键设备信任和基于安全性的访问权限控制,并帮助实施对 Google Cloud 资源的精细访问权限控制。 对于基于证书的访问权限,Endpoint Verification 还负责为每台可信设备生成、注册和展示经 Google 验证的 X.509 证书。

在 Mac、Windows 和 Linux 用户的桌面设备和笔记本电脑上,Endpoint Verification 作为 Chrome 扩展程序运行。管理员可以通过 Google Workspace 管理控制台将其部署到组织的公司自有设备上,组织的成员也可以自行安装

首次安装时,用户应使用最新版本,但必须使用以下版本的 Endpoint Verification 才能支持基于证书的访问权限:

  • Endpoint Verification Chrome 扩展程序:1.0.38 或更高版本
  • 原生帮助程序:Mac 为 0.4.40.0 或更高版本、Windows 为 0.4.36.0 或更高版本、Linux 为 20191007 或更高版本

创建访问权限级别

您需要通过在 Access Context Manager 中创建自定义访问级别来定义在确定对资源的访问时需要证书的访问级别。

用于访问权限级别名称、说明、易记性标题等的值可以是任何有意义的值,但自定义访问权限级别的表达式必须为:

certificateBindingState(origin, device) == CertificateBindingState.CERT_MATCHES_EXISTING_DEVICE

例如,如果您使用 gcloud 工具创建自定义访问权限级别,则可以使用以下命令:

gcloud access-context-manager levels create LEVEL_NAME \
  --title=TITLE \
  --custom-level-spec=FILE \
  --description=DESCRIPTION \
  --policy=POLICY_NAME

FILE 引用的 .yaml 文件的内容只是自定义表达式:

expression: "certificateBindingState(origin, device) == CertificateBindingState.CERT_MATCHES_EXISTING_DEVICE"

应用访问权限级别

现在访问权限级别已创建,最后一个管理步骤是通过应用该访问权限级别来实施其限制。

强制限制对虚拟机的管理访问

您可以通过 IAP TCP 转发功能应用访问权限级别(通过 SSH 和 RDP)对虚拟机实例的管理员权限:

  • 对于被授予 IAP-Secured Tunnel User 角色的用户或群组,请修改权限以添加条件。
  • 使用您之前定义的访问权限级别的名称(即 gcloud 工具示例中 TITLE 的值)按访问权限级别限制访问权限。

对 Google Cloud API 实施访问限制

您可以创建 VPC Service Controls 服务边界,以便在用户尝试访问某些管理 API 时强制执行基于证书的访问权限。当您创建(或修改)服务边界时,对于基于证书的访问,需要指定来自边界外部的请求的访问权限级别。

使用您之前创建的自定义访问权限级别的名称(gcloud 工具示例中的 TITLE 值)在服务边界内包含该名称。

允许用户访问受保护的资源

基于证书的访问限制生效后,您的用户必须启用他们对受保护资源的访问权限。

  • 让用户安装或更新 gcloud 工具,以确保他们的版本支持基于证书的访问权限。

    已安装 gcloud 工具的用户可以使用 gcloud --version 命令确认其版本为 264.0.0 或更高版本。如果需要,您可以使用以下命令更新其版本:

    gcloud components update
    
  • 用户必须运行以下命令才能开始使用基于证书的访问权限:

    gcloud config set context_aware/use_client_certificate true
    
  • 然后,他们可以像往常一样登录 gcloud 工具:

    gcloud auth login
    

完成这些步骤后,您的用户可以返回使用 gcloud 工具来管理虚拟机实例的访问权限和对 Google Cloud API 的访问权限。