Transfer Service for On Premises Data 的 IAM 权限

本页面介绍了本地转移服务所需的 Identity and Access Management (IAM) 权限。

概览

本地转移服务使用 IAM 权限来控制谁可以访问本地转移资源。这些权限通过 IAM 角色授予用户。

我们建议使用用于处理典型使用场景的预定义 IAM 角色。但是,您可能需要包含一组自定义权限的角色,或者希望按照最小权限原则提供权限。在这些情况下,您可以选择创建 IAM 自定义角色来满足您的需求。

每个项目的首次设置都需要 Google Cloud 项目管理员,此账号具有 resourcemanager.projects.setIamPolicy 权限。此权限允许管理员创建和授予 IAM 角色。

创建本地转移作业所需的权限

如需创建和管理本地转移作业,请考虑使用以下类型的帐号:

  • 本地转移服务管理员 (admin) 帐号:管理员帐号用于支持用户帐号;这些帐号可以管理本地代理并设置带宽用量限额。
  • 用户帐号:用户帐号可以创建和启动转移作业。我们建议不要为用户帐号提供删除转移作业的权限。

以下部分介绍使用本地转移服务需要的 IAM 权限。

转移管理员帐号

下表介绍了管理员帐号支持同事执行转移作业所需的权限:

权限 说明
resourcemanager.projects.getIamPolicy

用于确认本地转移服务帐号具有转移所需的 Pub/Sub 权限。

如需详细了解此权限,请参阅项目权限

项目预定义角色 roles/browser 用于授予浏览项目层次结构的读取权限。

storagetransfer.projects.getServiceAccount

在转移项目中启用管理操作,例如项目设置和代理监控。

如需详细了解这些权限,请参阅权限

Storage Transfer Service 预定义角色 roles/storagetransfer.admin 可授予列出的权限。

storagetransfer.jobs.create
storagetransfer.jobs.delete
storagetransfer.jobs.get
storagetransfer.jobs.list
storagetransfer.jobs.patch
storagetransfer.operations.get
storagetransfer.operations.list
storagetransfer.operations.pause
storagetransfer.operations.resume

用户帐号

下表介绍了用户帐号创建和启动转移作业所需的权限:

权限 说明
resourcemanager.projects.getIamPolicy

用于确认本地转移服务帐号具有转移所需的 Pub/Sub 权限。

如需详细了解此权限,请参阅项目权限

项目预定义角色 roles/browser 用于授予浏览项目层次结构的读取权限。

storagetransfer.projects.getServiceAccount

允许用户创建、获取、更新和列出转移作业。

如需详细了解这些权限,请参阅权限

Storage Transfer Service 预定义角色 roles/storagetransfer.user 可授予列出的权限。

storagetransfer.jobs.create
storagetransfer.jobs.get
storagetransfer.jobs.list
storagetransfer.jobs.patch
storagetransfer.operations.get
storagetransfer.operations.list
storagetransfer.operations.pause
storagetransfer.operations.resume
resourcemanager.projects.get

允许用户在转移过程中创建、更新和删除 Cloud Storage 对象。

如需详细了解这些权限,请参阅 Cloud Storage 的 IAM 权限

Cloud Storage 预定义角色 roles/storage.objectAdmin 可授予列出的权限。

resourcemanager.projects.list
storage.objects.create
storage.objects.delete
storage.objects.get
storage.objects.getIamPolicy
storage.objects.list
storage.objects.setIamPolicy
storage.objects.update

执行本地转移作业所需的权限

本地转移服务使用以下类型的帐号来转移数据:

  • Google 管理的服务帐号:服务帐号与项目中的 Cloud Storage 和 Pub/Sub 资源通信。

  • 代理帐号:用于运行本地转移服务代理的账号,这些代理会将数据转移到 Cloud Storage。代理帐号可以是您创建的用户帐号或服务帐号

以下部分介绍执行转移所需的权限。

Google 管理的服务帐号

