IBM Cloud Docs
Hyper Protect 加密服务集成

Hyper Protect 加密服务集成

您存储在 IBM Cloud® 数据库中的数据默认情况下使用随机生成的密钥进行加密。 如果需要控制加密密钥,可以通过 Hyper Protect Crypto Services 自带密钥 (BYOK),使用自己的密钥对数据库进行加密。 请注意,目前大多数地区都不支持Hyper Protect Crypto Services用于IBM Cloud®数据库备份,在没有仔细考虑对灾难恢复的影响的情况下,不建议使用。

This document covers the integration of Hyper Protect Crypto Services (HPCS) with Cloud Databases, which includes Databases for Elasticsearch, Databases for EnterpriseDB, Databases for etcd, Databases for MongoDB, Databases for PostgreSQL, Databases for Redis, IBM Cloud® Databases for MySQL, and Messages for RabbitMQ.

要开始使用,您需要在您的 Hyper Protect Crypto Services 账户上配置IBM Cloud。

在Hyper Protect Crypto Services中创建或添加密钥}

导航至Hyper Protect Crypto Services实例并 生成或输入密钥

授予服务授权

授权Hyper Protect Crypto Services用于Cloud Databases部署:

  1. 打开 IBM Cloud 仪表板。
  2. 在菜单栏中,单击**管理 ** > 访问权 (IAM)
  3. 在侧边导航中,单击授权
  4. 单击创建
  5. 源服务菜单中选择部署的服务。 例如,Databases for PostgreSQLMessages for RabbitMQ
  6. 源服务实例菜单中,选择 “所有实例”。
  7. Target服务菜单中,选择 HPCS
  8. 选择或保留默认值 Account 作为目标服务的资源组
  9. 在“目标服务实例ID”菜单中,选择要授权的服务实例。
  10. 启用读取者角色。
  11. 单击授权

如果在使用密钥调配部署之前没有服务授权,调配就会失败。

使用 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