安全的客户端-服务器应用

使用客户端连接器保护客户端-服务器应用

概览

Chrome Enterprise Premium 是 Google Cloud 的零信任解决方案, 访问集成了威胁防范和数据保护机制的私有应用。 Chrome Enterprise 进阶版使用 Chrome 为所有基于 Web 的 (HTTPS) 应用提供安全访问。

Chrome Enterprise 进阶版客户端连接器可通过创建与在 Google Cloud 和非 Google Cloud 环境中运行的应用之间的安全连接,并提供完整情境和身份感知访问,从而扩展对非 Web 应用的支持。

工作原理

下图提供了客户端连接器的高级架构概览。

Chrome Enterprise Premium 客户端连接器组件

以下是构成客户端连接器的关键组件:

端点验证和客户端代理:客户端连接器可与端点验证集成。端点验证是一个 Chrome 扩展程序,其中包含在用户笔记本电脑或桌面设备上运行的原生轻量级代理,用于报告设备信息。 端点验证还可充当最终用户启动和停止的控制平面 连接到客户端网关

客户端网关:客户端可以连接到的区域性服务器端组件。客户端网关由管理员部署。网关 与 Chrome Enterprise Premium 强制执行系统进行通信 情境感知检查。Chrome Enterprise Premium 强制执行系统使用 Identity-Aware Proxy 和 Access Context Manager(一项灵活的 Chrome Enterprise Premium 零信任政策) 引擎。

客户端连接器将来自最终用户、 客户端和设备通过安全通道(即网关)连接。您可以连接到网络并 在 Google Cloud 中或 Google Cloud您可以使用 Cloud VPN 或 Cloud Interconnect 连接到非 Google Cloud 应用。

准备工作

在启用 Chrome 企业版 Premium 客户端连接器之前,请确保您拥有以下内容:

启用 Chrome Enterprise Premium 客户端连接器

设置专用服务访问通道

客户端连接器使用专用服务访问通道 在 Google 管理的 VPC 网络与使用方之间实现连接 VPC 网络。这可确保将来自用户的流量路由到使用方 VPC 网络。

控制台

  1. 专用服务访问通道需要 预留 IP 地址范围,以免 IP 地址冲突 建立 VPC 网络与 Google 管理的 VPC 网络之间的连接。如需分配 IP 地址范围,请完成以下步骤:

    1. 转到 Google Cloud 控制台中的“VPC 网络”页面。
      转到 VPC 网络

    2. 选择与您的应用关联的 VPC 网络。

    3. 选择专用服务连接标签页。

    4. 专用服务连接标签页中,选择为服务分配的 IP 范围标签页。

    5. 点击分配 IP 范围

    6. 为要分配的 IP 范围输入名称说明

    7. 指定分配的 IP 范围

      • 如需指定 IP 地址范围,请选择自定义,然后输入 CIDR 地址块,例如 192.168.0.0/16
      • 如需指定前缀长度并让 Google 选择可用地址范围,请选择自动,然后输入前缀长度,例如 16

      请指定不小于 /24 的网络。

    8. 点击分配以创建分配的范围。

  2. 请完成以下步骤,创建 VPC 网络对等互连连接:

    1. 转到 Google Cloud 控制台中的“VPC 网络”页面。
      转到 VPC 网络
    2. 选择连接到您的应用的 VPC 网络。
    3. 选择专用服务连接标签页。
    4. 专用服务连接标签页中,选择为服务分配的 IP 范围标签页。
    5. 点击创建连接,在您的 和客户端连接器服务。
    6. 在打开的窗口中,保留关联的服务 (Connected Service) 的默认设置 Producer。对于指定的分配范围,请选择您在上一步中创建的分配范围。
    7. 点击连接以创建连接。
  3. 创建防火墙规则。

    1. 在 Google Cloud 控制台中,转到防火墙页面。
      转到“防火墙”页面
    2. 点击创建防火墙规则
    3. 输入防火墙规则的名称
      该名称在项目中必须是唯一的。
    4. 可选:您可以启用防火墙规则日志记录
      • 点击日志 > 开启
      • 如需省略元数据,请展开日志详情,然后清除包含 元数据
    5. 指定与您的应用连接的网络
    6. 指定规则的优先级。数字越小,表示 优先级
    7. 选择入站作为流量方向
    8. 对于对匹配项执行的操作,选择允许
    9. 对于目标,选择网络中的所有实例
    10. 对于来源过滤条件,选择 IPv4 范围,然后输入 第 1 步中的 addressprefixLength 值 以 CIDR 格式表示分配的 IP 范围请使用以下格式 0.0.0.0/0(适用于任何 IPv4 来源)。
    11. 对于协议和端口,选择全部允许以让规则生效 适用于所有协议和目标端口。
    12. 点击创建

