Storage Transfer Service 方法的 IAM 权限

下表列出了运行每个 Storage Transfer Service 方法所需的最低权限

资源 方法 所需权限
googleServiceAccount get storagetransfer.projects.getServiceAccount
transferJobs create 必须具有以下两个权限:

  • storagetransfer.jobs.create
  • storagetransfer.projects.getServiceAccount

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

源权限

云端存储

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.objectViewerroles/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 允许服务帐号删除存储分区中的对象。 overwriteObjectsAlreadyExistingInSinkdeleteObjectsUniqueInSink 设置为 true 时必需。
storage.objects.list 允许服务帐号列出存储分区中的对象。 overwriteObjectsAlreadyExistingInSink 设置为 false 或将 deleteObjectsUniqueInSink 设置为 true 时必需。

roles/storage.legacyBucketWriter 角色具有上述全部权限,您可以将该角色分配给服务帐号。如需查看 Cloud Storage 角色及其权限的完整列表,请参阅 IAM 角色

Pub/Sub 权限

如果您打算使用 Pub/Sub 转移请向服务帐号授予所需 Pub/Sub 主题的 IAM 角色 roles/pubsub.publisher