Key Protect 整合

您儲存在 IBM Cloud® 資料庫中的資料預設會使用隨機生成的金鑰進行加密。 若要控制加密金鑰,您可以透過 IBM Key Protect 自帶金鑰 (BYOK),並使用您自己的金鑰之一來加密您的資料庫和備份。

本文件涵蓋與 Key Protect 的整合 Cloud Databases,其中包含 Databases for PostgreSQL、Databases for MongoDB、Databases for Redis、Databases for Elasticsearch、IBM Cloud® Databases for MySQL、及 Messages for RabbitMQ。

首先,您需要在您的IBM Cloud Key Protect }}。

在Key Protect中建立或新增金鑰

前往您的Key Protect實例並 產生或輸入金鑰

在 UI 中授予服務授權

授權Key Protect與Cloud Databases部署一起使用:

  1. 開啟您的 IBM Cloud 儀表板
  2. 從選單列中,點擊「管理」→「存取權限 (IAM)」。
  3. 在側邊導覽中,按一下授權
  4. 按一下建立
  5. 來源服務選單中,選擇部署的服務。 例如,Databases for PostgreSQLMessages for RabbitMQ
  6. 來源服務資源選單中,選擇所有資源
  7. 目標服務功能表中,選取 Key Protect
  8. 選擇或保留預設值帳戶作為目標服務的資源群組
  9. 在目標服務的「實例 ID」選單中,選擇要授權的服務實例。
  10. 啟用讀者角色。
  11. 若要使用「自帶金鑰」(BYOK) 進行備份,請在授權相關服務部分中選擇啟用委派授權框。
  12. 按一下授權

如果在使用金鑰配置部署之前不存在服務授權,則配置會失敗。

使用 Key Key Protect

授予Cloud Databases部署使用金鑰的權限後,您可以在設定部署時提供 金鑰名稱或 CRN。 部署使用您的加密金鑰來加密您的資料。

在 UI 中使用Key Protect鑰

如果從目錄頁面進行配置,請從下拉式選單中選擇Key Protect實例和金鑰。

在 CLI 中使用Key Protect鑰

在 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>"
}'

該 Key Protect 關鍵項目需以其完整的課程編號(CRN)進行識別,而非僅憑其ID。 金鑰保護 CRN 的格式為 crn:v1:<...>:key:<id>

在 API 中使用Key Protect鑰

在 API 中,在請求正文中使用 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>"
  }'

該 Key Protect 關鍵項目需以其完整的課程編號(CRN)進行識別,而非僅憑其ID。 金鑰保護 CRN 的格式為 crn:v1:<...>:key:<id>

金鑰輪換

Key Protect提供手動和自動 密鑰輪換,並且Cloud Databases部署支援密鑰輪換。 當您輪換金鑰時,該程序會啟動_同步 KMS 狀態_任務,並且您的部署將使用新金鑰重新加密。 該任務顯示在部署_概述_的_任務_頁面上,並且關聯的Key Protect和Cloud Databases事件將發送到Activity Tracker。

有關詳細信息,請參閱 手動或自動旋轉

刪除部署

如果刪除受Key Protect金鑰保護的部署,則該部署在軟體刪除期間(最多 9 天)仍會根據該金鑰註冊。 如需在軟刪除期間刪除該金鑰,請強制刪除 該金鑰。 軟刪除期過後,可以不強制刪除密鑰。 若要確定何時可以刪除金鑰,請檢查 金鑰與您的部署之間的關聯

加密粉碎

加密粉碎是一種破壞性行為。 密鑰被刪除後,您的資料將無法恢復。

Key Protect允許您 強制刪除IBM Cloud®服務正在使用的金鑰,包括您的Cloud Databases部署。 此動作稱為加密粉碎。 刪除部署中正在使用的金鑰會鎖定包含您的資料的磁碟並停用您的部署。 您仍然可以存取 UI 和一些元數據,例如 UI、CLI 和 API 中的安全設置,但無法存取其中包含的任何資料庫或資料。 金鑰刪除會以 kms.secrets.delete 的方式 傳送到 Activity Tracker Event Routing