gcloud

  1. 专用服务访问通道需要 预留 IP 地址范围,以免 IP 地址冲突 建立 VPC 网络与 Google 管理的 VPC 网络之间的连接。运行 来分配 IP 范围

    gcloud compute addresses create RESERVED_RANGE \
      --network=CONSUMER_NETWORK \
      --project=CONSUMER_PROJECT \
      --prefix-length=16 \
      --purpose=VPC_PEERING \
      --global
    

    替换以下内容:

    • RESERVED_RANGE:要为 VPC 对等互连预留的 IP 地址范围的名称。名称只能包含小写字母, 数字和连字符
    • CONSUMER_NETWORK:所连接的 VPC 网络的名称 应用
    • CONSUMER_PROJECT:托管 CONSUMER_NETWORK
  2. 创建 VPC 对等互连连接。

    gcloud services vpc-peerings connect \
      --network=CONSUMER_NETWORK \
      --project=CONSUMER_PROJECT \
      --ranges=RESERVED_RANGE \
      --service="servicenetworking.googleapis.com"
    

    替换以下内容:

    • CONSUMER_NETWORK:所连接的 VPC 网络的名称 应用
    • CONSUMER_PROJECT:托管 CONSUMER_NETWORK
    • RESERVED_RANGE:为 VPC 对等互连预留范围的名称。
  3. 获取已分配的 IP 范围的详细信息。

    gcloud compute addresses describe RESERVED_RANGE \
      --global \
      --project=CONSUMER_PROJECT
    

    替换以下内容:

    • RESERVED_RANGE:为 VPC 对等互连预留范围的名称。
    • CONSUMER_PROJECT:托管 CONSUMER_NETWORK
  4. 使用上一个输出中的 addressprefixLength 值 以 CIDR 格式表示分配的 IP 范围,然后创建 防火墙规则

    gcloud compute firewall-rules create "allow-peered-ingress" \
      --network=CONSUMER_NETWORK \
      --project=CONSUMER_PROJECT \
      --direction ingress \
      --action allow \
      --source-ranges={Allocated IP range in CIDR format i.e. address/prefixLength} \
      --rules=all
    

    替换以下内容:

    • CONSUMER_NETWORK:所连接的 VPC 网络的名称 应用
    • CONSUMER_PROJECT:托管 CONSUMER_NETWORK

如需了解如何配置防火墙规则,请参阅使用 VPC 防火墙规则

设置客户端连接器资源

您必须设置两种类型的资源:

  • 客户端连接器服务:为一组 客户端网关
  • 客户端网关:指客户端连接器服务,用于控制 您要管理用户流量的区域。

每个网域和一个客户端只能使用一项客户端连接器服务 每个客户端连接器服务的每个区域允许有 1 个网关。此外,您还可以 只能使用以下区域托管客户端连接器服务,并且 网关资源:asia-east1europe-west1us-east1us-central1

创建客户端连接器服务

控制台

  1. 转到 IAP 管理页面

    前往 IAP

  2. 点击连接器 >启用客户端连接器

  3. 输入将从代管式客户端接收流量的 VPC 网络。

  4. 选择客户端可以连接的区域。请注意, 因此您无需在创建、验证或移除客户端网关部分创建网关, 过程。

  5. 输入您要从其访问的 客户端连接器。

  6. 点击启用客户端连接器。创建连接器可能需要几分钟的时间。

gcloud

运行以下命令:

gcloud beta beyondcorp client-connector services create CLIENT_CONNECTOR_SERVICE_NAME \
  --project=CONSUMER_PROJECT \
  --location=SERVICE_LOCATION \
  --config-from-file=/path/to/file/config.json

