本文档介绍了如何预配仅具有 静态数据驻留或具有 高级数据驻留的 Apigee 组织。
另请参阅 数据驻留简介。
预配仅具有静态数据驻留的组织
作为 Apigee 管理员,如需预配仅具有静态数据驻留的组织 以限制数据的存储位置,请使用其中一个可用的付费组织 预配选项。 请务必在预配期间选中启用数据驻留 复选框。
预配具有高级数据驻留的组织
作为 Apigee 管理员,如需预配具有高级数据驻留的组织,包括数据存储(静态)、处理(使用中)和传输(传输中),您需要执行以下步骤。
| # | 步骤 | 说明 | 执行者 |
| 1 | 创建 Assured Workloads 文件夹 | 在您的 Google Cloud 组织中创建 Assured Workloads 文件夹,以设置和 强制执行所需的组织政策,这些政策仅允许在允许的位置使用资源。 | Google Cloud 具有 Assured Workloads 管理权限 的管理员 |
| 2 | 预配具有高级数据驻留的组织 | 使用其中一个
可用的付费组织
预配选项,预配具有高级数据驻留的付费组织。
您必须使用管辖区级控制台访问 Apigee 界面,或使用区域端点访问 Apigee API,具体取决于您的控制平面位置。 |
Apigee 组织管理员 |
创建 Assured Workloads 文件夹
借助 Assured Workloads,组织可以对 Google Cloud 资源应用和强制执行监管、区域和主权控制。
使用 Google Cloud 控制台,您可以在组织中创建 Assured Workloads 文件夹
,并根据您的监管要求选择控制软件包。
Google Cloud 控制软件包是一组控制措施,这些控制措施组合在一起时,可支持合规性框架、法规或规章的基准。控制软件包会设置并强制执行所需的
组织
政策限制条件,以:
- 将资源使用限制为仅支持的产品
- 仅允许在允许的位置创建或使用资源
如需详细了解 Assured Workloads,请参阅 Assured Workloads 概览。
预配具有高级数据驻留的组织
作为 Apigee 管理员,在使用其中一个 预配选项预配付费组织时,您需要使用 管辖区级控制台访问 Apigee 界面 或区域端点(在使用 CLI 时)。
使用管辖区级控制台
预配具有高级数据驻留的组织时,您需要使用基于位置的管辖区级控制台访问 Apigee 界面。使用管辖区级控制台预配 Apigee 组织时,系统会自动配置以下字段:
- 启用数据驻留 已选中(且无法取消选中)
- 控制平面托管管辖区 选项会根据所使用的管辖区级控制台进行过滤
- 所有其他区域选择器都会经过过滤,仅显示所选控制平面托管管辖区内的 位置
如需了解如何访问管辖区级控制台, 请参阅 Assured Workloads 中的管辖区级 Google Cloud 控制台 和共同 责任。
使用区域端点
预配具有高级数据驻留的组织时,请使用以下区域端点:
apigee.CONTROL_PLANE_LOCATION.rep.googleapis.com
其中,CONTROL_PLANE_LOCATION 是 Apigee 控制平面数据的实际存储位置 。如需查看可用的控制平面位置列表,请参阅 使用区域端点实现高级数据驻留。
在预配期间,您负责选择适当的值。如果您使用的位置受到现有
组织政策
的禁止,则会收到 Permission Denied 错误。
例如,以下命令会在美国区域中创建一个启用了 CMEK 的 Apigee 组织。 另请参阅 Apigee 组织 API。
curl "https://apigee.us.rep.googleapis.com/v1/organizations?parent=projects/$PROJECT_ID" \
-X POST
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-d '{
"name": "$PROJECT_ID",
"runtimeType": "CLOUD", # Hybrid organizations aren't supported
"billingType": "$BILLING_TYPE", # Eval organizations aren't supported
"controlPlaneEncryptionKeyName" : "'"$CONTROL_PLANE_KEY_ID"'",
"apiConsumerDataLocation" : "'"$CONSUMER_DATA_REGION"'", # Must be single region in US
"apiConsumerDataEncryptionKeyName" : "'"$CONSUMER_DATA_KEY_ID"'",
"authorizedNetwork" : "'"$NETWORK_NAME"'", # Must be created in the US region
"runtimeDatabaseEncryptionKeyName" : "'"$RUNTIMEDB_KEY_ID"'"
}'
如何使用 gcloud CLI 创建具有外部保护级别的 CMEK 密钥
在欧盟区域中预配具有高级数据驻留的 Apigee 组织时,您需要创建具有外部 保护级别的客户管理的加密 (CMEK) 密钥。 您必须使用 Google Cloud CLI 创建 CMEK 密钥,因为欧盟管辖区级控制台不支持设置外部支持的 CMEK 密钥。此外,您还需要设置外部密钥管理器 (EKM)。
如需创建 CMEK 密钥并设置 EKM,请按照以下部分中所述的步骤操作:
设置 EKM
为欧盟区域创建的 CMEK 密钥必须使用外部保护级别创建,因此您需要设置 EKM。 如需设置 EKM,请按照以下部分中提供的说明操作:
为欧盟区域创建 CMEK 密钥
使用以下 gcloud CLI 命令创建欧盟区域所需的以下 CMEK 密钥:
- 控制平面加密密钥
- API 使用方数据加密密钥
- 运行时数据库加密密钥
- 运行时磁盘加密密钥
如需详细了解如何创建 CMEK 密钥,请参阅 Apigee 加密密钥简介。
重复以下步骤,创建每个所需的 CMEK 密钥:
- 使用以下命令在欧盟区域中创建密钥环:
gcloud kms keyrings create DATA_KEY_RING \ --location LOCATION \ --project=PROJECT_ID - 使用以下命令创建外部密钥:
gcloud kms keys create DATA_KEY_NAME \ --keyring=DATA_KEY_RING \ --location LOCATION \ --purpose encryption \ --protection-level external \ --skip-initial-version-creation \ --default-algorithm external-symmetric-encryption \ --project PROJECT_ID - 使用以下命令创建指向在上一步中设置的 EKM
的密钥版本:
gcloud kms keys versions create \ --key DATA_KEY_NAME \ --keyring DATA_KEY_RING \ --location LOCATION \ --external-key-uri "EKM_URI" \ --primary \ --project PROJECT_ID - 使用以下命令向 Apigee 服务代理授予权限:
gcloud kms keys add-iam-policy-binding DATA_KEY_NAME \ --location LOCATION \ --keyring DATA_KEY_RING \ --member serviceAccount:service-$(gcloud projects describe $project --format="value(projectNumber)")@gcp-sa-apigee.iam.gserviceaccount.com \ --role roles/cloudkms.cryptoKeyEncrypterDecrypter \ --project PROJECT_ID
其中:
- DATA_KEY_RING:控制平面、API 使用方数据、 运行时数据库或运行时磁盘密钥环的名称。
- DATA_KEY_NAME:控制平面、API 使用方数据、 运行时数据库或运行时磁盘密钥的名称。
- LOCATION:密钥环的 Cloud KMS 位置。按如下方式设置此值:
- 对于控制平面加密密钥,请设置为以下多区域密钥之一:
us或europe。 - 对于 API 使用方数据加密密钥、运行时数据库加密密钥和运行时磁盘加密密钥,
请设置为以下单区域密钥之一:
europe-*或us-*。 例如,europe-west1、us-central1等。
- 对于控制平面加密密钥,请设置为以下多区域密钥之一:
- EKM_URI:EKM URI。
- PROJECT_ID:项目 ID。 Google Cloud
配置 gcloud CLI 以使用区域端点(可选)
您可以使用 gcloud CLI 管理 Apigee 组织。对于大多数组织, gcloud CLI 会自动检测适当的区域端点。如果您的 Apigee 组织名称与项目名称匹配,则此操作可以无缝运行 。 Google Cloud
但在某些情况下,名称可能不匹配。例如,如果您将 Apigee 组织从 一个 Google Cloud 项目迁移到另一个项目,则 Apigee 组织的名称及其所在 Google Cloud 项目 的名称可能会有所不同。在这种情况下,您在使用 gcloud CLI 时需要执行以下任一操作:
- 使用每个 gcloud CLI 命令传递
--organization标志,以 指定目标 Apigee 组织。 - 配置 gcloud CLI 以替换 Apigee 端点,并强制所有命令使用新的区域端点。
例如,如需使用美国区域端点,gcloud CLI 命令如下所示:
gcloud config set api_endpoint_overrides/apigee https://apigee.us.rep.googleapis.com/
查看组织的控制平面位置
如果您已预配组织 (PROJECT_ID) 以用于 数据驻留,则可以使用 getProjectMapping API 查看与项目关联的控制平面位置,方法是 执行以下步骤:
- 授权 gcloud 使用您的
Google 用户凭据访问 Cloud Platform:
gcloud auth login
- 调用 getProjectMapping API。
由于访问的信息是元数据,而不是客户核心内容, 您可以使用全局或区域端点调用 API。以下命令使用 全局端点:
curl -X GET https://apigee.googleapis.com/v1/organizations/PROJECT_ID:getProjectMapping \ -H "Authorization: Bearer $(gcloud auth print-access-token)"其中,PROJECT_ID 是您的 Apigee 组织名称。
以下提供了一个响应示例:
{ "organization": "my-project", "projectIds": [ "my-project" ], "projectId": "my-project" "location": "us" }
迁移 Apigee 组织以支持高级数据驻留
如需迁移支持静态数据驻留的现有 Apigee 组织以 支持高级数据驻留,请执行以下操作:
- 将预配 Apigee 的 Google Cloud 项目移至 Assured Workloads 文件夹。如需了解详情,请参阅 迁移工作负载。
- 如果您是在高级数据驻留正式发布之前创建的 Apigee 组织,则需要重新配置全局网络资源,以将其迁移到所需管辖区内。否则,您可以跳过此步骤。