本文档介绍了如何逐步配置 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 控制台
- 在 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 角色。
您选择的角色将显示在窗格中,其中包含对角色授予的权限的简短说明。
点击保存。
命令行
使用
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:为此特定项目生成的数字。
- 在 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 控制台
前往加密密钥页面,在 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:存储桶所属的项目 ID。 Google Cloud
执行以下操作,创建非对称解密密钥:
Google Cloud 控制台
前往加密密钥页面,在 Google Cloud 控制台中。
点击您要为其创建密钥的密钥环的名称。
点击创建密钥。
在您要创建哪种类型的密钥?部分,选择生成的密钥。
在密钥名称字段中,输入密钥的名称。
点击保护级别 下拉列表,然后选择软件 。
点击用途 下拉列表,然后选择非对称解密 。
点击算法 下拉列表,然后选择 4096 位 RSA - OAEP 填充 - SHA256 摘要
点击创建 。
命令行
运行以下命令以创建非对称解密密钥:
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:存储桶所属的项目 ID。 Google Cloud
执行以下操作,将会话服务帐号作为主账号添加到非对称密钥:
Google Cloud 控制台
前往控制台中的加密密钥 页面。 Google Cloud
点击包含非对称密钥的密钥环。
选中非对称密钥对应的复选框。
在信息面板 中,点击添加主账号 。
系统会显示添加主账号 。
在新的主账号 字段中,输入 Transfer Appliance 团队提供的会话服务帐号。类似以下示例:
ta-SESSION_ID@transfer-appliance-zimbru.iam.gserviceaccount.com在此示例中,
SESSION_ID是此特定转移的会话 ID。在选择角色 字段中,添加 Cloud KMS CryptoKey Public Key Viewer 角色。
选择添加其他角色 ,然后添加 Cloud KMS CryptoKey Decrypter 角色。
点击保存 。
命令行
运行以下命令,向会话服务帐号授予
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 控制台
前往加密密钥页面,在 Google Cloud 控制台中。
点击包含非对称解密密钥的密钥环。
点击非对称解密密钥的名称。
选择所需的密钥版本,然后点击“更多” more_vert。
点击复制资源名称。
密钥格式示例如下:
projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KEY/cryptoKeyVersions/VERSION_NUMBER
在此示例中:
PROJECT_ID:存储桶所属的项目 ID。 Google CloudLOCATION:密钥环的 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 CloudPROJECT_ID:存储桶所属的项目 ID。 Google Cloud
以下示例响应类似于返回的输出:
NAME STATE projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KEY/cryptoKeyVersions/VERSION_NUMBER ENABLED
在此示例中:
PROJECT_ID:存储桶所属的项目 ID。 Google CloudLOCATION:密钥环的 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 可以在您的网络上运行。