其中 config.json 是:

   {
     "ingress": {
       "config": {
         "transportProtocol": "TCP",
         "destinationRoutes": [{
           "address": "DESTINATION_ADDRESS",
           "netmask": "DESTINATION_MASK"
         }]
       }
     },
     "egress": {
       "peeredVpc": {
         "networkVpc": "projects/CONSUMER_PROJECT/global/networks/CONSUMER_NETWORK"
       }
     }
   }

替换以下内容:

  • CLIENT_CONNECTOR_SERVICE_NAME:客户端的名称 连接器服务。
  • CONSUMER_PROJECT:托管 CONSUMER_NETWORK
  • SERVICE_LOCATION:要在其中创建客户端的区域 连接器服务。您可将以下某个区域指定为 支持:asia-east1europe-west1us-east1us-central1
  • DESTINATION_ADDRESS:该目的地的主机地址 以及托管应用的子网例如,如果您的应用使用 10.0.0.0/28,地址为 10.0.0.0
  • DESTINATION_MASK:目标子网的网络掩码 来托管应用例如,如果您的应用使用 10.0.0.0/28, 则掩码为 255.255.255.240
  • CONSUMER_NETWORK:与应用关联的 VPC 网络的名称。

API

运行以下命令:

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-d @config.json \
https://beyondcorp.googleapis.com/v1/projects/CONSUMER_PROJECT/locations/SERVICE_LOCATION/clientConnectorServices?client_connector_service_id=CLIENT_CONNECTOR_SERVICE_NAME

其中 config.json 是:

   {
     "ingress": {
       "config": {
         "transportProtocol": "TCP",
         "destinationRoutes": [{
           "address": "DESTINATION_ADDRESS",
           "netmask": "DESTINATION_MASK"
         }]
       }
     },
     "egress": {
       "peeredVpc": {
         "networkVpc": "projects/CONSUMER_PROJECT/global/networks/CONSUMER_NETWORK"
       }
     }
   }

替换以下内容:

  • DESTINATION_ADDRESS:该目的地的主机地址 以及托管应用的子网例如,如果您的应用使用 10.0.0.0/28,地址为 10.0.0.0
  • DESTINATION_MASK:目标子网的网络掩码 来托管应用例如,如果您的应用使用 10.0.0.0/28, 则掩码为 255.255.255.240
  • CONSUMER_PROJECT:托管 CONSUMER_NETWORK
  • CONSUMER_NETWORK:所连接的 VPC 网络的名称 应用
  • SERVICE_LOCATION:要在其中创建客户端的区域 连接器服务。
  • CLIENT_CONNECTOR_SERVICE_NAME:您的客户端连接器服务的名称。

通过列出服务,验证是否已创建客户端连接器服务

控制台

  1. 转到 IAP 管理页面

    前往 IAP

  2. 点击连接器。您的连接器应列在客户端 连接器部分,并且应该为状态显示一个绿色对勾标记。

gcloud

运行以下命令:

gcloud beta beyondcorp client-connector services list \
  --project=CONSUMER_PROJECT \
  --location=SERVICE_LOCATION

替换以下内容:

  • CONSUMER_PROJECT:托管 CONSUMER_NETWORK
  • SERVICE_LOCATION:要在其中创建客户端的区域 连接器服务。

API

运行以下命令:

curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
https://beyondcorp.googleapis.com/v1/projects/CONSUMER_PROJECT/locations/SERVICE_LOCATION/clientConnectorServices

替换以下内容:

  • CONSUMER_PROJECT:托管 CONSUMER_NETWORK 的项目的 ID。
  • SERVICE_LOCATION:客户端连接器所在的区域 服务。

可选:更新客户端连接器服务

控制台

完成以下步骤以更新目标路由:

  1. 转到 IAP 管理页面

    前往 IAP

  2. 点击连接器

  3. 客户端连接器部分,点击 要更新的客户端连接器。

  4. 输入目标子网的新主机地址和网络掩码 然后点击更新客户端连接器

gcloud

通过运行以下命令更新目标路由:

gcloud beta beyondcorp client-connector services update CLIENT_CONNECTOR_SERVICE_NAME \
  --project=CONSUMER_PROJECT \
  --location=SERVICE_LOCATION \
  --config-from-file=/path/to/file/config.json

