下表列出了运行每个 Storage Transfer Service 方法所需的最低权限。
资源 | 方法 | 所需权限 |
---|---|---|
googleServiceAccount |
get |
storagetransfer.projects.getServiceAccount |
transferJobs |
create |
必须具有以下两个权限:
|
transferjobs |
get |
storagetransfer.jobs.get |
transferjobs |
list |
storagetransfer.jobs.list |
transferjobs |
patch |
对于删除更新:storagetransfer.jobs.delete 对于非删除更新: storagetransfer.jobs.update |
transferoperations |
cancel |
storagetransfer.operations.cancel |
transferOperations |
get |
storagetransfer.operations.get |
transferOperations |
list |
storagetransfer.operations.list |
transferOperations |
pause |
storagetransfer.operations.pause |
transferOperations |
resume |
storagetransfer.operations.resume |
源权限
Cloud Storage
Storage Transfer Service 使用 project-[$PROJECT_NUMBER]@storage-transfer-service.iam.gserviceaccount.com
服务帐号从 Cloud Storage 源存储分区移动数据。该服务帐号必须具有针对源存储分区的以下权限:
权限 | 说明 | 用途 |
---|---|---|
storage.buckets.get |
允许服务帐号获取存储分区的位置。 | 始终必需。 |
storage.objects.list |
允许服务帐号列出存储分区中的对象。 | 始终必需。 |
storage.objects.get |
允许服务帐号读取存储分区中的对象。 | 始终必需。 |
storage.objects.delete |
允许服务帐号删除存储分区中的对象。 | 将 deleteObjectsFromSourceAfterTransfer 设置为 true 时必需。 |
roles/storage.objectViewer
和 roles/storage.legacyBucketReader
角色都具有始终必需的权限。roles/storage.legacyBucketWriter
角色包含 storage.objects.delete
权限。您必须为执行转移的服务帐号分配所需角色。
如需查看 Cloud Storage 角色及其权限的完整列表,请参阅 IAM 角色。
Amazon S3
要使用 Storage Transfer Service 传输来自 Amazon S3 存储分区的数据,
您必须拥有 AWS Identity and Access Management 用户帐号,且该帐号具有针对此类存储分区的以下特定权限:
权限 | 说明 | 用途 |
---|---|---|
s3:ListBucket |
允许 Storage Transfer Service 列出存储分区中的对象。 | 始终必需。 |
s3:GetObject |
允许 Storage Transfer Service 读取存储分区中的对象。 | 始终必需。 |
s3:GetBucketLocation |
允许 Storage Transfer Service 获取存储分区的位置。 | 始终必需。 |
s3:DeleteObject |
允许 Storage Transfer Service 删除存储分区中的对象。 | 将 deleteObjectsFromSourceAfterTransfer 设置为 true 时必需。 |
网址列表
如果您的数据源是网址列表,请确保网址列表中的每个对象都可公开访问。
接收器权限
Storage Transfer Service 使用服务帐号将数据传输到 Cloud Storage 接收器存储分区。该服务帐号必须具有针对接收器存储分区的以下特定权限:
权限 | 说明 | 用途 |
---|---|---|
storage.buckets.get |
允许服务帐号获取存储分区的位置。 | 始终必需。 |
storage.objects.create |
允许服务帐号将对象添加到存储分区。 | 始终必需。 |
storage.objects.delete |
允许服务帐号删除存储分区中的对象。 | 将 overwriteObjectsAlreadyExistingInSink 或 deleteObjectsUniqueInSink 设置为 true 时必需。 |
storage.objects.list |
允许服务帐号列出存储分区中的对象。 | 将 overwriteObjectsAlreadyExistingInSink 设置为 false 或将 deleteObjectsUniqueInSink 设置为 true 时必需。 |
roles/storage.legacyBucketWriter
角色具有上述全部权限,您可以将该角色分配给服务帐号。如需查看 Cloud Storage 角色及其权限的完整列表,请参阅 IAM 角色。
Pub/Sub 权限
如果您打算使用 Pub/Sub 转移,请向服务帐号授予所需 Pub/Sub 主题的 IAM 角色 roles/pubsub.publisher
。