本地转移服务使用 Google 管理的服务帐号与项目中的 Cloud Storage 和 Pub/Sub 资源通信。以下部分详细介绍了服务帐号所需的权限。

服务帐号的格式为 project-PROJECT_NUMBER@storage-transfer-service.iam.gserviceaccount.com。 如需确定您的特定 PROJECT_NUMBER,请使用 googleServiceAccounts.get API 调用。

目标 Cloud Storage 存储分区

下表介绍了服务帐号将数据转移到目标 Cloud Storage 存储分区所需的权限:

权限 说明
storage.buckets.get 允许服务帐号确定结算位置。
storage.objects.create 允许服务帐号写入转移回执对象。
storage.objects.get 允许服务帐号读取列表输出并确定重试对象上传时的上传前提条件。
storage.objects.list 允许服务帐号计算同步的增量,并列出转移期间创建的临时组件对象,以便将其移除。

Google Cloud 项目

下表介绍了服务帐号与 Google Cloud 项目通信所需的权限:

权限 说明
pubsub.subscriptions.create 允许服务帐号创建 Pub/Sub 订阅,以分配任务、跟踪进度并为本地转移服务使用的检测信号消息创建订阅。
pubsub.subscriptions.delete 允许服务帐号移除孤立的订阅。
pubsub.topics.create 允许服务帐号将任务主题附加到任务分配 Pub/Sub 订阅、跟踪任务进度、创建检测信号主题以及控制主题。

Pub/Sub 主题

下表介绍了服务帐号与本地转移服务使用的 Pub/Sub 主题通信所需的权限;请在项目级层应用这些权限:

权限 说明
pubsub.topics.attachSubscription 允许服务帐号将分配订阅附加到 Pub/Sub 任务、进度、脉冲和控制主题。
pubsub.topics.publish 允许服务帐号创建分配、进度、脉冲和控制 Pub/Sub 主题。

Pub/Sub 订阅

下表介绍了服务帐号与本地转移服务使用的 Pub/Sub 订阅通信所需的权限:

权限 说明
pubsub.subscriptions.consume 允许服务帐号读取进度和脉冲 Pub/Sub 订阅。
pubsub.subscriptions.get 允许服务帐号确认订阅连接。

本地代理帐号

本地转移服务使用代理帐号将数据转移到您的 Cloud Storage 存储分区。代理帐号是您用于运行本地代理的用户帐号或用户管理的服务帐号。此代理账号可在本地安装的代理和本地转移服务之间通信。以下部分详细介绍了代理账号所需的权限。

目标 Cloud Storage 存储分区

下表介绍了本地代理帐号将数据转移到 Cloud Storage 目标存储分区所需的权限:

权限 说明
storage.objects.create 允许代理帐号在转移期间写入 Cloud Storage 对象。
storage.objects.delete 允许代理帐号在转移期间删除或覆盖 Cloud Storage 对象。
storage.objects.get 允许代理帐号在进行复合上传时使用正确的前提条件重试。

本地转移服务 Pub/Sub 主题

下表介绍了本地代理帐号对 Transfer Service for On Premises Data 需要的 Pub/Sub 主题所需的权限;请在项目级层应用这些权限:

权限 说明
pubsub.topics.attachSubscription 允许代理帐号监听控制 Pub/Sub 主题。
pubsub.topics.get 允许代理帐号确认进度并暂存 Pub/Sub 主题。
pubsub.topics.publish 允许代理账号发布至任务进度和脉冲 Pub/Sub 主题。

Pub/Sub 订阅

下表介绍了本地代理帐号与本地转移服务使用的 Pub/Sub 订阅通信所需的权限;请在项目级层应用这些权限:

权限 说明
pubsub.subscriptions.consume 允许代理帐号读取 Pub/Sub 主题以进行任务分配和控制。
pubsub.subscriptions.create 允许代理帐号创建控制 Pub/Sub 订阅。
pubsub.subscriptions.get 允许代理帐号确认控制、脉冲和分配 Pub/Sub 订阅存在。
pubsub.subscriptions.delete 允许代理账号在退出时清除控制订阅。