本文档将逐步介绍如何配置 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 存储桶,请按以下步骤操作:
在标题为 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 和设备之间传输数据所需的角色。
Cloud Storage 存储分区与 Google Cloud 项目相关联。您选择的存储桶必须与用于订购设备的项目位于同一项目中。
如需向 Transfer Appliance 服务帐号授予使用 Cloud Storage 存储桶的权限,请执行以下操作:
Google Cloud Console
- 在 Google Cloud 控制台中,进入 Cloud Storage 存储桶页面。
点击与您要向其授予主账号角色的存储桶相关联的存储桶溢出菜单 (
)。
选择修改存储桶权限。
点击 + 添加主账号按钮。
在新的主账号字段中,输入以下身份:
会话服务账号。类似以下示例:
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
是特定于此特定项目的生成编号。
从选择角色下拉菜单中,选择 Storage Admin 角色。
您选择的角色将显示在窗格中,其中包含对角色授予的权限的简短说明。
点击保存。
命令行
使用
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
:您要创建的存储桶的名称。
- 在 Google Cloud 控制台中,进入 Cloud Storage 存储桶页面。
准备 Cloud KMS 密钥
Transfer Appliance 通过加密数据来保护设备上的数据。Cloud Key Management Service (Cloud KMS) 公钥用于加密 Transfer Appliance 上的数据,私钥用于解密数据。
我们使用准备 Cloud Storage 存储桶的权限中的会话服务帐号,将数据从 Cloud Storage 存储桶上传到设备。
您可以通过以下方式管理加密密钥:
- 自行创建和管理加密密钥。您可以按照以下说明创建和管理用于传输的加密密钥。您需要准备 Cloud KMS 非对称解密密钥,并将会话服务帐号添加到密钥中。
要准备 Cloud KMS 密钥,请执行以下操作:
如果您没有 Cloud Key Management Service 密钥环,请执行以下操作进行创建:
Google Cloud Console
前往 Google Cloud 控制台中的加密密钥页面。
点击创建密钥环。
在密钥环名称字段中,输入密钥环的名称。
在密钥环位置下拉列表中,选择一个位置,例如
"us-east1"
。点击创建。
命令行
gcloud kms keyrings create KEY_RING --location=LOCATION --project=PROJECT_ID
在此示例中:
LOCATION
:密钥环的 Cloud Key Management Service 位置。例如global
。KEY_RING
:密钥环的名称。PROJECT_ID
:您的存储桶所属的 Google Cloud 项目 ID。
执行以下操作,创建非对称解密密钥:
Google Cloud Console
前往 Google Cloud 控制台中的加密密钥页面。
点击您要为其创建密钥的密钥环的名称。
点击创建密钥。
在您要创建哪种类型的密钥?部分,选择生成的密钥。
在密钥名称字段中,输入密钥的名称。
点击保护级别下拉列表,然后选择软件。
点击用途下拉列表,然后选择非对称解密。
点击算法下拉列表,然后选择 4096-bit RSA - OAEP Padding - SHA256 Digest
点击创建。
命令行
运行以下命令以创建非对称解密密钥:
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。
执行以下操作,将会话服务帐号作为主账号添加到非对称密钥:
Google Cloud Console
前往 Google Cloud 控制台中的加密密钥页面。
点击包含非对称密钥的密钥环。
选中非对称密钥对应的复选框。
在信息面板中,点击添加主账号。
此时,系统会显示添加主账号。
在新的主帐号字段中,输入 Transfer Appliance 团队提供的会话服务帐号。类似以下示例:
ta-SESSION_ID@transfer-appliance-zimbru.iam.gserviceaccount.com
在此示例中,
SESSION_ID
是此特定转移的会话 ID。在选择角色字段中,添加 Cloud KMS CryptoKey Public Key Viewer 角色。
点击保存。
命令行
运行以下命令,向会话服务帐号授予
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。
按照以下步骤获取非对称密钥的路径:
Google Cloud Console
转到 Google Cloud 控制台中的“加密密钥”页面
点击包含非对称解密密钥的密钥环。
点击非对称解密密钥的名称。
选择所需的密钥版本,然后点击“更多” more_vert。
点击复制资源名称。
密钥格式示例如下:
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 在您的网络中工作。