访问权限控制

本页面介绍了 Cloud Composer API 中提供的访问权限控制选项。

概览

Cloud Composer API 使用 身份和访问权限管理 (IAM) 进行访问权限控制。

在 Cloud Composer API 中,您可以在项目级层配置访问权限控制。 例如,您可以向一组开发者授予对某个项目中的所有 Cloud Composer API 资源的访问权限。

如需详细了解 IAM 及其功能,请参阅 IAM 文档。尤其是参阅管理 IAM 政策

Cloud Composer API 的每种方法都要求调用者拥有必要的权限。如需了解详情,请参阅权限和角色

所需权限

下表列出了调用方在调用 Cloud Composer API 中的每种方法时,或者在借助使用该 API 的 Google Cloud 工具(如 Google Cloud Console 或 Cloud SDK)执行任务时必须拥有的权限。

方法 权限
environments.create composer.environments.create
iam.serviceAccounts.actAs (环境将在其下运行的服务帐户)
environments.delete composer.environments.delete
environments.get composer.environments.get
environments.list composer.environments.list
environments.update composer.environments.update
operations.delete composer.operations.delete
operations.get composer.operations.get
operations.list composer.operations.list

角色

角色 名称 说明 权限 最低资源要求
roles/composer.admin Composer Administrator 提供对 Cloud Composer 资源的完全控制权。
  • composer.*
  • serviceusage.quotas.get
  • serviceusage.services.get
  • serviceusage.services.list
项目
roles/composer.environmentAndStorageObjectAdmin Environment and Storage Object Administrator 提供对 Cloud Composer 资源和所有项目存储分区中对象的完全控制权。
  • composer.*
  • resourcemanager.projects.get
  • resourcemanager.projects.list
  • serviceusage.quotas.get
  • serviceusage.services.get
  • serviceusage.services.list
  • storage.objects.*
项目
roles/composer.environmentAndStorageObjectViewer Environment User and Storage Object Viewer 提供列出及获取 Cloud Composer 环境和操作所需的权限。 以及对所有项目存储分区中对象的只读权限。
  • composer.environments.get
  • composer.environments.list
  • composer.imageversions.*
  • composer.operations.get
  • composer.operations.list
  • resourcemanager.projects.get
  • resourcemanager.projects.list
  • serviceusage.quotas.get
  • serviceusage.services.get
  • serviceusage.services.list
  • storage.objects.get
  • storage.objects.list
项目
roles/composer.user Composer User 提供列出及获取 Cloud Composer 环境和操作所需的权限。
  • composer.environments.get
  • composer.environments.list
  • composer.imageversions.*
  • composer.operations.get
  • composer.operations.list
  • serviceusage.quotas.get
  • serviceusage.services.get
  • serviceusage.services.list
项目
roles/composer.worker Composer Worker 提供运行 Cloud Composer 环境虚拟机所需的权限。适用于服务帐号。
  • artifactregistry.*
  • cloudbuild.*
  • container.*
  • containeranalysis.occurrences.create
  • containeranalysis.occurrences.delete
  • containeranalysis.occurrences.get
  • containeranalysis.occurrences.list
  • containeranalysis.occurrences.update
  • logging.logEntries.create
  • monitoring.metricDescriptors.create
  • monitoring.metricDescriptors.get
  • monitoring.metricDescriptors.list
  • monitoring.monitoredResourceDescriptors.*
  • monitoring.timeSeries.*
  • pubsub.snapshots.create
  • pubsub.snapshots.delete
  • pubsub.snapshots.get
  • pubsub.snapshots.list
  • pubsub.snapshots.seek
  • pubsub.snapshots.update
  • pubsub.subscriptions.consume
  • pubsub.subscriptions.create
  • pubsub.subscriptions.delete
  • pubsub.subscriptions.get
  • pubsub.subscriptions.list
  • pubsub.subscriptions.update
  • pubsub.topics.attachSubscription
  • pubsub.topics.create
  • pubsub.topics.delete
  • pubsub.topics.detachSubscription
  • pubsub.topics.get
  • pubsub.topics.list
  • pubsub.topics.publish
  • pubsub.topics.update
  • pubsub.topics.updateTag
  • remotebuildexecution.blobs.get
  • resourcemanager.projects.get
  • resourcemanager.projects.list
  • serviceusage.quotas.get
  • serviceusage.services.get
  • serviceusage.services.list
  • source.repos.get
  • source.repos.list
  • storage.buckets.create
  • storage.buckets.get
  • storage.buckets.list
  • storage.objects.*
项目

原初角色

角色 名称 说明 权限 最低资源要求
roles/owner Owner 该原初角色可提供 Cloud Composer 资源的完全控制权。 composer.operations.list
composer.operations.get
composer.operations.delete
composer.environments.list
composer.environments.get
composer.environments.delete
composer.environments.update
composer.environments.create
iam.serviceAccounts.actAs
项目
roles/editor Editor 该原初角色可提供 Cloud Composer 资源的完全控制权。 composer.operations.list
composer.operations.get
composer.operations.delete
composer.environments.list
composer.environments.get
composer.environments.delete
composer.environments.update
composer.environments.create
iam.serviceAccounts.actAs
项目
roles/reader Viewer 该原初角色可为用户提供列出和获取 Cloud Composer 资源的权限。 composer.operations.list
composer.operations.get
composer.environments.list
composer.environments.get
项目

执行常见任务的权限

角色对应一组权限。本部分列出了执行常见任务所需的角色或权限。

任务 权限和/或角色
访问受 IAP 保护的 Airflow 网页界面 composer.environments.get
使用“gcloud”命令行工具运行 Airflow CLI composer.environments.get
container.clusters.getCredentials
roles/container.developer
查看 Cloud Console 中的“环境”页面 composer.environments.list
servicemanagement.projectSettings.get
查看 Google Cloud 的操作套件日志和指标 roles/logging.viewer
roles/monitoring.viewer
创建环境 composer.environments.create
iam.serviceAccounts.actAs (环境将在其下运行的服务帐户)
更新和删除环境,包括设置环境变量以及安装/更新 Python 软件包 environments.delete
environments.update
将文件上传到 DAGs 和 Plugins 文件夹,以及访问 Logs 文件夹中的 Airflow 日志 在存储分区或项目级层分配的 storage.objectAdmin 权限

查找 DAG 目标存储分区所需的 composer.environments.get 权限

通过 gcloud 进行访问权限控制

如需分配预定义的角色,请执行 gcloud projects get-iam-policy 命令来获取当前政策,使用 roles/composer.admin (Composer Administrator) 角色或 roles/composer.user (Composer User) 角色更新政策绑定,然后执行 gcloud projects set-iam-policy 命令。如需详细了解如何使用 gcloud 分配角色,请参阅 IAM 文档的授予、更改和撤消资源的访问权限页面。

如需配置具有 Cloud Composer 权限的自定义角色,请执行 gcloud iam roles create 命令,并在命令中包括角色表中的所需权限列表。 然后,使用新配置的自定义角色更新 IAM 政策。如需了解详情,请参阅 IAM 文档中的创建自定义角色页面。

通过 Cloud Console 进行访问权限控制

您可以使用 Cloud Console 来为您的环境和项目管理访问权限控制。

要在项目级别设置访问控制,请执行以下操作:

  1. 在 Google Cloud Console 中打开 IAM 页面
  2. 选择您的项目,然后点击继续
  3. 点击添加成员
  4. 输入先前未对其授予任何 IAM 角色的新成员的电子邮件地址。
  5. 从下拉菜单中选择所需的角色。
  6. 点击添加
  7. 验证该成员是否列在您所授予的角色下方。