使用设置应用配置 Google Cloud 项目

本文档介绍了如何使用设备云设置应用配置 Google Cloud 权限和 Cloud Storage。

设备 Cloud 设置应用会提示您提供信息,例如传输会话 ID、目标 Cloud Storage 存储桶和 Cloud Key Management Service (Cloud KMS) 偏好设置。借助您提供的信息,Appliance Cloud Setup Application 会为您配置 Google Cloud 权限、首选 Cloud Storage 存储桶和 Cloud KMS 密钥,以便进行转移。

准备工作

确保您已满足以下要求:

  • 用于订购设备的项目名称和商家营业地点。

  • 订购设备时指定的设备 ID、会话 ID、存储桶名称、存储桶前缀和加密密钥。您可以在标题为 Google Transfer Appliance 准备权限和存储空间的电子邮件中找到这些信息。

  • 标题为 Google Transfer Appliance Prepare Permissions and Storage 的电子邮件中列出的 Storage Transfer Service 服务代理。它类似于以下示例:

    project-TENANT_IDENTIFIER@storage-transfer-service.iam.gserviceaccount.com

    在此示例中,TENANT_IDENTIFIER 是特定于此特定项目的生成编号。

    我们使用 Storage Transfer Service 将数据从设备转移到您的 Cloud Storage 存储桶。

分配 IAM 角色

您必须对项目和 Cloud Storage 存储桶拥有正确的 IAM 角色

如果您是项目所有者,则 roles/owner 就足够了。跳至下一部分,下载 Appliance Cloud 设置应用

如果您没有 roles/owner,则必须拥有以下角色:

  • roles/serviceusage.serviceUsageAdmin:在项目中启用所需的 API。
  • roles/iam.serviceAccountCreator:创建新的服务账号。
  • roles/iam.serviceAccountKeyAdmin:创建和下载服务账号密钥。可以在项目级授予,也可以在权限应用创建设备服务账号后向该账号授予。
  • roles/storagetransfer.admin:创建 Storage Transfer Service 服务账号。
  • roles/transferappliance.viewer:用于提取 Cloud Storage 存储桶和 Cloud Key Management Service 密钥详细信息。
  • roles/storage.admin:如果您尚未创建 Cloud Storage 存储桶,则可以在项目级授予;如果您使用的是现有 Cloud Storage 存储桶,则可以在存储桶级授予。
  • roles/cloudkms.admin:如果您尚未创建 Cloud KMS 密钥,则可以在项目级别授予;如果您使用的是现有 Cloud KMS 密钥,则可以在密钥级别授予。

查看角色

如需查看您的主账号针对某项目及其资源具有哪些 IAM 角色,请执行以下操作:

  1. 在 Google Cloud 控制台中,转到 IAM 页面。

    前往 IAM 页面

  2. 此页面会显示您的项目中针对该项目具有 IAM 角色的所有主账号。

下载 Appliance Cloud 设置应用

如需下载 Appliance Cloud 设置应用,请执行以下操作:

  1. 打开 Google Cloud 控制台欢迎页面。

    打开 Google Cloud 控制台“欢迎”页面

  2. 验证用于转移的项目的名称是否显示在项目选择器中。项目选择器会显示当前正在运行的项目。

    从项目选择器中选择 Google Cloud 项目

    如果您没有看到要用于转移的项目的名称,请点击项目选择器,然后选择正确的项目。

  3. 点击“激活 Cloud Shell”。

    从菜单栏启动 devshell。

  4. 在 Cloud Shell 中,使用 wget 命令下载 Appliance Cloud 设置应用:

    wget https://storage.googleapis.com/transferappliance/cloudsetup/ta_cloudsetup_x86_64-linux -O ta_cloudsetup_x86_64-linux
    

运行设备云设置应用

在 Cloud Shell 中,运行以下命令以启动设备云设置应用:

chmod 0777 ta_cloudsetup_x86_64-linux && ./ta_cloudsetup_x86_64-linux

该应用会引导您完成配置项目所需的步骤。

应用输出

Appliance Cloud 设置应用会完成以下操作:

  • 向用于将数据传输到 Cloud Storage 存储桶的设备服务账号授予权限。
  • 如果您选择使用客户管理的加密密钥,请向设备服务账号授予访问 Cloud KMS 密钥数据的权限。
  • 显示以下信息:

    • 如果您选择使用客户管理的 Cloud KMS 加密密钥,则为 Google Cloud 加密密钥资源名称
    • Google Cloud Cloud Storage 目标存储桶名称
    • Google Cloud Cloud Storage 目标存储桶前缀(如果您提供了)。
    • 在线转移服务账号名称(如果适用)和 Storage Transfer Service 服务代理名称。

显示的信息也会存储在 Cloud Shell 的主目录中,该目录名为 SESSION_ID-output.txt,其中 SESSION_ID 是此次转移的会话 ID。

获准执行此特定传输的服务账号的名称存储在 Cloud Shell 的主目录(名为 cloudsetup.log)中。

向 Google 发送 CMEK 信息

如果您指定了客户管理的加密密钥,请填写标题为 Google Transfer Appliance 准备权限和存储空间的电子邮件中链接的表单,将密钥信息发送给我们。

下载服务账号密钥

下载并保存在线转移服务账号的服务账号密钥。

gcloud iam service-accounts keys create key.json \
  --iam-account=APPLIANCE_SERVICE_ACCOUNT_EMAIL

APPLIANCE_SERVICE_ACCOUNT_EMAIL 的值会显示在权限应用的输出中:

...

Appliance Service Account Name:
example-sa@example-project.iam.gserviceaccount.com

收到设备后,将密钥上传到设备上的 /tmp 目录。

问题排查

错误 400:服务账号不存在

问题

设备云设置应用会显示以下消息:

Service account ta-SESSION_ID@transfer-appliance-zimbru.iam.gserviceaccount.com
does not exist.

其中 SESSION_ID 是提供给设备云设置应用的会话 ID。

解决方案:

验证转移的会话 ID。会话 ID 是每个传输会话的唯一 ID,由 Transfer Appliance 团队共享。如果您尚未收到会话 ID,请发送电子邮件至 data-support@google.com

错误:列出 KMS 位置

问题

设备云设置应用会显示以下消息:

Error: listing kms locations

解决方案:

在 Cloud Shell 中执行以下操作:

  1. 运行 gcloud auth login 以重新进行身份验证。

  2. 重试运行 Appliance Cloud 设置应用。

如果此错误仍然存在,请发送电子邮件至 data-support@google.com 与 Transfer Appliance 团队联系。

错误:创建 Cloud KMS 密钥约束条件时出错

问题

设备云设置应用会显示类似以下内容的消息:

Error: creating cloud kms key violates constraint error: code = FailedPrecondition
desc= europe-west6 violates constraint 'constraints/gcp.resourceLocations' on
the resource 'projects/test/locations/europe-west6'

解决方案:

您的 Google Cloud 项目可能存在禁止在特定位置创建 Cloud Key Management Service 密钥的组织政策。以下是可能的解决方案:

  • 选择其他位置来创建 Cloud Key Management Service 密钥。
  • 更新组织政策,以允许在您想要的位置创建 Cloud Key Management Service 密钥。

如需了解详情,请参阅限制资源位置