Cloud Composer 3 | Cloud Composer 2 | Cloud Composer 1
本页介绍了如何使用 Workforce Identity Federation 配置对 Cloud Composer 环境的用户访问权限。
Cloud Composer 中的员工身份联合简介
借助员工身份联合,您可以使用外部身份提供方 (IdP) 对员工(用户群组,例如员工、合作伙伴和承包商)通过 IAM 进行身份验证和授权,以便用户能够访问 Google Cloud 服务。如需详细了解员工身份联合,请参阅员工身份联合。
如果您的项目中配置了员工身份联合,您可以通过以下方式访问您的环境:
- Google Cloud 控制台中的 Cloud Composer 页面
- Airflow 界面
- Google Cloud CLI,包括运行 Airflow CLI 命令
- Cloud Composer API
- Airflow REST API
准备工作
您无需以任何特定方式配置环境即可支持员工身份联合。Cloud Composer 3 中的所有 Airflow build 都支持员工身份联合。
适用于员工身份联合的 Cloud Storage 限制适用于环境的存储分区。具体而言,您必须在环境的存储分区上启用统一存储分区级访问权限,才能允许外部身份将其 DAG 和文件上传到此存储分区。
从 Airflow 发送的电子邮件仅包含适用于 Google 账号的 Airflow 界面网址。由于外部身份只能通过外部身份的 Airflow 界面网址访问 Airflow 界面,因此必须调整链接(将其更改为外部身份的网址)。
使用员工身份联合设置对环境的访问权限
本部分介绍了配置外部身份对 Cloud Composer 环境的访问权限的步骤。
配置身份提供方
按照配置员工身份联合指南为您的身份提供方配置员工身份联合。
向外部身份授予 IAM 角色
在身份和访问权限管理中,向一组外部身份授予 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 控制台中访问 Cloud Composer 页面
Google Cloud 员工身份联合控制台可提供对 Cloud Composer 页面的访问权限。
在 Google Cloud “Workforce Identity Federation”控制台的 Composer 页面中,您可以访问用于管理环境、Cloud Composer 日志、监控和 DAG 界面的界面。
联合控制台中指向 Airflow 界面的所有链接都指向外部身份的 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 访问您的环境,外部身份必须执行以下操作:
- 使用外部身份凭据通过 Google Cloud CLI 登录。
- 运行
gcloud composer environments
命令。
访问 Cloud Composer API
Cloud Composer API 可与外部身份搭配使用,通过支持的身份验证方法(例如 OAuth 令牌)管理所有 Cloud Composer 环境。
访问 Airflow REST API
Airflow REST API 可通过外部身份的端点使用,并支持 OAuth 令牌等身份验证方法。
如需获取您环境的外部身份的端点网址,请运行以下 Google Cloud CLI 命令:
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)"