建立根金鑰
使用 IBM® Key Protect for IBM Cloud® 建立根金鑰。
根金鑰是用來保護雲端中已加密資料安全的對稱金鑰包裝金鑰。 如需根金鑰的相關資訊,請參閱使用封套加密保護資料。
在一個區域建立的加密金鑰可用於加密位於 IBM Cloud 內任何區域的資料儲存。
在主控台中建立根金鑰
建立服務實例後,請依照以下步驟在 IBM Cloud 主控台。
如果您部署 專用 Key Protect 產品,您必須先 初始化您的實體,才能建立任何資源。
如果您啟用 Key Protect 範例的雙重授權設定,請記住您新增到服務的任何金鑰都需要兩個使用者授權才能刪除金鑰。
-
請前往「選單」>「資源清單」以檢視您的資源清單。
-
從 IBM Cloud 資源清單,選取已佈建的 Key Protect 實例。
-
若要建立新金鑰,請按一下「新增金鑰」。 將開啟側畫面。 確定已選取 建立金鑰 選項。 請注意,若要為此金鑰設定金鑰別名、金鑰圈 或輪替政策,您必須點選「進階選項」索引標籤才能顯示相關設定。
如果您不是 Manager (或具有相等的許可權層次),則 旋轉原則 選項不會出現。
Specify the key's details:
| 設定 | 說明 |
|---|---|
| 類型 | 您希望在 Key Protect 中管理的 金鑰類型。 依預設會選取根金鑰。 |
| 金鑰名稱 | 一個易於辨識的顯示名稱,方便您識別您的金鑰。 長度必須在 2-90 個字元 (內含) 內。 若要保護您的隱私權,請確定金鑰名稱未包含個人識別資訊 (PII)(例如您的姓名或位置)。 請注意,金鑰名稱不需要是唯一的。 |
| 金鑰說明 | 選用。 以無法使用別名或其名稱來新增金鑰相關資訊 (例如,描述其用途的詞組) 的方式,說明是很有用的方法。 此說明必須至少兩個字元,且不超過 240 個字元,且稍後無法變更。 為保護您的隱私,請勿將個人資料(例如您的姓名或位置)用作金鑰的描述。 |
| 金鑰別名 | 選用。 金鑰別名 也是一種說明金鑰的方法。 金鑰最多可以有五個別名。 |
| 金鑰環 | 選用。 金鑰環 是金鑰的分組,容許視需要獨立管理這些分組。 每一個金鑰都必須是金鑰環的一部分。 如果未選取任何金鑰環,則會將金鑰放置在 default 金鑰環中。 請注意,若要將您正在建立的金鑰放置在金鑰環中,您必須對該金鑰環具有 管理員 角色。 如需角色的相關資訊,請參閱
管理使用者存取權。 |
| 輪換原則 | 選用。 如果您保留 管理員 角色,則可以在建立金鑰時設定金鑰的替換原則。 如果依預設存在 實例原則 以在金鑰上建立替換原則,則您也可以在金鑰建立時間以不同的間隔改寫該原則。 請注意,如果您的實例已啟用替換原則,且您在建立金鑰時 停用 替換原則,則該原則仍會以 已停用 狀態寫入金鑰。 如果您稍後想要啟用此原則,則可以執行此動作。 如需相關資訊,請參閱 建立金鑰之後設定替換原則。 |
填寫完密鑰的詳細資料後,請點擊「新增」以確認。
如果您知道要將鑰匙放入哪個鑰匙圈中,且您是該鑰匙_圈的管理員,_ 也可以導覽至「鑰匙圈」面板,選取 ⋯,然後點擊 「新增鑰匙」。 這會開啟您看到的相同畫面,方法是按一下「金鑰」頁面上的 新增,其中 金鑰環 變數已填入金鑰環名稱。
在該服務中建立的金鑰為對稱 256 位元金鑰,並由 AES_KW 演算法支援。 為了提高安全,金鑰是由位於安全 IBM Cloud 資料中心的 FIPS 140-2 Level 3 認證硬體安全模組 (HSM) 所產生。
如果您需要在不同帳戶或環境中一致地提供 root 金鑰,您可以使用 Key Protect 金鑰模組自動執行。 如需完整的設定,同時提供 Key Protect 實例和鑰匙圈,請參閱全包式 Key Protect 模組。 如需概覽,請參閱 Terraform IBM 模組。
使用 API 建立根金鑰
如果您部署 專用 Key Protect 產品,您必須先 初始化您的實體,才能建立任何資源。
對下列端點發出 POST 呼叫來建立根金鑰。
https://<region>.kms.cloud.ibm.com/api/v2/keys
-
執行下列
curl指令來建立根金鑰。$ curl -X POST \ "https://<region>.kms.cloud.ibm.com/api/v2/keys" \ -H "authorization: Bearer <IAM_token>" \ -H "bluemix-instance: <instance_ID>" \ -H "content-type: application/vnd.ibm.kms.key+json" \ -H "x-kms-key-ring: <key_ring_ID>" \ -H "correlation-id: <correlation_ID>" \ -d '{ "metadata": { "collectionType": "application/vnd.ibm.kms.key+json", "collectionTotal": 1 }, "resources": [ { "type": "application/vnd.ibm.kms.key+json", "name": "<key_name>", "aliases": [alias_list], "description": "<key_description>", "expirationDate": "<expiration_date>", "extractable": <key_type> } ] }'根據下表取代範例要求中的變數。
| 變數 | 說明 |
|---|---|
| 區域 | 必填。 代表您的 Key Protect 實例所在地理區域的區域縮寫,例如 us-south 或 eu-gb。 如需相關資訊,請參閱地區服務端點。 |
| IAM_token | 必填。 您的 IBM Cloud 存取記號。 請在 curl 請求中包含 IAM 憑證的完整內容,包括 Bearer 值。 如需更多資訊,請參閱「取得存取憑證」。 |
| instance_id | 必填。 指派給您 Key Protect 服務實例的唯一 ID。 如需更多資訊,請參閱「檢索實例 ID」。 |
| key_ring_ID | 選用。 您希望新建立的金鑰成為其一部分的目標金鑰環的唯一 ID。 如果未指定,則標頭會自動設為 'default',且金鑰將位於指定的 Key Protect 服務實例中的預設金鑰環。 如需相關資訊,請參閱 分組索引鍵。 |
| correlation_ID | 用來追蹤及關聯交易的唯一 ID。 |
| key_name | 必填。 一個便於識別您的金鑰的人類可讀名稱。 重要事項:若要保護您的隱私權,請不要將個人資料儲存為金鑰的 meta 資料。 |
| 別名清單 | 指派給您金鑰的一或多個唯一且人類可讀的別名。 重要事項:若要保護您的隱私權,請不要將個人資料儲存為金鑰的 meta 資料。 每一個別名都必須是英數、區分大小寫,且不能包含橫線 (-) 或底線 (_) 以外的空格或特殊字元。別名不能是第 4 版 UUID,且不能是 Key Protect 保留名稱 :allowed_ip、金鑰、金鑰、meta 資料、原則、原則、登錄、登錄、環、環、旋轉、包裝、解除包裝、重新包裝、版本、版本。 別名大小可以介於 2-90 個字元 (內含) 之間。 |
| key_description | 金鑰的延伸說明。 重要事項:若要保護您的隱私權,請不要將個人資料儲存為金鑰的 meta 資料。 |
| 到期日 | 選用。 系統中金鑰到期的日期和時間,以 RFC 3339 格式 (YYYY-MM-DD HH:MM:SS.SS,例如 2019-10-12T07:20:50.52Z )。 設定到期日時請小心,因為以到期日建立的金鑰會在到期後一小時內自動轉換為_停用_狀態。 在此狀態下,允許對按鍵進行的動作只有解除捲動、重新捲動、旋轉和刪除。 停用的金鑰不能用來加密(包裝)新資料,即使在停用時進行了旋轉。 旋轉不會重設或延長有效日期,也不允許更改日期。 建議在原始 CRK 過期前,使用過期或失效的金鑰加密的任何資料,應使用新的客戶根金鑰 (CRK) 重新加密,以防止服務中斷。 刪除和還原停用的鑰匙不會將該鑰匙移回_啟動_狀態。 若省略 expiration_date 屬性,則該金鑰不會過期。 |
| key_type | 決定金鑰資料是否可以離開服務的布林值。 當您將 extractable 屬性設定為 false 時,該服務會建立一個根金鑰,您可以使用它來執行封裝或解封裝操作。 |
設定到期日時請小心,因為以到期日建立的金鑰會在到期後一小時內自動轉換為_停用_狀態。 在此狀態下,允許對按鍵進行的動作只有解除捲動、重新捲動、旋轉和刪除。 停用的金鑰不能用來加密(包裝)新資料,即使在停用時進行了旋轉。 旋轉不會重設或延長有效日期,也不允許更改日期。 建議在原始 CRK 過期前,使用過期或失效的金鑰加密的任何資料,應使用新的客戶根金鑰 (CRK) 重新加密,以防止服務中斷。 刪除和還原停用的鑰匙不會將該鑰匙移回 Active(作用中 )狀態。 若省略 expiration_date 屬性,則該金鑰不會過期。
您可以使用 IBM Cloud Logs. 日誌會使用 JSON 屬性 responseData.expirationDate 和 responseData.daysToKeyExpire 為有到期日的金鑰以及下列 action 值顯示到期日和剩餘天數:kms.secrets.wrap, kms.secrets.unwrap,
kms.secrets.rewrap, kms.secrets.read, kms.secrets.readmetadata, kms.secrets.create, kms.secrets-with-policy-overrides.create 和 kms.secrets.expire。 此外,對 GET /api/v2/keys 的成功 REST 呼叫會為每個有到期日的金鑰傳回 expirationDate 屬性。
若要保護您個人資料的機密性,請在將金鑰新增至服務時避免輸入個人識別資訊 (PII)(例如您的姓名或位置)。
成功的 POST api/v2/keys 回應會傳回您金鑰的 ID 值,以及其他 meta 資料。 ID 是指派給您金鑰的唯一 ID,並用於後續的 Key Protect API 呼叫。
{
"metadata": {
"collectionType": "application/vnd.ibm.kms.key+json",
"collectionTotal": 1
},
"resources": [
{
"type": "application/vnd.ibm.kms.key+json",
"id": "02fd6835-6001-4482-a892-13bd2085f75d",
"name": "test-root-key",
"aliases": [
"alias-1",
"alias-2"
],
"description": "A test root key",
"state": 1,
"extractable": false,
"crn": "crn:v1:bluemix:public:kms:us-south:a/f047b55a3362ac06afad8a3f2f5586ea:12e8c9c2-a162-472d-b7d6-8b9a86b815a6:key:02fd6835-6001-4482-a892-13bd2085f75d",
"imported": false,
"creationDate": "2020-03-12T03:37:32Z",
"createdBy": "...",
"algorithmType": "Deprecated",
"algorithmMetadata": {
"bitLength": "256",
"mode": "Deprecated"
},
"algorithmBitSize": 256,
"algorithmMode": "Deprecated",
"lastUpdateDate": "2020-03-12T03:37:32Z",
"keyVersion": {
"id": "2291e4ae-a14c-4af9-88f0-27c0cb2739e2",
"creationDate": "2020-03-12T03:37:32Z"
},
"dualAuthDelete": {
"enabled": false
},
"deleted": false
}
]
}
有關回應參數的詳細說明,請參閱 Key Protect 的 REST API 參考文件。
下一步
-
若要進一步瞭解如何使用封套加密來保護金鑰,請參閱包裝金鑰。
-
若要進一步了解如何透過程式方式管理您的金鑰,請參閱 Key Protect 的 API 參考文件。