帶上您自己的金鑰進行備份

如果您使用Key Protect,當您設定資料庫時,您也可以指定一個金鑰來加密儲存部署備份的Cloud Object Storage磁碟。

用於備份的 BYOK 僅在美國區域 us-southus-east 以及 eu-de 可用。

只有 us-southeu-de 中的鍵對區域故障具有持久性。 為了確保即使發生區域故障您的備份也可用,您必須使用 us-southeu-de 中的金鑰,無論您的部署位置為何。

授予委託授權

若要讓您的部署能夠使用Key Protect金鑰,您需要在授予服務授權時 啟用委派授權。 如果在使用金鑰配置部署之前不存在委派授權,則配置會失敗。

在 CLI 中使用配置時的金鑰

授予適當的授權和委派後,您可以在配置部署時提供 金鑰名稱或 CRN

在 CLI 中,使用參數 JSON 物件中的 backup_encryption_key_crn 參數。

ibmcloud resource service-instance-create <INSTANCE_NAME> <SERVICE-NAME> standard us-south \
-p \ '{
  "backup_encryption_key_crn": "crn:v1:<...>:key:<id>"
}'

使用 API 中提供的金鑰

在 API 中,在請求正文中使用 backup_encryption_key_crn 參數。

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",
    "backup_encryption_key_crn": "crn:v1:<...>:key:<id>"
  }'

啟用委派並配置部署後,IAM 中的_授權_中會顯示兩個條目。 第一個是將其狀態列為委託者的部署條目。 這是“用戶創建”。

委託人Key Protect授權範例
角色 來源 目標 類型
AuthorizationDelegator,讀者 <cloud-databases> 服務 Key Protect 服務 使用者定義

一個用於Cloud Object Storage桶的備份,其中部署是發起者。

來自Cloud Databases的Cloud Object StorageKey Protect授權範例
角色 來源 目標 類型
讀者 Cloud Object Storage 服務 Key Protect 服務 建立者 <cloud-databases-crn>

拔下鑰匙

IAM/ Key Protect不會阻止您刪除金鑰和Cloud Object Storage之間的策略(第二個範例),但這樣做可能會使您的備份無法復原。 為防止這種情況,如果您刪除控制Cloud Databases使用Cloud Object Storage金鑰的能力的雲端物件Cloud Object Storage策略,則會重新建立該策略以繼續備份您的部署。

刪除密鑰和授權時要小心。 如果您有多個使用相同金鑰的部署,則可能會透過撤銷委派授權而無意中破壞所有這些部署的備份。 如果可能,請勿對多個部署的備份使用相同的金鑰。

如果您想粉碎備份,可以刪除該金鑰。 Cloud Object Storage確保儲存不可讀、不可寫入。 但是,使用相同金鑰進行備份的任何其他部署都會遇到後續備份失敗。

如果您確實需要將相同金鑰用於多個部署的備份,則刪除金鑰和授權可能會產生以下副作用。

  • 如果您僅刪除Cloud Object Storage授權(如表 2 所示),那麼不僅顯示為建立者的部署會受到影響,而且任何也使用相同金鑰的部署也會受到影響。 這些部署可能會遇到臨時備份失敗,直到自動重新建立策略為止。 除了遺失備份之外,不應該有任何持久影響。
  • 如果您僅刪除由您建立的Cloud Databases委託人授權(如表 1 所示),則不會立即發生任何中斷,因為第二個授權仍然存在。 但是,如果Cloud Object Storage授權被刪除,則無法重新建立它,並且可能導致使用相同金鑰的多個部署失去備份能力。
  • 如果您同時刪除Cloud Object Storage授權Cloud Databases委託人授權,則所有使用相同金鑰的部署將立即無法備份,並且將無法重新建立正確的授權,從而有效地破壞備份對於使用該金鑰的所有部署。

如果重複使用密鑰,請務必小心。