通过员工身份联合访问环境

Cloud Composer 1 | Cloud Composer 2

本页面介绍如何使用员工身份联合配置用户对 Cloud Composer 环境的访问权限。

Cloud Composer 中的员工身份联合简介

借助员工身份联合,您可以使用外部身份提供方 (IdP) 通过 IAM 对员工(一组用户,例如员工、合作伙伴和承包商)进行身份验证和授权,以便用户能够访问 Google Cloud 服务。如需详细了解员工身份联合,请参阅员工身份联合

如果您的项目中配置了员工身份联合,则可以通过以下方式访问您的环境:

  • Google Cloud 控制台中的 Cloud Composer 页面
  • Airflow 界面
  • Google Cloud CLI(包括运行 Airflow CLI 命令)
  • Cloud Composer API
  • Airflow REST API

准备工作

  • 从 2.1.11 版和 Airflow 2.4.3 版开始创建的所有新的 Cloud Composer 环境都支持员工身份联合。您无需以任何特定方式配置环境即可支持员工身份联合。

  • 在 2.1.11 版之前、Airflow 2.4.3 版之前创建的环境以及升级到更高版本的环境不支持员工身份联合。您可以检查您的环境是否支持员工身份联合

  • 针对员工身份联合的 Cloud Storage 限制适用于环境的存储桶。具体来说,您必须对环境的存储桶启用统一存储桶级访问权限,以允许外部身份将其 DAG 和文件上传到此存储桶。

  • 从 Airflow 发送的电子邮件仅包含 Google 帐号的 Airflow 界面网址。由于外部身份只能通过外部身份的 Airflow 界面网址访问 Airflow 界面,因此必须调整关联(更改为外部身份的网址)。

通过员工身份联合设置对环境的访问权限

本部分介绍了配置外部身份对 Cloud Composer 环境的访问权限的步骤。

配置身份提供商

按照配置员工身份联合指南,为身份提供方配置员工身份联合。

向外部身份授予 IAM 角色

在 Identity and Access Management 中,将 IAM 角色授予多组外部身份,以便这些外部身份可以访问您的环境并与之互动:

  • 如需查看 Cloud Composer 专属角色列表,请参阅向用户授予角色。例如,拥有 Environment User and Storage Object Viewer (composer.environmentAndStorageObjectViewer) 角色,用户可以查看环境、访问 Airflow 界面、从 DAG 界面查看和触发 DAG,以及查看环境存储分区中的对象。

  • 如需了解如何将这些角色分配给外部用户,请参阅向主帐号授予 IAM 角色

  • 如需了解如何在 IAM 政策中表示外部身份,请参阅在 IAM 政策中表示员工池用户

检查新用户是否在 Airflow 界面访问权限控制中收到正确的 Airflow 角色

Cloud Composer 处理外部身份的 Airflow 用户,处理方式与 Google 帐号用户相同。系统使用的是主帐号标识符,而不是电子邮件地址。当外部身份首次访问 Airflow 界面时,系统会在 Airflow 基于角色的访问控制系统中自动注册具有默认角色的 Airflow 用户。

Airflow 界面访问权限控制中检查新用户是否收到正确的 Airflow 角色。您可以采用以下两种方法:

  • 允许外部身份在首次访问 Airflow 界面后获得默认角色。如果需要,Airflow 管理员用户可以将此角色更改为其他角色。
  • 添加 Airflow 用户记录,并将用户名和电子邮件字段设置为其主帐号标识符,从而预注册外部身份,向其分配一组所需角色。这样,外部身份将获得您分配给他们的角色,而不是默认角色。

检查环境是否支持员工身份联合

如需检查您的环境是否支持员工身份联合,请运行以下 Google Cloud CLI 命令。如果输出结果显示 URI,则表示您的环境支持员工身份联合。

gcloud composer environments describe ENVIRONMENT_NAME \
  --location LOCATION \
  --format="value(config.airflowByoidUri)"

您需要将其中的:

  • ENVIRONMENT_NAME 替换为环境的名称。
  • LOCATION 替换为环境所在的区域。

示例:

gcloud composer environments describe example-environment \
  --location us-central1 \
  --format="value(config.airflowByoidUri)"

访问 Google Cloud 控制台中的 Cloud Composer 页面

Google Cloud 员工身份联合控制台提供对 Cloud Composer 页面的访问权限。

通过 Google Cloud 员工身份联合控制台中的 Composer 页面,您可以访问用于管理环境、Cloud Composer 日志、监控和 DAG 界面的界面。

联合控制台中指向 Airflow 界面的所有链接均指向外部身份的 Airflow 界面接入点。

对于 2.1.11 之前版本的环境和 2.4.3 之前的 Airflow 版本,其 Airflow 界面链接可能将其标记为“不可用”。这表示此环境不支持 Airflow 界面中的员工身份联合用户。只能通过 Google 帐号访问此环境的 Airflow 界面。

访问 Airflow 界面

Cloud Composer 环境有两个 Airflow 界面网址:一个用于 Google 帐号,另一个用于外部身份。外部身份必须通过外部身份的网址访问 Airflow 界面。

  • 外部身份的网址为 https://<UNIQUE_ID>.composer.byoid.googleusercontent.com

  • Google 账号的网址为 https://<UNIQUE_ID>.composer.googleusercontent.com

只有使用外部身份进行了身份验证的用户才能访问外部身份的网址。如果用户在未登录的情况下访问外部身份的网址,系统会先将他们重定向到指定员工池提供方名称的身份验证门户,然后重定向到身份提供方进行登录,最后重定向到环境的 Airflow 界面。

访问 Google Cloud 控制台中的 DAG 界面

DAG 界面作为联合控制台的一部分供外部身份用户使用。您可以使用 IAM 政策来控制访问权限。

在提供全面员工身份联合支持的环境中,Airflow 基于角色的访问权限也会被考虑在内,并可用于通过设置角色来限制各个用户的 DAG,如使用 Airflow 界面访问权限控制中所述。

访问 Google Cloud CLI

如需通过 Google Cloud CLI 访问您的环境,外部身份必须执行以下操作:

  1. 使用外部身份通过 Google Cloud CLI 登录。
  2. 运行 gcloud composer environments 命令。

访问 Cloud Composer API

Cloud Composer API 可以与外部身份配合使用,从而通过受支持的身份验证方法(如 OAuth 令牌)来管理所有 Composer 环境。

Airflow REST API

Airflow REST API 在外部身份的端点可用,并使用受支持的身份验证方法(如 OAuth 令牌)。

如需获取环境的外部身份端点的网址,请使用 gcloud composer environments describe 命令,如检查环境是否支持员工身份联合部分所示。

后续步骤