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.run |
可以运行所有转移作业。 |
storagetransfer.jobs.update |
可以更新传输作业配置,而不删除这些配置。 |
转移操作权限
下表介绍了 Storage Transfer Service 操作的权限:
| 权限 | 说明 |
|---|---|
storagetransfer.operations.assign |
供转移代理用于分配操作。在自定义角色中不受支持;请改为授予预定义的 roles/storagetransfer.transferAgent 角色。 |
storagetransfer.operations.cancel |
可以取消传输操作。 |
storagetransfer.operations.get |
可以获取传输操作的详细信息。 |
storagetransfer.operations.list |
可以列出所有传输作业操作。 |
storagetransfer.operations.pause |
可以暂停传输操作。 |
storagetransfer.operations.report |
供转移代理用于报告操作状态。在自定义角色中不受支持;请改为授予预定义的 roles/storagetransfer.transferAgent 角色。 |
storagetransfer.operations.resume |
可以恢复暂停的传输操作。 |
转移代理池权限
下表介绍了转移代理池的权限:
| 权限 | 说明 |
|---|---|
storagetransfer.agentpools.create |
可以创建代理池并配置带宽限制。 |
storagetransfer.agentpools.update |
可以更新代理池和带宽限制。 |
storagetransfer.agentpools.delete |
可以删除代理池。 |
storagetransfer.agentpools.get |
可以获取特定代理池的信息和带宽限制。 |
storagetransfer.agentpools.list |
可以列出项目中所有代理池的信息和带宽限制。 |
storagetransfer.agentpools.report |
供转移代理用于报告状态。在自定义角色中不受支持;请改为授予预定义的 roles/storagetransfer.transferAgent 角色。 |
预定义角色
本部分介绍 Storage Transfer Service 的预定义角色。角色是设置 IAM 权限的首选方式。
角色比较
您可以向主账号分配以下 Storage Transfer Service 预定义角色:
| 能力 | Storage Transfer Admin ( roles/storagetransfer.admin) |
Storage Transfer User ( roles/storagetransfer.user) |
Storage Transfer Viewer ( roles/storagetransfer.viewer) |
|---|---|---|---|
| 列出和获取作业 | |||
| 创建和配置作业 | |||
| 运行和更新作业 | |||
| 删除作业 | |||
| 列出和获取转移操作 | |||
| 暂停、恢复和取消转移操作 | |||
| 读取 Storage Transfer Service 服务账号详细信息 | |||
| 列出和获取代理池 | |||
| 创建和更新代理池 | |||
| 删除代理池 | |||
| 设置代理池带宽限制 |
角色详情
下表详细描述了 Storage Transfer Service 的预定义角色:
| 角色 | 说明 | 包含的权限 |
|---|---|---|
|
Storage Transfer Admin ( roles/storagetransfer.admin)
|
提供对所有 Storage Transfer Service 资源的完整管理员权限,包括创建、更新、运行和删除转移作业和代理池。 |
|
|
Storage Transfer User ( roles/storagetransfer.user)
|
提供在项目中创建、获取、更新和运行转移作业和代理池的权限。无法删除转移作业或代理池,从而保留过去转移作业的完整审核记录。 |
|
|
Storage Transfer Viewer ( roles/storagetransfer.viewer)
|
提供对项目中的转移作业、操作和代理池的只读权限。无法创建、运行、更新或删除转移作业。 |
|
Storage Transfer Agent
(roles/storagetransfer.transferAgent)
|
向转移代理授予完成转移所需的 Storage Transfer Service 权限。 自 2024 年 5 月 1 日起,不再需要 将此角色授予代理使用的用户或服务账号。 |
|
Storage Transfer Service Agent
(roles/storagetransfer.serviceAgent)
|
向 Storage Transfer Service 服务代理授予创建和修改 Pub/Sub 主题所需的权限,以便从 Google Cloud 向转移代理进行通信。 将此角色授予 Storage Transfer Service 服务代理。 |
|
自定义角色
您可以创建和应用自定义 IAM 角色以满足组织的访问权限要求。
创建自定义角色时,建议将预定义角色进行组合,以确保包含正确的权限。
如果自定义角色缺少必需的权限, Google Cloud 控制台将无法正常运行。例如, Google Cloud 控制台的某些部分假定角色具有读取权限,可在修改项目之前显示该项目,因此仅具有写入权限的角色可能会发现 Google Cloud 控制台界面无法正常使用。