其中 config.json 是:

{
  "ingress":{
    "config":{
      "destinationRoutes":[
        {
          "address":"NEW_DESTINATION_ADDRESS1",
          "netmask":"NEW_DESTINATION_MASK1"
        },
        {
          "address":"NEW_DESTINATION_ADDRESS2",
          "netmask":"NEW_DESTINATION_MASK2"
        }
      ]
    }
  }
}

替换以下内容:

  • CLIENT_CONNECTOR_SERVICE_NAME:客户端的名称 连接器服务。
  • CONSUMER_PROJECT:托管 CONSUMER_NETWORK
  • SERVICE_LOCATION:客户端连接器所在的区域 服务。
  • NEW_DESTINATION_ADDRESS1NEW_DESTINATION_ADDRESS2: 托管应用的目标子网的新主机地址。
  • NEW_DESTINATION_MASK1NEW_DESTINATION_MASK2: 为目标子网添加新网络掩码

API

如需更新目标路由,请运行以下命令:

curl -X PATCH \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-d @update.json \
https://beyondcorp.googleapis.com/v1/projects/CONSUMER_PROJECT/locations/SERVICE_LOCATION/clientConnectorServices/CLIENT_CONNECTOR_SERVICE_NAME?update_mask=ingress.config.destinationRoutes

其中 update.json 为:

{
  "ingress":{
    "config":{
      "destinationRoutes":[
        {
          "address":"NEW_DESTINATION_ADDRESS1",
          "netmask":"NEW_DESTINATION_MASK1"
        },
        {
          "address":"NEW_DESTINATION_ADDRESS2",
          "netmask":"NEW_DESTINATION_MASK2"
        }
      ]
    }
  }
}

替换以下内容:

  • CONSUMER_PROJECT:托管 CONSUMER_NETWORK
  • SERVICE_LOCATION:客户端连接器所在的区域 服务。
  • CLIENT_CONNECTOR_SERVICE_NAME:您的客户端连接器服务的名称。
  • NEW_DESTINATION_ADDRESS1NEW_DESTINATION_ADDRESS2:托管应用的目标子网的新主机地址。
  • NEW_DESTINATION_MASK1NEW_DESTINATION_MASK2: 为目标子网添加新网络掩码

可选:移除客户端连接器服务

控制台

  1. 转到 IAP 管理页面

    前往 IAP

  2. 点击连接器

  3. 客户端连接器部分,点击垃圾桶图标以移除 客户端连接器服务和网关此过程可能耗时几分钟。

gcloud

运行以下命令:

gcloud beta beyondcorp client-connector services delete CLIENT_CONNECTOR_SERVICE_NAME \
  --project CONSUMER_PROJECT \
  --location SERVICE_LOCATION

替换以下内容:

  • CLIENT_CONNECTOR_SERVICE_NAME:客户端的名称 连接器服务。
  • CONSUMER_PROJECT:托管 CONSUMER_NETWORK
  • SERVICE_LOCATION:客户端连接器所在的区域 服务。

API

运行以下命令:

curl -X DELETE \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
https://beyondcorp.googleapis.com/v1/projects/CONSUMER_PROJECT/locations/SERVICE_LOCATION/clientConnectorServices/CLIENT_CONNECTOR_SERVICE_NAME

替换以下内容:

  • CONSUMER_PROJECT:托管 CONSUMER_NETWORK
  • SERVICE_LOCATION:客户端连接器所在的区域 服务。
  • CLIENT_CONNECTOR_SERVICE_NAME:您的客户端连接器服务的名称。

创建、验证或移除客户端网关

控制台

  1. 如果您使用控制台设置客户端连接器,则在您在前面的步骤中创建客户端连接器服务时,系统会创建客户端网关。

  2. 如需验证客户端网关是否已启动并运行,请执行以下操作:

    1. 转到 IAP 管理页面

      前往 IAP

    2. 点击连接器。您的连接器以及关联的网关 列于客户端连接器部分,且应包含 绿色对勾标记。
  3. 可选:如需移除客户端网关,请完成以下步骤。

    1. 转到 IAP 管理页面

      前往 IAP

    2. 点击连接器

    3. 客户端连接器部分,点击 客户端连接器中移除网关。

    4. 从连接器服务中移除区域,方法是取消选中 网关区域下拉列表,然后点击更新客户端连接器

