启用 IAP

使用 Identity-Aware Proxy (IAP) 控制对工作站上应用的访问权限。借助 IAP,您可以建立一个中央授权层,从而可以在应用级管理访问权限,而无需依赖网络级防火墙。

您可以根据用户身份、群组成员身份、设备安全状态、位置、IP 地址和其他信号来控制访问权限。用户通过 Web 浏览器和 HTTPS 访问应用,而 IT 团队则在一个位置集中定义和强制执行访问权限政策。

本文档介绍了如何为集群中的工作站上的应用启用 IAP。下图展示了已启用 IAP 的集群:

图 1. 启用了 IAP 的集群

准备工作

在为工作站启用 IAP 之前,您的集群需要满足以下条件:

  • 自定义网域:IAP 仅在采用自定义网域的工作站集群上受支持。
  • 应用负载均衡器:此负载均衡器将使用 Private Service Connect (PSC) 端点处理所有入站 HTTP 流量,并允许您配置 IAP。

如需设置这些组件,请参阅为 Cloud Workstations 设置自定义网域

启用代理

如需为工作站启用 IAP,请按以下步骤操作:

  1. 通过运行以下命令,在集群的应用负载平衡器上启用 IAP:

    gcloud compute backend-services update BACKEND_SERVICE_NAME \
        --iap=enabled,oauth2-client-id=CLIENT_ID,oauth2-client-secret=CLIENT_SECRET \
        --global
    

    替换以下内容:

    • BACKEND_SERVICE_NAME:在为集群设置自定义网域时创建的后端服务的名称。
    • CLIENT_ID:OAuth 2.0 客户端 ID。
    • CLIENT_SECRET:OAuth 2.0 客户端密钥。

    如需详细了解如何设置已启用 IAP 的应用负载均衡器,请参阅在负载均衡器上启用 IAP

  2. 向网域中的用户授予访问权限:

     gcloud iap web add-iam-policy-binding \
         --resource-type=backend-services \
         --service=BACKEND_SERVICE_NAME \
         --member='PRINCIPAL' \
         --role='roles/iap.httpsResourceAccessor' \
         --condition="expression=EXPRESSION,title=TITLE,description=DESCRIPTION"
    

    替换以下内容:

    • BACKEND_SERVICE_NAME:后端服务的名称。
    • PRINCIPAL:要向其授予访问权限的主账号。例如 group:my-group@example.comuser:test-user@example.comdomain:example.com
    • EXPRESSION:使用通用表达式语言 (CEL) 编写的条件表达式。例如,此表达式可用于指定访问权限级别,以配置情境感知访问权限。
    • TITLE:条件的标题。
    • DESCRIPTION:条件的可选说明。 Cloud Workstations 仍会根据在各个工作站资源上配置的 IAM 政策执行 IAM 检查。为避免冗余,请考虑将 IAP 政策配置为向涵盖所有获批工作站用户的广泛群组或整个网域授予权限。您主要可以使用此政策指定访问权限级别,以配置情境感知访问权限。

    如需详细了解如何向用户授予访问权限,请参阅 gcloud iap web add-iam-policy-binding