启用 IAP

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

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

本文档介绍了如何为集群中工作站上的应用启用 IAP。下图展示了启用了 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.com、user:test-user@example.com 或 domain:example.com。
    • EXPRESSION:条件表达式,使用通用表达式语言 (CEL) 编写。例如,此表达式可用于指定访问权限级别,以配置情境感知访问权限。
    • TITLE:条件的标题。
    • DESCRIPTION:条件的可选说明。

    Cloud Workstations 仍会根据在各个工作站资源上配置的 IAM 政策执行 IAM 检查。为避免冗余,请考虑将 IAP 政策配置为向包含所有已获批准的工作站用户或整个网域的广泛群组授予权限。您主要可以使用此政策来指定访问权限级别,以配置情境感知访问权限。

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