本文档介绍了如何配置 Google Cloud 权限和 Cloud Storage 具体包括:
- 准备目标 Cloud Storage 存储桶。
- 准备 Cloud Key Management Service 密钥以保护您的数据。
- 向 Transfer Appliance 团队提供 Cloud Storage 存储桶配置 数据。
准备工作
确保您收到了 Transfer Appliance 团队发来的名为 Google Transfer Appliance 准备权限和存储空间。此电子邮件 包含:
转移所需的服务账号的名称。
配置设备时所需的会话 ID。
您在配置账号后需要填写的表单。
准备目标 Cloud Storage 存储分区
要将数据存储在 Cloud Storage 中,您必须准备一个存储分区。存储分区是 在 Cloud Storage 中存储数据。
我们使用两个服务账号来移动您的数据 从 Transfer Appliance 迁移到目标 Cloud Storage 存储桶服务账号是应用(而非人员)用于执行操作的特殊账号。在本例中,服务账号允许 Transfer Appliance 代表您使用 Cloud Storage 资源,将数据从设备复制到您的 Cloud Storage 存储分区。您向这些账号授予从设备复制数据所需的角色 复制到您的 Cloud Storage 存储桶
要准备目标 Cloud Storage 存储分区,请按以下步骤操作:
在标题为 Google Transfer Appliance Prepare Destination 的电子邮件中 存储分区,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 项目相关联。您构建的存储桶 select 必须与订购设备时所用的项目位于同一项目中。
如果您没有 Cloud Storage 存储桶,请创建一个:
Google Cloud Console
在 Google Cloud 控制台中打开“Cloud Storage 存储分区”页面。
<ph type="x-smartling-placeholder"></ph> 打开“Cloud Storage 存储分区”页面
点击创建存储分区,打开存储分区创建表单。
输入您的存储分区信息,然后点击继续以完成各个步骤:
根据存储分区命名要求指定一个名称。
为存储分区选择默认存储类别。默认情况下,系统会为上传到该存储分区的所有对象分配该默认存储类别。接下来,为存储分区数据选择一个位置。
选择访问权限控制模型,确定如何控制对存储分区对象的访问权限。
请勿在存储桶上设置保留政策。
点击完成。
命令行
使用
gcloud storage buckets create
命令:gcloud storage buckets create gs://BUCKET_NAME --uniform-bucket-level-access --location=LOCATION --project=PROJECT_ID
在此示例中:
BUCKET_NAME
:要创建的存储分区的名称,需符合存储分区命名要求。LOCATION
:所需的 Cloud Storage 存储分区位置。PROJECT_ID
:要在其下创建存储分区的项目 ID。
请勿在存储桶上设置保留政策。
授予 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 角色。
您选择的角色将显示在窗格中,其中包含对角色授予的权限的简短说明。
点击保存。
命令行
使用
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 存储桶。
您可以通过以下选项管理加密密钥:
Google 管理的加密密钥。您可以要求我们创建并 为您管理 Cloud KMS 密钥。如果您想使用此方法 Google Cloud 项目的配置已完成,您可以 继续执行 接收您的设备。
自行创建和管理加密密钥。您负责创建和管理 加密密钥用于传输。 您需要准备一个 Cloud KMS 非对称解密密钥, 会话服务账号与该密钥相关联。会话服务账号使用 非对称解密密钥,用于解密和复制数据 Cloud Storage
要准备 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 位 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
:您的存储分区所属的 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 角色。
点击添加其他角色。
在选择角色字段中,添加 Cloud KMS CryptoKey Decrypter 角色。
点击保存。
命令行
运行以下命令以向会话服务账号授予
roles/cloudkms.cryptoKeyDecrypter
角色: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.cryptoKeyDecrypter
在此示例中:
KEY
:Cloud Key Management Service 密钥的名称。例如ta-key
。KEY_RING
:密钥环的名称。LOCATION
:密钥环的 Cloud Key Management Service 位置。例如global
。SESSION_ID
:此特定转移的会话 ID。
运行以下命令以向会话服务账号授予
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 Prepare Permissions and Storage 以收集有关 Cloud Storage 存储桶的信息。我们使用 配置数据转移 将 Transfer Appliance 迁移到 Cloud Storage。
在该电子邮件链接的表单中,输入以下信息:
- Google Cloud 项目 ID。
- 选择加密选项:
<ph type="x-smartling-placeholder">
- </ph>
- Google 管理的加密密钥(如果您选择让 Google 管理加密密钥
- 客户管理的加密密钥(如果您选择自行管理加密密钥) 加密密钥。从 选择客户管理的加密密钥下拉菜单。
- Google Cloud Storage 目标存储桶名称,用于 数据。
- 可选:对象前缀。如果没有对象前缀,则系统会使用文件系统上文件名之前的来源路径(不包括根路径)将对象转移到 Cloud Storage。例如,如果您拥有以下文件:
/source_root_path/file1.txt
/source_root_path/dirA/file2.txt
/source_root_path/dirA/dirB/file3.txt
file1.txt
dirA/file2.txt
dirA/dirB/file3.txt
/
字符之后、对象的任何来源路径名称(不包括来源的根路径)之前。这可以帮助您区分从其他转移作业转移过来的对象。 下表演示了几种示例,展示源对象的路径为/source_root_path/sub_folder_name/object_name
时在 Cloud Storage 中的对象前缀及其生成的对象名称:前缀 目标对象名称 无 /destination_bucket/sub_folder_name/object_name
prefix/
/destination_bucket/prefix/sub_folder_name/object_name
后续步骤
配置 IP 网络端口: Transfer Appliance 在您的网络中工作。