使用 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 角色
控制台
在 Google Cloud 控制台中,前往 IAM 页面。
确保已选择您的转移项目,然后点击授予访问权限。
在新的主账号字段中,输入您的用户账号邮箱或服务账号。
在选择角色下拉列表中,搜索并选择
Storage Transfer Admin、Storage Transfer User或Storage Transfer Viewer。可选:如需允许 Google Cloud 控制台检查是否缺少服务代理权限,并在创建转移作业期间提示您自动授予这些权限,请执行以下操作:
- 点击 + 添加其他角色。
- 搜索并选择 Role Viewer (
roles/iam.roleViewer),该角色会授予resourcemanager.projects.getIamPolicy。
点击保存。
gcloud
授予 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之一。
可选:如需允许 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.getIamPolicystorage.buckets.setIamPolicy
以下任一预定义角色均可授予这些权限:
- Storage Admin (
roles/storage.admin) - Storage Legacy Bucket Owner (
roles/storage.legacyBucketOwner)
针对存储桶授予 Cloud Storage 角色
控制台
- 在 Google Cloud 控制台中,转到 Cloud Storage 存储桶页面。
- 点击存储桶的存储桶溢出菜单 (),然后选择编辑权限。
- 点击 + 添加主账号。
- 在新的主账号字段中,输入您的用户账号邮箱或服务账号。
- 在选择角色下拉列表中,搜索并选择
Storage Admin。 - 点击保存。
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 兼容的存储空间的转移作业),请继续执行基于代理的项目级权限。