逐步配置 Google Cloud 权限和 Cloud Storage,以便将数据从 Cloud Storage 导出到设备

本文档介绍了如何逐步配置 Google Cloud 权限和 Cloud Storage,包括:

  • 准备 Cloud Storage 存储桶。
  • 准备 Cloud Key Management Service 密钥以保护您的数据。
  • 向 Transfer Appliance 团队提供您的 Cloud Storage 存储桶配置数据。

准备工作

确保您收到了 Transfer Appliance 团队发送的标题为 Google Transfer Appliance 权限的电子邮件。本电子邮件包含以下内容:

  • 转移所需的服务账号的名称。

  • 您需要用来配置设备的会话 ID。

  • 在配置账号后,您需要填写的一份表单。

准备 Cloud Storage 存储桶的权限

我们将使用两个服务账号来转移您的数据。服务账号是应用(而非人员)用于执行操作的特殊账号。在本例中,服务账号允许 Transfer Appliance 代表您使用 Cloud Storage 资源,在 Cloud Storage 和设备之间转移数据。您需要向这些账号授予必要的角色,以便转移数据。

如需准备 Cloud Storage 存储桶,请按以下步骤操作:

  1. 在标题为 Google Transfer Appliance 权限的电子邮件中,Transfer Appliance 团队会提供以下服务账号:

    • 与此特定转移关联的会话服务账号。类似以下示例:

      ta-SESSION_ID@transfer-appliance-zimbru.iam.gserviceaccount.com

      在此示例中,SESSION_ID 是此特定转移的会话 ID。

    • 与 Transfer Service for On Premises Data 服务关联的服务代理,我们使用它在 Cloud Storage 和设备之间转移数据。类似于以下示例:

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

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

    请记下这些服务账号,以便在后续步骤中使用。

    通过服务账号,Transfer Appliance 可代表您处理Google Cloud 资源,也就是说,在 Cloud Storage 和设备之间转移数据。您向这些账号授予必要的角色,以便在 Cloud Storage 和设备之间传输数据。

  2. Cloud Storage 存储分区与 Google Cloud 项目相关联。您选择的存储桶必须与用于订购设备的项目位于同一项目中。

  3. 如需向 Transfer Appliance 服务账号授予使用您的 Cloud Storage 存储桶的权限,请执行以下操作:

    Google Cloud 控制台

    1. 在 Google Cloud 控制台中,进入 Cloud Storage 存储桶页面。

      进入“存储桶”

    2. 点击您要向主账号授予角色的存储桶关联的存储桶溢出菜单 ()。

    3. 选择修改存储分区权限

    4. 点击 + 添加主账号按钮。

    5. 新的主账号字段中,输入以下身份:

      • 会话服务账号。类似以下示例:

        ta-SESSION_ID@transfer-appliance-zimbru.iam.gserviceaccount.com

        在此示例中,SESSION_ID 是此特定转移的会话 ID。

      • Transfer Service for On Premises Data 服务代理。该字段类似于以下示例:

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

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

    6. 选择角色下拉菜单中,选择 Storage Admin 角色。

      您选择的角色将显示在窗格中,其中包含对角色授予的权限的简短说明。

    7. 点击保存

    命令行

    使用 gcloud storage buckets add-iam-policy-binding 命令:

    gcloud storage buckets add-iam-policy-binding gs://BUCKET_NAME \
    --member=serviceAccount:ta-SESSION_ID@transfer-appliance-zimbru.iam.gserviceaccount.com \
    --role=roles/storage.admin
    gcloud storage buckets add-iam-policy-binding gs://BUCKET_NAME \
    --member=serviceAccount:project-TENANT_IDENTIFIER@storage-transfer-service.iam.gserviceaccount.com \
    --role=roles/storage.admin

    在此示例中:

    • BUCKET_NAME:您要创建的存储分区的名称。
    • SESSION_ID:此特定转移的会话 ID。
    • TENANT_IDENTIFIER:特定于此特定项目的生成编号。

准备 Cloud KMS 密钥

Transfer Appliance 会对数据进行加密,以此保护设备上的数据。Cloud Key Management Service (Cloud KMS) 公共密钥用于加密 Transfer Appliance 上的数据,私钥用于解密数据。

我们将使用准备 Cloud Storage 存储桶的权限中的会话服务账号将数据从您的 Cloud Storage 存储桶上传到设备。

您可以通过以下方式管理加密密钥:

  • 自行创建和管理加密密钥。您可以按照以下说明创建和管理用于转移的加密密钥。您需要准备一个 Cloud KMS 非对称解密密钥,并将会话服务账号添加到该密钥。

