所需的用户权限

使用 Storage Transfer Service 创建、管理或监控转移作业需要为您的用户账号、自动化工具或服务账号授予 IAM 权限和角色。

这些权限适用于无代理转移和基于代理的转移。如需大致了解如何授予 IAM 角色,请参阅授予、更改和撤消对资源的访问权限。

所需的 Storage Transfer Service 权限

如需与 Storage Transfer Service 交互,您必须在创建转移作业的 Google Cloud 项目中向您的用户账号、群组或服务账号授予以下预定义角色之一或等效的自定义权限:

角色 主要功能
Storage Transfer Admin
(roles/storagetransfer.admin)
拥有对 Storage Transfer Service 资源的完全控制权:
  • 创建、运行、修改和删除转移作业。
  • 创建、配置和删除转移代理池。
  • 配置项目级带宽限制。
  • 查看所有转移操作、状态和日志。
Storage Transfer User
(roles/storagetransfer.user)
创建、更新和运行转移作业和代理池,而无需删除权限:
  • 创建、获取、更新和列出转移作业。
  • 创建、获取、更新和列出代理池。
  • 配置项目级带宽限制。
  • 运行、暂停和恢复转移操作。
  • 无法删除转移作业或代理池。
Storage Transfer Viewer
(roles/storagetransfer.viewer)
拥有对转移作业、操作和代理池的只读权限。建议用于监控和审核。

如需查看每个角色中各个权限的详细列表,请参阅角色和权限参考文档。如果您将转移作业配置为向用户代管式服务账号委托权限,则您的用户账号还必须具有该服务账号的 Service Account User (roles/iam.serviceAccountUser) 角色;请参阅向用户代管式服务委托服务代理权限。

在项目中授予 Storage Transfer Service 角色

控制台

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

    转到 IAM

  2. 确保已选择您的转移项目,然后点击授予访问权限。

  3. 在新的主账号字段中,输入您的用户账号邮箱或服务账号。

  4. 在选择角色下拉列表中,搜索并选择 Storage Transfer Admin、Storage Transfer User 或 Storage Transfer Viewer。

  5. 可选:如需允许 Google Cloud 控制台检查是否缺少服务代理权限,并在创建转移作业期间提示您自动授予这些权限,请执行以下操作:

    1. 点击 + 添加其他角色。
    2. 搜索并选择 Role Viewer (roles/iam.roleViewer),该角色会授予 resourcemanager.projects.getIamPolicy。
  6. 点击保存。

gcloud

  1. 授予 Storage Transfer Service 角色:

    gcloud projects add-iam-policy-binding PROJECT_ID \
       --member="PRINCIPAL" \
       --role="roles/storagetransfer.ROLE"

    将

    • PROJECT_ID:您将在其中运行转移作业的项目。
    • PRINCIPAL:您的账号,格式为 user:EMAIL(对于用户账号)或 serviceAccount:SA_EMAIL(对于服务账号)。
    • ROLE:admin、user 或 viewer 之一。
  2. 可选:如需允许 Google Cloud 控制台检查缺少的服务代理权限,并在转移作业创建期间提示您自动授予这些权限,请授予角色查看者角色:

    gcloud projects add-iam-policy-binding PROJECT_ID \
       --member="PRINCIPAL" \
       --role="roles/iam.roleViewer"

所需的 Cloud Storage 权限

如需配置使用 Cloud Storage 存储桶作为来源、接收器或中间暂存位置的转移作业,您的账号必须有权查看和修改存储桶的 IAM 政策,以便您可以向 Storage Transfer Service 服务代理或转移代理账号授予所需角色。

您的账号需要:

  • storage.buckets.getIamPolicy
  • storage.buckets.setIamPolicy

以下任一预定义角色均可授予这些权限:

  • Storage Admin (roles/storage.admin)
  • Storage Legacy Bucket Owner (roles/storage.legacyBucketOwner)

针对存储桶授予 Cloud Storage 角色

控制台

  1. 在 Google Cloud 控制台中,转到 Cloud Storage 存储桶页面。

    进入“存储桶”

  2. 点击存储桶的存储桶溢出菜单 (),然后选择编辑权限。
  3. 点击 + 添加主账号。
  4. 在新的主账号字段中,输入您的用户账号邮箱或服务账号。
  5. 在选择角色下拉列表中,搜索并选择 Storage Admin。
  6. 点击保存。

gcloud

运行 gcloud storage buckets add-iam-policy-binding:

gcloud storage buckets add-iam-policy-binding gs://BUCKET_NAME \
    --member="PRINCIPAL" \
    --role="roles/storage.admin"

将

  • BUCKET_NAME:来源、接收器或中间存储桶的名称。
  • PRINCIPAL:您的账号,格式为 user:EMAIL(对于用户账号)或 serviceAccount:SA_EMAIL(对于服务账号)。

后续步骤

后续步骤取决于您的转移作业是否需要使用转移代理:

  • 如果您的转移作业是无代理转移作业(例如 Cloud Storage 存储桶之间的转移作业、Amazon S3 到 Cloud Storage 的转移作业,或 Azure Blob Storage 到 Cloud Storage 的转移作业),则用户访问权限设置已完成。继续配置对来源和目标的访问权限或创建转移作业。
  • 如果您的转移作业基于代理(例如涉及文件系统、HDFS 或与 S3 兼容的存储空间的转移作业),请继续执行基于代理的项目级权限。