为 Compute Engine 启用 IAP

本页介绍如何使用 Identity-Aware Proxy (IAP) 保护 Compute Engine 实例。

准备工作

要为 Compute Engine 启用 IAP,您需要以下各项:

如果您尚未设置 Compute Engine 实例,请参阅为 Compute Engine 设置 IAP 以查看完整演示。

使用 Cloud Console 启用 IAP

Configuring the OAuth consent screen

If you haven't configured your project's OAuth consent screen, you need to do so. An email address and product name are required for the OAuth consent screen.

  1. 转到 OAuth 同意屏幕
    配置同意屏幕
  2. 支持电子邮件地址下,选择要显示为公开联系人的电子邮件地址。该电子邮件地址必须属于当前登录的用户帐号,或者属于当前登录的用户所属的 Google 网上论坛。
  3. 输入您要显示的应用名称
  4. 根据需要添加任何可选详细信息。
  5. 点击保存

如需稍后更改 OAuth 同意屏幕上的信息(例如产品名称或电子邮件地址),请重复上述步骤配置同意屏幕。

Creating OAuth credentials

  1. Go to the Credentials page.
    Go to the Credentials page
  2. On the Create credentials drop-down list, select OAuth client ID.
  3. Under Application type, select Web application.
  4. Add a Name for your OAuth client ID.
  5. Click Create. Your OAuth client ID and client secret are generated and displayed on the OAuth client window.
  6. Click OK.
  7. Select the client that you created.
  8. Copy the client ID to the clipboard.
  9. Add the universal redirect URL to the authorized redirect URIs field in the following format:
    https://iap.googleapis.com/v1/oauth/clientIds/CLIENT_ID:handleRedirect

    where CLIENT_ID is the OAuth client ID.

  10. Near the top of the page, click Download JSON. You'll use these credentials in a later step.

Setting up IAP access

  1. Go to the Identity-Aware Proxy page.
    Go to the Identity-Aware Proxy page
  2. Select the project you want to secure with IAP.
  3. Select the checkbox next to the resource you want to grant access to.
  4. On the right side panel, click Add principal.
  5. In the Add principals dialog that appears, enter the email addresses of groups or individuals who should have the IAP-secured Web App User role for the project.

    The following kinds of principals can have this role:

    • Google Account: user@gmail.com
    • Google Group: admins@googlegroups.com
    • Service account: server@example.gserviceaccount.com
    • Google Workspace domain: example.com

    Make sure to add a Google Account that you have access to.

  6. Select Cloud IAP > IAP-secured Web App User from the Roles drop-down list.
  7. Click Save.

Turning on IAP

  1. On the Identity-Aware Proxy page, under HTTPS Resources, find the load balancer that serves the instance group you want to restrict access to. To turn on IAP for a resource,
    To enable IAP:
    • At least one protocol in the load balancer frontend configuration must be HTTPS. Learn about setting up a load balancer.
    • You need the compute.backendServices.update, clientauthconfig.clients.create, and clientauthconfig.clients.getWithSecret permissions. These permissions are granted by roles, such as the Project Editor role. To learn more, see Managing access to IAP-secured resources.
  2. In the Turn on IAP window that appears, click Turn On to confirm that you want IAP to secure your resource. After you turn on IAP, it requires login credentials for all connections to your load balancer. Only accounts with the IAP-Secured Web App User role on the project will be given access.

使用 Google Cloud SDK 启用 IAP

本节介绍如何使用 gcloud 命令行工具为 Compute Engine 应用开启 IAP。尚不支持使用 gcloud 命令行工具为 App Engine 开启 IAP。若要执行此操作,请参阅 App Engine 快速入门

获取 Google Cloud CLI

在设置项目和 IAP 之前,您需要最新版本的 gcloud CLI。获取 gcloud CLI

设置项目

选择要为其启用 IAP 的项目,然后按如下所示进行设置:

  1. 转到“实例组”页面,以确保您的实例包含在实例组中。
  2. 定义后端服务。
  3. 设置外部内部负载均衡。
  4. 设置 OAuth 客户端:
    1. 依次转到 API > 凭据,然后选择要为其启用 IAP 的项目。
    2. 设置 OAuth 同意屏幕
      1. 转到 OAuth 同意屏幕
        配置同意屏幕
      2. 支持电子邮件地址下,选择要显示为公开联系人的电子邮件地址。该电子邮件地址必须属于当前登录的用户帐号,或者属于当前登录的用户所属的 Google 网上论坛。
      3. 输入您要显示的应用名称
      4. 根据需要添加任何可选详细信息。
      5. 点击保存

      如需稍后更改 OAuth 同意屏幕上的信息(例如产品名称或电子邮件地址),请重复上述步骤配置同意屏幕。

    3. 凭据下,点击创建凭据 > OAuth 客户端 ID
    4. 应用类型下,选择 Web 应用,然后添加名称
    5. 输入完详细信息后,点击创建
    6. 在显示的 OAuth 客户端窗口中,记下客户端 ID客户端密钥
    7. 再次选择该客户端。按照 https://iap.googleapis.com/v1/oauth/clientIds/CLIENT_ID:handleRedirect 格式将通用重定向网址添加到已获授权的重定向 URI 字段,其中 CLIENT_ID 是 OAuth 客户端 ID。

启用 IAP

  1. 使用 Google Cloud CLI 运行 gcloud auth login
  2. 按照显示的网址登录。
  3. 登录后,复制显示的验证码并将其粘贴到命令行中。
  4. 对要为其启用 IAP 的项目运行 gcloud config set project PROJECT_ID
  5. 如需启用 IAP,请使用您先前创建的 OAuth 客户端 ID 和密钥,并运行全球范围或区域范围的命令。
    • 全球范围:gcloud compute backend-services update BACKEND_SERVICE_NAME --global --iap=enabled,oauth2-client-id=CLIENT_ID,oauth2-client-secret=CLIENT_SECRET
    • 区域范围:gcloud compute backend-services update BACKEND_SERVICE_NAME --region REGION_NAME --iap=enabled,oauth2-client-id=CLIENT_ID,oauth2-client-secret=CLIENT_SECRET

启用 IAP 后,您可以使用 gcloud 命令行工具并通过 IAM 角色 roles/iap.httpsResourceAccessor 操纵 IAP 访问权限政策。详细了解如何管理角色和权限