要准备 Cloud KMS 密钥,请执行以下操作:

  1. 如果您没有 Cloud Key Management Service 密钥环,请执行以下操作进行创建:

    Google Cloud 控制台

    1. 前往 Google Cloud 控制台中的加密密钥页面。

      转到“加密密钥”页面

    2. 点击创建密钥环

    3. 密钥环名称字段中,输入密钥环的名称。

    4. 密钥环位置下拉列表中,选择一个位置,例如 "us-east1"

    5. 点击创建

    命令行

    gcloud kms keyrings create KEY_RING --location=LOCATION --project=PROJECT_ID
    

    在此示例中:

    • LOCATION:密钥环的 Cloud Key Management Service 位置。例如 global
    • KEY_RING:密钥环的名称。
    • PROJECT_ID:您的存储分区所属的 Google Cloud 项目 ID。
  2. 执行以下操作,创建非对称解密密钥:

    Google Cloud 控制台

    1. 前往 Google Cloud 控制台中的加密密钥页面。

      转到“加密密钥”页面

    2. 点击您要为其创建密钥的密钥环的名称。

    3. 点击创建密钥

    4. 您要创建哪种类型的密钥?部分,选择生成的密钥

    5. 密钥名称字段中,输入密钥的名称。

    6. 点击保护级别下拉列表,然后选择软件

    7. 点击用途下拉列表,然后选择非对称解密

    8. 点击算法下拉列表,然后选择 4096 位 RSA - OAEP 填充 - SHA256 Digest

    9. 点击创建

    命令行

    运行以下命令以创建非对称解密密钥:

    gcloud kms keys create KEY --keyring=KEY_RING \
    --location=LOCATION --purpose=asymmetric-encryption \
    --default-algorithm=rsa-decrypt-oaep-4096-sha256 \
    --project=PROJECT_ID
    

    在此示例中:

    • KEY:Cloud Key Management Service 密钥的名称。例如 ta-key
    • KEY_RING:密钥环的名称。
    • LOCATION:密钥环的 Cloud Key Management Service 位置。例如 global
    • PROJECT_ID:您的存储分区所属的 Google Cloud 项目 ID。
  3. 执行以下操作,将会话服务账号添加为非对称密钥的主账号:

    Google Cloud 控制台

    1. 前往 Google Cloud 控制台中的加密密钥页面。

      转到“加密密钥”页面

    2. 点击包含非对称密钥的密钥环。

    3. 选中非对称密钥对应的复选框。

    4. 信息面板中,点击添加主账号

      系统会显示添加主账号

    5. 新主账号字段中,输入 Transfer Appliance 团队提供的会话服务账号。类似以下示例:

      ta-SESSION_ID@transfer-appliance-zimbru.iam.gserviceaccount.com

      在此示例中,SESSION_ID 是此特定转移的会话 ID。

    6. 选择角色字段中,添加 Cloud KMS CryptoKey Public Key Viewer 角色。

    7. 点击保存

    命令行

    1. 运行以下命令,向会话服务账号授予 roles/cloudkms.publicKeyViewer 角色:

      gcloud kms keys add-iam-policy-binding KEY \
      --keyring=KEY_RING --location=LOCATION \
      --member=serviceAccount:ta-SESSION_ID@transfer-appliance-zimbru.iam.gserviceaccount.com \
      --role=roles/cloudkms.publicKeyViewer
      

      在此示例中:

      • KEY:Cloud Key Management Service 密钥的名称。例如 ta-key
      • KEY_RING:密钥环的名称。
      • LOCATION:密钥环的 Cloud Key Management Service 位置。例如 global
      • SESSION_ID:此特定转移的会话 ID。
  4. 按照以下步骤获取非对称密钥的路径:

    Google Cloud 控制台

    1. 转到 Google Cloud 控制台中的“加密密钥”页面

      转到“加密密钥”页面

    2. 点击包含非对称解密密钥的密钥环。

    3. 点击非对称解密密钥的名称。

    4. 选择所需的密钥版本,然后点击“更多”

    5. 点击复制资源名称

      密钥格式示例如下:

      projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KEY/cryptoKeyVersions/VERSION_NUMBER

      在此示例中:

      • PROJECT_ID:您的存储分区所属的 Google Cloud 项目 ID。
      • LOCATION:密钥环的 Cloud Key Management Service 位置。
      • KEY_RING:密钥环的名称。
      • KEY:Cloud Key Management Service 密钥的名称。
      • VERSION_NUMBER:密钥的版本号。

      Transfer Appliance 团队需要包括版本号在内的整个密钥路径,以便将正确的密钥应用于您的数据。

    命令行

    运行以下命令以列出非对称密钥的完整路径,包括其版本号:

    gcloud kms keys versions list --keyring=KEY_RING \
    --key=KEY --location=LOCATION \
    --project=PROJECT_ID
    

    在此示例中:

    • KEY_RING:密钥环的名称。
    • KEY:非对称密钥的名称。
    • LOCATION:密钥环的位置。 Google Cloud
    • PROJECT_ID:您的存储分区所属的 Google Cloud 项目 ID。

    以下示例响应类似于返回的输出:

    NAME STATE
    projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KEY/cryptoKeyVersions/VERSION_NUMBER
    ENABLED
    

    在此示例中:

    • PROJECT_ID:您的存储分区所属的 Google Cloud 项目 ID。
    • LOCATION:密钥环的 Cloud Key Management Service 位置。
    • KEY_RING:密钥环的名称。
    • KEY:Cloud Key Management Service 密钥的名称。
    • VERSION_NUMBER:密钥的版本号。

    Transfer Appliance 团队需要 NAME 下以 /cryptoKeyVersions/VERSION_NUMBER 结尾的字符串,其中 VERSION_NUMBER 是密钥的版本号。

向 Transfer Appliance 团队提供存储桶配置数据

我们会发送一封标题为 Google Transfer Appliance 权限的电子邮件,以收集有关您的 Cloud Storage 存储桶的信息。我们会使用您提供的信息来配置 Cloud Storage 和 Transfer Appliance 之间的传输数据。

在该电子邮件中提供的链接所指向的表单中,输入以下信息:

  • Google Cloud 项目 ID
  • 选择加密选项:
    • 客户管理的加密密钥,从选择客户管理的加密密钥下拉菜单中选择加密密钥。
  • 用于此转移的 Google Cloud Cloud Storage 存储分区名称

后续步骤

配置 IP 网络端口,以便 Transfer Appliance 在您的网络中正常运行。