访问其他项目中的资源

Managed Airflow(第 3 代) | Managed Airflow(第 2 代) | Managed Airflow(旧版第 1 代)

本页介绍了如何访问与 Managed Airflow 环境位于不同 Google Cloud 项目中的资源。

如果您想使用一个项目中的服务帐号在 另一个项目中运行环境,请参阅 使用其他项目中的服务帐号

如果您想使用 Airflow 运算符与 Managed Airflow 环境(包括其他项目中的环境)进行交互,请参阅 在其他环境和项目中触发 DAG

我们建议您按以下方式访问其他 Google Cloud 项目中的 资源:

  1. 在 DAG 中,使用环境中预配置的默认连接。

    例如,许多 Google Cloud 运算符都使用 google_cloud_default 连接,并且在您 创建环境时会自动配置该连接。

  2. 向环境的 服务账号授予额外的 IAM 权限和角色,以便该账号可以 访问其他项目中的资源。

确定环境的服务帐号

如需确定环境的服务帐号,请执行以下操作:

控制台

  1. 在 Google Cloud 控制台中,前往环境 页面。

    前往“环境”

  2. 在环境列表中,点击您的环境名称。环境详情 页面会打开。

  3. 前往环境配置 标签页。

  4. 环境的服务帐号列在服务账号 字段中。

    该值是一个电子邮件地址,例如 service-account-name@example-project.iam.gserviceaccount.com

gcloud

gcloud composer environments describe ENVIRONMENT_NAME \
    --location LOCATION \
    --format="get(config.nodeConfig.serviceAccount)"

该值是一个电子邮件地址,例如 service-account-name@example-project.iam.gserviceaccount.com

授予 IAM 角色和权限以访问其他项目中的资源

环境的服务帐号需要获得访问其他项目中的资源的权限。这些角色和权限可能会因您要访问的资源而异。

访问特定资源

我们建议您为特定资源(例如位于其他项目中的单个 Cloud Storage 存储桶)授予角色和权限。在这种方法中,您可以使用基于资源的访问权限和条件角色绑定。

如需访问特定资源,请执行以下操作:

  1. 按照 配置基于资源的访问权限指南操作。
  2. 授予角色和权限时,请将 环境的服务账号指定为 正文。

访问资源类型

或者,您也可以根据资源类型(例如位于其他项目中的所有 Cloud Storage 存储分区)授予角色和权限。

如需访问资源类型,请执行以下操作:

  1. 按照 管理对其他资源的访问权限指南操作。
  2. 授予角色和权限时,请将 环境的服务账号指定为 正文。

授予所需权限和角色后,您可以使用与访问环境所在项目中的资源相同的默认 Airflow 连接来访问其他项目中的资源。

后续步骤