Hyper Protect 加密服务集成
IBM Cloud® 数据库中存储的数据默认使用随机生成的密钥进行加密。 如果需要控制加密密钥,可以通过 Hyper Protect Crypto Services 自带密钥 (BYOK),使用自己的密钥对数据库进行加密。 请注意,目前大多数地区都不支持Hyper Protect Crypto Services用于IBM Cloud®数据库备份,在没有仔细考虑对灾难恢复的影响的情况下,不建议使用。
本文件涉及 Hyper Protect Crypto Services (HPCS) 与 Cloud Databases 的整合,其中包括 Databases for Elasticsearch, Databases for EnterpriseDB, Databases for etcd, Databases for MongoDB, Databases for PostgreSQL, Databases for Redis, IBM Cloud® Databases for MySQL 和 Messages for RabbitMQ。
要开始使用,您需要在您的 Hyper Protect Crypto Services 账户上配置IBM Cloud。
在Hyper Protect Crypto Services中创建或添加密钥}
导航至Hyper Protect Crypto Services实例并 生成或输入密钥。
授予服务授权
授权Hyper Protect Crypto Services用于Cloud Databases部署:
- 打开 IBM Cloud 仪表板。
- 在菜单栏中,单击**管理 ** > 访问权 (IAM)。
- 在侧边导航中,单击授权。
- 单击创建。
- 在源服务菜单中选择部署的服务。 例如,Databases for PostgreSQL 或 Messages for RabbitMQ
- 在源服务实例菜单中,选择所有实例。
- 在目标服务菜单中选择 HPCS。
- 选择或保留默认值
Account
作为目标服务的资源组 - 在目标服务实例 ID 菜单中选择要授权的服务实例。
- 启用读取者角色。
- 单击授权。
如果在使用密钥调配部署之前没有服务授权,调配就会失败。
使用 HPCS 键
授予Cloud Databases部署使用密钥的权限后,就可以在部署时提供 密钥名称或 CRN。 部署使用您的加密密钥对数据进行加密。
如果从目录页面调配,则从下拉菜单中选择 HPCS 实例和密钥。
在 CLI 中,在参数的 JSON 对象中使用 disk_encryption_key_crn
参数。
ibmcloud resource service-instance-create <INSTANCE_NAME> <SERVICE-NAME> standard us-south \
-p \ '{
"disk_encryption_key_crn": "crn:v1:<...>:key:<id>"
}'
在应用程序接口中,在请求正文中使用 disk-encryption-key
参数。
curl -X POST \
https://resource-controller.cloud.ibm.com/v2/resource_instances \
-H 'Authorization: Bearer <>' \
-H 'Content-Type: application/json' \
-d '{
"name": "my-instance",
"target": "blue-us-south",
"resource_group": "5g9f447903254bb58972a2f3f5a4c711",
"resource_plan_id": "databases-for-x-standard",
"disk_encryption_key_crn": "crn:v1:<...>:key:<id>"
}'
如果通过 CLI 或 API 配置部署,则 HPCS 密钥必须通过其完整的 CRN 标识,而不仅仅是其 ID。 HPCS CRN 的格式为 crn:v1:<...>:key:<id>
。
使用 HPCS 密钥进行备份加密
此功能仅在欧盟-欧洲南部和巴西-圣保罗地区受支持。 在单个区域使用 HPCS 加密备份,如果该区域的 HPCS 服务中断,备份将无法访问。 在 HPCS 不可用期间,备份和从备份恢复都将失败。 因此,不建议使用 HPCS 加密备份。 使用IBM® Key Protect加密备份。
如果使用 HPCS 加密备份,则也使用 HPCS 加密磁盘。
授予Cloud Databases部署使用密钥的权限后,就可以在部署时提供 密钥名称或 CRN。 部署使用您的加密密钥对数据进行加密。
如果从目录中调配,则从下拉菜单中选择 HPCS 实例和密钥。
在 CLI 中,在参数的 JSON 对象中使用 backup_encryption_key_crn
参数。
ibmcloud resource service-instance-create <INSTANCE_NAME> <SERVICE-NAME> standard eu-es \
-p \ '{
"backup_encryption_key_crn": "crn:v1:<...>:key:<id>"
}'
在应用程序接口中,在请求正文中使用 backup-encryption-key
参数。
curl -X POST \
https://resource-controller.cloud.ibm.com/v2/resource_instances \
-H 'Authorization: Bearer <>' \
-H 'Content-Type: application/json' \
-d '{
"name": "my-instance",
"target": "blue-us-south",
"resource_group": "5g9f447903254bb58972a2f3f5a4c711",
"resource_plan_id": "databases-for-x-standard",
"parameters": {
"backup_encryption_key_crn": "crn:v1:<...>:key:<id>"
}
}'
如果通过 CLI 或 API 配置部署,则 HPCS 密钥必须通过其完整的 CRN 标识,而不仅仅是其 ID。 HPCS CRN 的格式为 crn:v1:<...>:key:<id>
。
密钥轮换
HPCS 提供手动和自动 密钥旋转 功能,Cloud Databases部署支持密钥旋转。 旋转密钥时,进程会启动_同步 KMS 状态_任务,并使用新密钥重新加密部署。 任务会显示在部署_概览_的_任务_面板上,相关的 HPCS 和Cloud Databases事件会发送到Activity Tracker。
删除部署
如果删除受 HPCS 密钥保护的部署,在软删除期间(最多 9 天),该部署仍会根据密钥进行注册。 如果需要在软删除期内删除密钥,则必须 强制删除 该密钥。 软删除期结束后,可以不强制删除密钥。 您可以检查 密钥与部署之间的关联,以确定何时可以删除密钥。
加密粉碎
加密粉碎是一种破坏性行为。 密钥删除后,数据将无法恢复。
Hyper Protect Crypto Services enables 启动武力删除 of a key that is in use by IBM Cloud® services, including your Cloud Databases deployments. 这种行为被称为加密粉碎。 删除部署中使用的密钥会锁定包含数据的磁盘并禁用部署。 您仍然可以访问用户界面和一些元数据,如用户界面、CLI
和 API 中的安全设置,但无法访问任何数据库或其中包含的数据。 密钥删除以 hs-crypto.secrets.delete
的形式 发送至 Activity Tracker Event Routing。