gcloud

  1. 创建客户端网关。

    gcloud beta beyondcorp client-connector gateways create CLIENT_GATEWAY_NAME \
      --project CONSUMER_PROJECT \
      --location GATEWAY_LOCATION \
      --client-connector-service \
      projects/CONSUMER_PROJECT/locations/SERVICE_LOCATION/clientConnectorServices/CLIENT_CONNECTOR_SERVICE_NAME
    

    替换以下内容:

    • CLIENT_GATEWAY_NAME:客户端网关的名称。
    • CONSUMER_PROJECT:托管 CONSUMER_NETWORK
    • GATEWAY_LOCATION:要在其中创建客户端的区域 网关。
    • SERVICE_LOCATION:客户端连接器所在的区域 服务。
    • CLIENT_CONNECTOR_SERVICE_NAME:客户端的名称 连接器服务。
  2. 验证客户端网关是否已启动并运行。

    gcloud beta beyondcorp client-connector gateways list \
      --project CONSUMER_PROJECT \
      --location GATEWAY_LOCATION
    

    替换以下内容:

    • CONSUMER_PROJECT:托管 CONSUMER_NETWORK 的项目的 ID。
    • GATEWAY_LOCATION:客户端网关所在的区域。
  3. 可选:移除客户端网关。

    gcloud beta beyondcorp client-connector gateways delete CLIENT_GATEWAY_NAME \
      --project CONSUMER_PROJECT \
      --location GATEWAY_LOCATION
    

    替换以下内容:

    • CLIENT_GATEWAY_NAME:客户端网关的名称。
    • CONSUMER_PROJECT:托管 CONSUMER_NETWORK 的项目的 ID。
    • GATEWAY_LOCATION:客户端网关所在的区域。

API

  1. 运行以下命令:

    curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    -d "{client_connector_service: \"projects/CONSUMER_PROJECT/locations/SERVICE_LOCATION/clientConnectorServices/CLIENT_CONNECTOR_SERVICE_NAME\"}" \
    https://beyondcorp.googleapis.com/v1/projects/CONSUMER_PROJECT/locations/GATEWAY_LOCATION/clientGateways?client_gateway_id=CLIENT_GATEWAY_NAME
    

    替换以下内容:

    • CONSUMER_PROJECT:托管 CONSUMER_NETWORK
    • SERVICE_LOCATION:客户端连接器所在的区域 服务。
    • CLIENT_CONNECTOR_SERVICE_NAME:您的客户端连接器服务的名称。
    • GATEWAY_LOCATION:要在其中创建客户端网关的区域。
    • CLIENT_GATEWAY_NAME:客户端网关的名称。

    此步骤可能需要几分钟才能完成。

  2. 验证客户端网关是否已启动并运行。

    curl -X GET \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    https://beyondcorp.googleapis.com/v1/projects/CONSUMER_PROJECT/locations/GATEWAY_LOCATION/clientGateways
    

    替换以下内容:

    • CONSUMER_PROJECT:托管 CONSUMER_NETWORK
    • GATEWAY_LOCATION:客户端网关所在的区域 。
  3. 可选:移除客户端网关。

    curl -X DELETE \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    https://beyondcorp.googleapis.com/v1/projects/CONSUMER_PROJECT/locations/GATEWAY_LOCATION/clientGateways/CLIENT_GATEWAY_NAME
    

    替换以下内容:

    • CONSUMER_PROJECT:托管 CONSUMER_NETWORK
    • GATEWAY_LOCATION:客户端连接器所在的区域 网关位置。
    • CLIENT_GATEWAY_NAME:客户端网关的名称。

