准备在线转移

首次使用在线传输时,需要进行设置。初始设置后的后续转移不需要执行这些步骤。

完成此设置的最简单方法是使用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,请执行以下操作:

  1. 启用 Storage Transfer、Pub/Sub 和 Cloud Storage API(如果尚未启用)。

    启用 API 所需的角色

    如需启用 API,您需要拥有 serviceusage.services.enable 权限。如果您创建了项目,则可能已经通过 Owner 角色 (roles/owner) 拥有此权限。否则,您可以通过 Service Usage Admin 角色 (roles/serviceusage.serviceUsageAdmin) 获得此权限。了解如何授予角色。

    启用 API

    1. 确认您要为其启用 API 的项目,然后点击下一步。

    2. 点击启用。

或者,运行以下命令:

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),设置核对清单授予的角色。

创建和配置用户代管式服务账号

  1. 创建用户管理的服务账号。 这是设备服务账号。

    服务账号可以位于您订购设备的项目中,也可以位于其他项目中,例如,如果您的组织不允许在订购项目中创建服务账号密钥。如果您使用其他项目,请在该项目中启用 API。

  2. 在您订购设备的项目中,为目标存储桶向用户代管式服务账号授予角色。即使服务账号属于其他项目,也请在订单项目和目标存储桶上授予这些角色。

    下表列出了在线转移所需的最低角色,以及设置核对清单授予的更广泛角色:

    授予位置 最小角色 设置核对清单授予的角色
    项目
    • 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) 角色涵盖存储桶。

配置服务账号后,准备服务账号密钥:

  1. 为用户代管式服务账号创建服务账号。密钥会在您创建时下载,并且您无法再次下载。

  2. 将密钥重命名为 key.json,并将其保存到安全位置。

  3. 收到设备后,请将 key.json 上传到设备上的 /tmp 目录。