首次使用在线传输时,需要进行设置。初始设置后的后续转移不需要执行这些步骤。
完成此设置的最简单方法是使用Google Cloud 控制台中的设置核对清单,如项目设置和密钥下载中所述。核对清单仅启用 Transfer Appliance、Pub/Sub 和 Storage Transfer API,创建设备服务账号,并向服务账号授予角色。
如果您想手动配置在线转移,例如仅授予所需的最低权限角色,或使用属于其他项目的服务账号,请按照本页面上的说明操作。
用于在线转移的服务账号
在线转移使用以下两个身份:
设备服务账号:用户代管式服务账号,其密钥 (
key.json) 由您上传到设备。设备使用此服务账号创建和运行 Storage Transfer Service 作业、发布和接收 Pub/Sub 消息,以及将数据上传到目标存储桶。当您点击创建服务账号时,设置核对清单会创建此服务账号。您也可以自行创建。项目的 Storage Transfer Service 服务代理:Google 管理的服务代理,格式如下:
project-PROJECT_NUMBER@storage-transfer-service.
将
PROJECT_NUMBER替换为包含目标存储桶的项目的项目编号。
启用 API
如需完成在线转移的首次设置, Google Cloud 管理员必须启用以下 API:
- Google Storage Transfer API (
storagetransfer.googleapis.com) - Pub/Sub API (
pubsub.googleapis.com) - Cloud Storage API (
storage.googleapis.com)
(可选)如果您要启用 Cloud Monitoring,请同时启用 Cloud Monitoring API (monitoring.googleapis.com)。
在以下项目中启用 API:
- 您订购设备的项目,其中包含目标存储桶。
- 如果设备服务账号属于其他项目,则还包括包含设备服务账号的项目。来自设备的 API 请求会根据拥有服务账号的项目进行检查。如果该项目中未启用这些 API,则在线转移会失败,并显示类似于
Storage Transfer API has not been used in project PROJECT_NUMBER before or it is disabled的错误。
如需在项目中启用 API,请执行以下操作:
启用 Storage Transfer、Pub/Sub 和 Cloud Storage API(如果尚未启用)。
启用 API 所需的角色
如需启用 API,您需要拥有
serviceusage.services.enable权限。如果您创建了项目,则可能已经通过 Owner 角色 (roles/owner) 拥有此权限。否则,您可以通过 Service Usage Admin 角色 (roles/serviceusage.serviceUsageAdmin) 获得此权限。了解如何授予角色。确认您要为其启用 API 的项目,然后点击下一步。
点击启用。
或者,运行以下命令:
gcloud services enable storagetransfer.googleapis.com pubsub.googleapis.com storage.googleapis.com --project=PROJECT_ID
将 PROJECT_ID 替换为要在其中启用 API 的项目的 ID。
配置 Storage Transfer Service 服务代理
在您订购设备的 Google Cloud 项目中,向项目的 Storage Transfer Service 服务代理授予以下角色:
-
Pub/Sub Editor(roles/pubsub.editor)
为目标存储桶向 Storage Transfer Service 服务代理授予以下角色之一:
Storage Object Admin(roles/storage.objectAdmin),这是所需的最低角色。Storage Admin(roles/storage.admin),设置核对清单授予的角色。
创建和配置用户代管式服务账号
创建用户管理的服务账号。 这是设备服务账号。
服务账号可以位于您订购设备的项目中,也可以位于其他项目中,例如,如果您的组织不允许在订购项目中创建服务账号密钥。如果您使用其他项目,请在该项目中启用 API。
在您订购设备的项目中,为目标存储桶向用户代管式服务账号授予角色。即使服务账号属于其他项目,也请在订单项目和目标存储桶上授予这些角色。
下表列出了在线转移所需的最低角色,以及设置核对清单授予的更广泛角色:
授予位置 最小角色 设置核对清单授予的角色 项目 Storage Transfer Agent(roles/storagetransfer.transferAgent)Storage Transfer User(roles/storagetransfer.user)Pub/Sub Editor(roles/pubsub.editor)Monitoring Metric Writer(roles/monitoring.metricWriter)
Storage Transfer Admin(roles/storagetransfer.admin)Pub/Sub Editor(roles/pubsub.editor)Monitoring Metric Writer(roles/monitoring.metricWriter)Storage Admin(roles/storage.admin)
目标存储桶 Storage Object Admin(roles/storage.objectAdmin)Storage Legacy Bucket Reader(roles/storage.legacyBucketReader)
无。项目级 Storage Admin(roles/storage.admin) 角色涵盖存储桶。
为用户代管式服务账号创建服务账号。密钥会在您创建时下载,并且您无法再次下载。
将密钥重命名为
key.json,并将其保存到安全位置。收到设备后,请将
key.json上传到设备上的/tmp目录。