设置情境感知访问权限政策

  1. 确定主账号或创建用户群组。确定需要访问受保护的非 Web 应用的用户。或者,您也可以创建用户群组,以简化配置和管理。

  2. 可选:创建访问权限级别 在 Access Context Manager 中定义情境感知规则,从而 限制对您应用的访问

  3. 为客户端配置 IAM 政策 连接器服务资源,并向主账号或用户组授予访问非 Web 应用所需的 Cloud BeyondCorp Client Connector Service User 角色 (roles/beyondcorp.clientConnectorServiceUser)。或者,您可以指定 IAM 条件 仅当满足访问权限级别时再预配角色要更新 IAM 政策,您可以使用控制台或 API。

    在控制台中,完成以下步骤:

    1. 转到 IAP 管理页面

      前往 IAP

    2. 点击应用
    3. 如果您之前未配置 OAuth 权限请求页面, 您必须执行此操作才能完成此步骤。在关联新应用中 部分中,在非 Web 应用下选择您的连接器。
    4. 在随即打开的窗口中,点击添加主账号
    5. 向主账号或用户群组授予必需的 Cloud BeyondCorp Client Connector Service User 角色 (roles/beyondcorp.clientConnectorServiceUser) 访问非 Web 应用。您也可指定访问权限级别 仅当满足访问权限级别时再预配角色。如需指定访问权限级别,您必须是组织管理员,或者对组织访问权限级别拥有 viewedit 权限。
    6. 点击保存

更新 IAM 政策

控制台

  1. 转到 IAP 管理页面

    前往 IAP

  2. 点击应用标签页,然后在资源列表中展开 非 Web 应用
  3. 选择您的客户端连接器。包含以下 IAM 权限的部分: 您的连接器将打开。
  4. 您可以更新与客户端连接器关联的 IAM 政策 点击“?”

gcloud

  1. 读取现有政策。getIamPolicy() 方法会读取现有的 将客户端连接器服务资源的 IAM 政策添加到 policy.json

    gcloud beta beyondcorp client-connector services get-iam-policy CLIENT_CONNECTOR_SERVICE_NAME \
      --project=CONSUMER_PROJECT \
      --location=SERVICE_LOCATION > policy.json
    

    替换以下内容:

    • CLIENT_CONNECTOR_SERVICE_NAME:客户端的名称 连接器服务。
    • CONSUMER_PROJECT:托管 CONSUMER_NETWORK
    • SERVICE_LOCATION:客户端所在的区域 。
  2. 修改返回的政策。更新 policy.json 中的绑定以包含 新的 IAM 角色分配。您可以在文本编辑器中执行此操作,也可以通过编程方式执行此操作。示例:

    {
                "bindings": [
                  {
                    "role": "roles/beyondcorp.clientConnectorServiceUser",
                    "members": [
                      "user:EXAMPLE_USER@EXAMPLE.COM",
                      "group:EXAMPLE_GROUP@EXAMPLE.COM",
                    ],
                    "condition":
                     {
                       "expression":
            "'accessPolicies/POLICY_NAME/accessLevels/LEVEL_NAME' in
            request.auth.access_levels",
                      "title": "CONDITION_NAME"
                    }
                  }
                ]
    }
    

    替换以下内容:

    • POLICY_NAME:您的 Access Context Manager 访问权限政策的数字名称
    • LEVEL_NAME:您的 Access Context Manager 访问权限级别的名称
    • CONDITION_NAMEIAM 条件的标题文本。
  3. 写入更新后的政策。您可以使用 setIamPolicy() 方法写入 更新后的 IAM 政策。示例:

    gcloud beta beyondcorp client-connector services set-iam-policy CLIENT_CONNECTOR_SERVICE_NAME policy.json \
      --project=CONSUMER_PROJECT \
      --location=SERVICE_LOCATION

    替换以下内容:

    • CLIENT_CONNECTOR_SERVICE_NAME:客户端连接器服务的名称。
    • CONSUMER_PROJECT:托管 CONSUMER_NETWORK 的项目的 ID。
    • SERVICE_LOCATION:客户端连接器服务所在的区域。

