逐步配置 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 Console

    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. 点击保存

    命令行

    使用 gsutil iam ch 命令:

    gsutil iam ch \
    serviceAccount:ta-SESSION_ID@transfer-appliance-zimbru.iam.gserviceaccount.com:roles/storage.admin \
    serviceAccount:project-TENANT_IDENTIFIER@storage-transfer-service.iam.gserviceaccount.com:roles/storage.admin \
    gs://BUCKET_NAME
    

    在此示例中:

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

准备 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 Console

    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 Console

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

      转到“加密密钥”页面

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

    3. 点击创建密钥

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

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

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

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

    8. 点击算法下拉列表,然后选择 4096-bit RSA - OAEP Padding - 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 Console

    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 Console

    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 在您的网络中工作。