使用 IAM 进行访问权限控制

Storage Transfer Service 使用 Identity and Access Management (IAM) 权限和角色来控制哪些用户可以访问 Storage Transfer Service 资源。Storage Transfer Service 中主要提供两种类型的资源,即作业和操作。在 IAM 政策层次结构中,作业是项目的子资源,而操作则是作业的子资源。

要授予对某项资源的访问权限,请为用户,群组或服务帐号分配一个或多个权限角色

权限

您可以授予以下 Storage Transfer Service 权限:

转移项目权限

权限 说明
storagetransfer.projects.getServiceAccount 可以读取 Storage Transfer Service 用于访问 Cloud Storage 存储分区的 GoogleServiceAccount。

转移作业权限

下表介绍 Storage Transfer Service 作业的权限:

权限 说明
storagetransfer.jobs.create 可以新建转移作业。
storagetransfer.jobs.delete 可以删除现有的传输作业。

通过调用 patch 函数删除转移作业。但是,用户在删除传输作业时必须具有此权限,以避免出现权限错误。
storagetransfer.jobs.get 可以检索特定作业。
storagetransfer.jobs.list 可以列出所有传输作业。
storagetransfer.jobs.patch 可以更新传输作业配置,而不删除这些配置。

转移操作权限

下表介绍了 Storage Transfer Service 操作的权限:

权限 说明
storagetransfer.operations.cancel 可以取消传输操作。
storagetransfer.operations.get 可以获取传输操作的详细信息。
storagetransfer.operations.list 可以列出所有传输作业操作。
storagetransfer.operations.pause 可以暂停传输操作。
storagetransfer.operations.resume 可以恢复暂停的传输操作。

转移代理池权限

下表介绍了本地转移代理池的权限:

权限 说明
storagetransfer.agentpools.create 可以创建代理池。
storagetransfer.agentpools.update 可以更新代理池。
storagetransfer.agentpools.delete 可以删除代理池。
storagetransfer.agentpools.get 可以获取特定代理池的相关信息。
storagetransfer.agentpools.list 可以列出项目中所有代理池的信息。

Storage Transfer Service 角色

本节介绍可为 Storage Transfer Service 设置的角色,以及创建自定义角色的指南。

Storage Transfer Service 预定义角色比较

您可以分配以下项目角色或 Storage Transfer Service 预定义角色:

能力 Editor (roles/editor) Storage Transfer (roles/storagetransfer.)
Admin (admin) User (user) Viewer (viewer)
列出/获取作业
创建作业
更新作业
删除作业
列出/获取传输操作
暂停/恢复传输
读取 Storage Transfer Service 用于访问 Cloud Storage 存储分区的 Google 服务帐号详细信息。

更新作业权限不包含删除作业权限。

对于本地转移服务,需要 Storage Transfer Admin (roles/storagetransfer.admin) 角色来执行以下操作:

  • 列出代理
  • 读取项目的带宽限制
  • 设置项目的带宽限制

Storage Transfer Service 预定义角色详细信息

下表详细描述了 Storage Transfer Service 的预定义角色:

角色 说明 包含的权限
Storage Transfer Admin
(roles/storagetransfer.
admin
)

提供所有 Storage Transfer Service 权限,包括删除作业。

说明:这是责任最宽泛、级别最高的角色,也是可在其同事执行转移时为他们提供支持的超级用户。该角色最适合转移管理人员,例如 IT 管理员。

授予所有权限
Storage Transfer User
(roles/storagetransfer.
user
)

为用户提供在项目中创建、获取、更新和列出转移作业的权限。但是,他们无法删除自己的作业。

说明:此角色允许将创建和维护作业与删除作业分开。此角色最适合需要在工作职能中执行转移的用户,例如员工。此角色不允许删除转移,因此审核人员或安全人员可以查看保存完好的历史传输记录。

  • storagetransfer.projects.getServiceAccount
  • storagetransfer.jobs.create
  • storagetransfer.jobs.get
  • storagetransfer.jobs.list
  • storagetransfer.jobs.patch
  • storagetransfer.operations.get
  • storagetransfer.operations.list
  • storagetransfer.operations.pause
  • storagetransfer.operations.resume
Storage Transfer Viewer
(roles/storagetransfer.
viewer
)

在项目中列出和获取作业以及转移操作的权限。用户无法安排、更新或删除作业。

说明:查看者角色适用于查看转移作业和操作的只读权限。此角色允许将报告和审核任务与创建和维护作业分开。此角色最适合审核转移使用情况的用户或内部团队,例如安全、合规或业务部门负责人。

  • storagetransfer.projects.getServiceAccount
  • storagetransfer.jobs.get
  • storagetransfer.jobs.list
  • storagetransfer.operations.get
  • storagetransfer.operations.list

转移代理池角色

本节介绍可为本地转移代理池设置的角色。

转移代理池角色比较

您可以为本地代理池预定义角色分配以下转移:

能力 Storage Transfer AgentPool (roles/storagetransfer.agentpools.)
Admin (admin) User (user) Viewer (viewer)
列出代理池
创建代理池
更新代理池
删除代理池
获取代理池

转移代理池详细信息

下表详细描述了本地转移代理池的预定义角色:

Storage Transfer AgentPool Admin
(roles/storagetransfer.agentpools.
admin
)

提供所有本地代理池权限的转移,包括删除代理池。

说明:这是具有最广泛代理池权限的最高角色,适用于支持为转移的用户设置和管理代理池的超级用户。该角色最适合传输管理人员,例如 IT 管理员。

  • storagetransfer.agentpools.create
  • storagetransfer.agentpools.update
  • storagetransfer.agentpools.delete
  • storagetransfer.agentpools.get
  • storagetransfer.agentpools.list
Storage Transfer AgentPool User
(roles/storagetransfer.agentpools.
user
)

为用户提供在项目中创建、更新、获取和列出代理池的权限。但是,他们无法删除自己的代理池。

说明:此角色允许将创建和维护代理池与删除代理池分开。此角色最适合需要设置和监控代理池的用户,例如员工。

  • storagetransfer.agentpools.create
  • storagetransfer.agentpools.update
  • storagetransfer.agentpools.get
  • storagetransfer.agentpools.list
Storage Transfer AgentPool Viewer
(roles/storagetransfer.agentpools.
viewer
)

为用户提供用于获取和列出项目中的代理池的权限。

说明:此角色允许将查看代理池与维护或删除代理池分开。此角色最适合需要在工作职能中执行转移的用户,例如员工。

  • storagetransfer.agentpools.get
  • storagetransfer.agentpools.list

自定义角色

创建自定义角色时,最佳做法是使用预定义角色创建角色,以便将合适的权限组合集中在一起。

如果自定义角色缺少必需的权限,则 Cloud Console 将无法正常运行。例如,Cloud Console 的某些部分假定该角色具有读取权限,可在修改项目之前显示该项目,因此仅具有写入权限的角色会发现 Cloud Console 界面无法正常使用。

后续步骤