API

  1. 读取现有政策。getIamPolicy() 方法会读取现有的 将客户端连接器服务资源的 IAM 政策添加到 policy.json

    curl -X GET \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    https://beyondcorp.googleapis.com/v1/projects/CONSUMER_PROJECT/locations/SERVICE_LOCATION/clientConnectorServices/CLIENT_CONNECTOR_SERVICE_NAME:getIamPolicy > policy.json
    

    替换以下内容:

    • CONSUMER_PROJECT:托管 CONSUMER_NETWORK
    • SERVICE_LOCATION:客户端连接器服务所在的区域。
    • CLIENT_CONNECTOR_SERVICE_NAME:您的客户端连接器服务的名称。
  2. 修改返回的政策。更新 policy.json 中的绑定以包含 新的 IAM 角色分配。为此,您可以使用 或以编程方式示例:

     {
       "policy": {
          "bindings": [
            {
              "role": "roles/beyondcorp.clientConnectorServiceUser",
              "members": [
                "user:EXAMPLE_USER@EXAMPLE.COM",
                "group:EXAMPLE_GROUP@EXAMPLE.COM",
             ],
             "condition":
              {
                "expression":
     "'accessPolicies/POLICY_NAME/accessLevels/LEVEL_NAME' in
     request.auth.access_levels",
                "title": "CONDITION_NAME"
              }
           }
         ]
       }
     }
     

    替换以下内容:

    • POLICY_NAME:Access Context Manager 访问权限政策的数字名称
    • LEVEL_NAME:您的 Access Context Manager 访问权限级别的名称
    • CONDITION_NAMEIAM 条件的标题文本。
  3. 写入更新后的政策。您可以使用 setIamPolicy() 方法写入 更新后的 IAM 政策。示例:

    curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    -d @policy.json \
    https://beyondcorp.googleapis.com/v1/projects/CONSUMER_PROJECT/locations/SERVICE_LOCATION/clientConnectorServices/CLIENT_CONNECTOR_SERVICE_NAME:setIamPolicy
     

    替换以下内容:

    • CONSUMER_PROJECT:托管 CONSUMER_NETWORK 的项目的 ID。
    • SERVICE_LOCATION:客户端连接器服务所在的区域。
    • CLIENT_CONNECTOR_SERVICE_NAME:您的客户端连接器服务的名称。

在端点设备(Windows 或 macOS)上安装客户端连接器代理

  1. 按照下列步骤启用“端点验证”扩展程序 在设备上设置端点验证

  2. 启动并运行端点验证后, 更新后的用户会显示开始连接按钮。要访问 受保护的非 Web 应用,用户可以点击启动连接 按钮。

当用户首次发起连接时,端点验证会提示 用户下载并安装客户端连接器二进制文件。或者,您也可以通过以下网址下载客户端连接器二进制文件:

建立连接后,用户可以访问受保护的资源。 用户可以选择点击结束连接按钮来结束连接。

问题排查

如果您在使用客户端连接器时遇到问题,可提供以下信息 ,其中提供了可能解决您的问题的问题排查步骤。

您无法访问自己的应用

客户端连接器网关正在运行,连接已 但仍然无法访问申请。

以下是出现此问题的最常见原因和可能的解决方案:

  • 您未在以下设备上通告分配的 IP 范围: Cloud VPN。如果您使用 Cloud VPN 连接到非 Google Cloud 确保将分配给专用 IP 范围的 IP 范围也通告 服务 通过边界网关协议 (BGP) 访问对等路由器。有关 请参阅在 Cloud Storage 中指定 路由器

  • 您在目标路线中指定的地址和掩码不正确。Ensure 在提供地址时被遮盖位为零。例如: 10.0.10.1 是无效地址,无法提供 255.255.255.0 (/24) 网络掩码正确的地址应为 10.0.10.0

  • 为专用服务分配的 IP 范围之间可能存在 IP 冲突 托管应用的网络所使用的访问权限和 IP 子网。Ensure 这些范围是互斥的当应用托管在非 Google Cloud 网络中时,最常出现此问题。

您收到以下消息:Unable to connect to the network

如果您收到 Unable to connect to the network. Check your network connection and try again. 消息,则表示设备上的互联网连接处于未启用状态。

解决方法:确保您的互联网连接已激活,然后尝试重新连接。

审核日志

如果您是管理员,则可以在 Google Cloud 控制台的日志记录页面中查看 Chrome Enterprise Premium 审核日志,包括客户端连接器审核日志。有关详情,请参阅 Chrome Enterprise Premium 服务审核日志记录

如果您是最终用户,则可以通过完成以下步骤来访问连接日志:

  1. 右键点击浏览器中的端点验证扩展程序。
  2. 点击选项
  3. 选择日志级别的粒度。默认情况下,粒度级别设置为信息
  4. 点击 Show Log

后续步骤