使用金鑰環將金鑰分組在一起

您可以使用 IBM® Key Protect for IBM Cloud® 來建立 一組金鑰,供需要相同 IAM 存取權限的目標使用者群組使用。

身為帳戶管理者,您可以將金鑰組合在 Key Protect 服務實例至稱為 "key ring" 的群組。 金鑰環是金鑰(在您的服務實例內)的集合,其中所有金鑰都需要相同的 IAM 存取權限。 例如,如果您有一個團隊成員群組需要特定類型的特定金鑰群組存取權,則可以建立這些金鑰的金鑰環,並將適當的 IAM 存取原則指派給目標使用者群組。 獲指派金鑰環存取權的使用者可以建立及管理金鑰環內存在的資源。

當一個業務單位能夠存取另一個業務單位不應該擁有的一組金鑰時,金鑰環也很有用。 帳戶管理者可以為每一個業務單位建立金鑰環,並 指派 適當的存取層次給適當的使用者。 如果帳戶管理者想要將特定金鑰環的平台管理委派給其他人,則他們可以指派使用者 金鑰環層次的平台管理者角色。 然後,子管理者將能夠管理金鑰環,並將存取權授與適當的使用者。

您可以授與對內的金鑰環的存取權 Key Protect 使用 IBM Cloud 控制台、IAM API 或 IAM CLI。

在為您的 Key Protect 實例建立金鑰串之前,請先審閱以下注意事項:

  • 每個 Key Protect 實例都隨附預設金鑰環。 每一個新建立的 Key Protect 實例都會隨附一個 ID 為 default 的已產生金鑰環。 所有未與其他指定金鑰環相關聯的金鑰都存在於預設金鑰環內。

  • 金鑰環可存放標準金鑰和根金鑰。 金鑰環可以同時包含標準金鑰和根金鑰。 一個鑰匙圈內 可以容納的鑰匙數量 並無上限。

  • 金鑰一次只能是一個金鑰環的一部分。 金鑰只能是一個金鑰環的一部分。 金鑰環指派在建立金鑰時發生。 如果在建立時未傳入金鑰環 ID,則金鑰將是 default 金鑰環的一部分。

每個服務實例的金鑰環數量上限為 50。

使用使用者介面建立金鑰環

您必須具有服務 "Writer" 或 "Manager" 角色,才能建立金鑰環。

要製作一個鑰匙圈:

  1. 按一下左導覽中的 鑰匙環
  2. 在「金鑰環」畫面中,按一下 建立 按鈕。
  3. 建立金鑰環 標籤中,遵循允許字元的指示,提供新金鑰環的名稱。 接著點擊「建立」。

建立金鑰環之後,您的新金鑰環會出現在金鑰環清單中,您可以將金鑰傳送給它,或為它建立金鑰。

如果您在多個環境中一致地管理鑰匙圈,您可以使用 Key Protect Key Ring 模組或更廣泛的 Key Protect All-Inclusive 模組自動化鑰匙圈和鑰匙佈局。 有關上下文,請參閱 關於 Terraform IBM 模組

使用 API 建立金鑰環

透過向以下端點發出 POST 呼叫,來建立一個鑰匙圈。

https://<region>.kms.cloud.ibm.com/api/v2/keys
  1. 擷取鑑別認證以使用服務中的金鑰

  2. 執行下列 curl 指令來建立金鑰環。

    $ curl -X POST \
        "https://<region>.kms.cloud.ibm.com/api/v2/key_rings/<key_ring_id>" \
        -H "authorization: Bearer <IAM_token>" \
        -H "bluemix-instance: <instance_ID>" \
        -H "correlation-id: <correlation_ID>"
    

    根據下表取代範例要求中的變數。

描述使用Key Protect API 建立金鑰環所需的變數。
變數 說明
區域 必填。 代表您的 Key Protect 實例所在地理區域的區域縮寫,例如 us-southeu-gb

如需更多資訊,請參閱「區域服務端點」。
key_ring_id 必填。 您要建立的鑰匙圈的唯一識別碼。
IAM_token 必填。 您的 IBM Cloud 存取記號。 請在 curl 請求中包含 IAM 憑證的完整內容,包括 Bearer 值。

如需更多資訊,請參閱「取得存取憑證」。
instance_id 必填。 分配給您的 Key Protect 服務實例的唯一識別碼。

如需更多資訊,請參閱「檢索實例 ID」。
correlation_ID 可選。用於追蹤和關聯交易的唯一識別碼。

成功的 POST api/v2/key_rings 請求會傳回 HTTP 201 Created 回應,指出已建立金鑰環,現在可供保留標準及根金鑰。

將金鑰傳送至不同的金鑰環

當需求變更及新的團隊成員帶入組織時,您可以建立新的金鑰環來反映這些組織變更。 建立金鑰環之後,可能需要將金鑰從現有金鑰環移至具有不同 IAM 許可權的新金鑰環。 例如,您可能正在加入一個團隊,該團隊需要特定存取權來存取屬於先前所建立之自訂非預設金鑰環的金鑰。 您可以建立專用於上線團隊的新金鑰環,而且由於金鑰一次只能與一個金鑰環相關聯,因此您需要將金鑰移至新的金鑰環。

將金鑰轉移至另一個金鑰環後,此變更可能需要長達 10 分鐘才會於所有系統中生效。

使用使用者介面將金鑰傳送至不同的金鑰環

如果您沒有看到您預期看到的所有選項,可能是因為您沒有執行特定動作的許可權。 請確定您的角色和許可權足以執行動作。 如需角色的相關資訊,請參閱 管理使用者存取權

您必須同時具有所傳送金鑰及目標金鑰環的服務「管理員」角色,才能傳送金鑰。

金鑰 畫面中:

  1. 找出您要轉移的金鑰。 為了更輕鬆地找到該鍵,請使用以下其中一種方法:
    • 在「金鑰」面板中,從「金鑰圈 ID」篩選器中選取金鑰圈。
    • 在左側導覽列中點選「鑰匙圈」,找到該鑰匙圈,點選動作選單(⋯),然後選擇「檢視金鑰」。
  2. 按一下 ... 按鈕,並從下拉清單中選取 編輯金鑰環
  3. 在下拉清單中,選取您要將金鑰移至其中的金鑰環。 接著點擊「儲存」。

使用 API 將金鑰傳送至不同的金鑰環

透過對下列端點發出 PATCH 呼叫,將金鑰傳送至不同的金鑰環。

https://<region>.kms.cloud.ibm.com/api/v2/keys/<keyID_or_alias>
  1. 擷取鑑別認證以使用服務中的金鑰

    若要更新金鑰的金鑰環,您必須至少具有金鑰及目標金鑰環的 管理程式 服務存取權。 瞭解 IAM 角色如何對映至 Key Protect 服務動作,查看 服務存取角色

  2. 執行下列 curl 指令,以更新金鑰的金鑰環。

    $ curl -X PATCH \
        https://<region>.kms.cloud.ibm.com/api/v2/keys/<keyID_or_alias> \
        -H 'accept: application/vnd.ibm.kms.key+json' \
        -H 'authorization: Bearer <IAM_token>' \
        -H 'bluemix-instance: <instance_ID>' \
        -H 'content-type: application/vnd.ibm.kms.key+json' \
        -H "x-kms-key-ring: <original_key_ring_ID>" \
        -H "correlation-id: <correlation_ID>" \
        -d '{
        "keyRingID": "<new_key_ring_ID>"
        }'
    

    根據下表取代範例要求中的變數。

描述使用Key Protect API 更新金鑰的金鑰環所需的變數。
變數 說明
區域 必填。 代表您的 Key Protect 實例所在地理區域的區域縮寫,例如 us-southeu-gb

如需更多資訊,請參閱「區域服務端點」。
keyID_or_alias 必填。 您要更新的金鑰之唯一識別碼或別名。
IAM_token 必填。 您的 IBM Cloud 存取記號。 請在 curl 請求中包含 IAM 憑證的完整內容,包括 Bearer 值。

如需更多資訊,請參閱「取得存取憑證」。
instance_id 必填。 分配給您的 Key Protect 服務實例的唯一識別碼。

如需更多資訊,請參閱「檢索實例 ID」。
原始鑰匙圈 ID 選用。 金鑰目前所屬金鑰環的唯一 ID。 如果未指定,Key Protect 將在與指定實例相關聯的每個金鑰環中搜尋金鑰。 因此,建議為更最佳化的要求指定金鑰環 ID。 附註: 在沒有 x-kms-key-ring 標頭的情況下建立之金鑰的金鑰環 ID 為: default
correlation_ID 可選。用於追蹤和關聯交易的唯一識別碼。
new_key_ring_ID 必填。 您要將金鑰移至其中之目標金鑰環的唯一 ID。

成功的 PATCH api/v2/keys/keyID_or_alias 要求會傳回金鑰的 meta 資料,包括金鑰所屬金鑰環的 ID。

{
    "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,
            "keyRingID": "new-key-ring",
            "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
        }
    ]
}

授與對金鑰環的存取權

您可以使用 IBM Cloud 主控台、IAM APICLI{ :external},來授與 Key Protect 實例內金鑰環的存取權。

檢閱 角色和權限,瞭解 IBM Cloud IAM 角色如何映射到 Key Protect 動作。

如果要使用主控台來指派對金鑰環的存取權,請執行下列動作:

  1. 從功能表列中,按一下 管理 > 存取權 (IAM),然後選取 使用者,以瀏覽您帳戶中的現有使用者。

  2. 選取表格列,然後按一下 ... 圖示,以開啟該使用者的選項清單。

  3. 從選項功能表中,按一下 指派存取權

  4. 點選「指派使用者額外存取權限」。

  5. 按一下 IAM 服務 按鈕。

  6. 從服務清單中,請選擇 Key Protect.

  7. 請選擇「基於屬性的服務」。

  8. 選取 實例 ID 屬性,並選取金鑰環所在的實例。

  9. 選取 金鑰環 ID 屬性,並輸入與金鑰環相關聯的 ID。

  10. 選擇組合 平台及服務存取角色,以指派使用者的存取權。

  11. 按一下新增

  12. 視需要繼續新增平台及服務存取角色,並在完成時按一下 指派。 請注意,使用者必須至少獲指派整個實例的 讀者 存取權,才能列出、建立及刪除實例內的金鑰環。

影像顯示如何授與使用者對金鑰環的存取權的範例。
展示如何授予使用者對實例的存取權限。

使用 API 列出金鑰環

若要獲得高層級概覽,您可以透過 對以下端點發出 GET 請求, 瀏覽您已配置的 Key Protect 實例中所管理的鑰匙圈。

https://<region>.kms.cloud.ibm.com/api/v2/keys_rings
  1. 擷取鑑別認證以使用服務中的金鑰

  2. 執行下列指令,以檢視金鑰環的一般性質 curl 指令。

    $ curl -X GET \ "https://<region>.kms.cloud.ibm.com/api/v2/key_rings?totalCount=<show_total>&offset=<offset_value>&limit=<offset_limit>" \
        -H "accept: application/vnd.ibm.kms.key_ring+json" \
        -H "authorization: Bearer <IAM_token>" \
        -H "bluemix-instance: <instance_ID>" \
        -H "correlation-id: <correlation_ID>"
    

    問號 ? 後面的查詢參數是選用的,但在這裡包含以記載其用法。 (: :note)

    根據下表取代範例要求中的變數。

描述使用Key Protect API 查看金鑰環所需的變數。
變數 說明
區域 必填。 代表您的 Key Protect 實例所在地理區域的區域縮寫,例如 us-southeu-gb

如需更多資訊,請參閱「區域服務端點」。
IAM_token 必填。 您的 IBM Cloud 存取記號。 請在 curl 請求中包含 IAM 憑證的完整內容,包括 Bearer 值。

如需更多資訊,請參閱「取得存取憑證」。
instance_id 必填。 分配給您的 Key Protect 實例的唯一識別碼。

如需更多資訊,請參閱「檢索實例 ID」。
correlation_ID 選用。 用來追蹤及關聯交易的唯一 ID。
偏移限制 選用。 依預設,GET /key_rings 會傳回一連串 51 keyRings,包括預設 keyRing。 若要擷取另一組鑰匙圈,請使用 limit 並搭配 offset 來分頁瀏覽可用的資源。 limit 的最大值為「5,000」
偏移值 選用。 透過指定 offset``,即可擷取以 offset 值為起點的鑰匙圈子集。
顯示總數 選用。 如果設為 true,則回應 meta 資料會傳回與分頁搭配使用之 totalCount 的值。

成功的 GET api/v2/key_rings 要求會傳回您所提供的金鑰環集合 Key Protect 服務實例。

{
    "metadata": {
        "collectionType": "application/vnd.ibm.kms.key_ring+json",
        "collectionTotal": 2
    },
    "resources": [
        {
            "id": "default"
        },
        {
            "id": "Sample Key Ring 2",
            "creationDate": "2020-03-12T11:00:06Z",
            "createdBy": "..."
        }
    ]
}

使用 API 刪除金鑰環

您可以對下列端點發出 DELETE 呼叫來刪除金鑰環。

https://<region>.kms.cloud.ibm.com/api/v2/key_rings/<key_ring_id>

如果金鑰環至少包含一個非 已毀損 狀態的金鑰,則此動作不會成功。 如果金鑰環中的唯一金鑰處於 已毀損 狀態,則可以在刪除指令中新增 force=true 時刪除金鑰環。 處於該狀態的金鑰會自動傳送至 default 金鑰環。

  1. 擷取鑑別認證以使用服務中的金鑰

  2. 取得您要刪除的鑰匙圈的 ID。

    您可以在中找到金鑰環的 ID Key Protect 實例 擷取金鑰環清單

  3. 執行以下 curl 指令以刪除鑰匙圈。 請注意 force=true 的存在,它會在金鑰環包含處於 已毀損 狀態的金鑰時強制刪除金鑰環。

    $ curl -X DELETE \
        "https://<region>.kms.cloud.ibm.com/api/v2/key_rings/<key_ring_id>?force=true" \
        -H "authorization: Bearer <IAM_token>" \
        -H "bluemix-instance: <instance_ID>" \
        -H "prefer: <return_preference>"
    

    根據下表取代範例要求中的變數。

描述使用Key Protect API 刪除金鑰所需的變數。
變數 說明
區域 必填。 代表您的 Key Protect 實例所在地理區域的區域縮寫,例如 us-southeu-gb

如需更多資訊,請參閱「區域服務端點」。
key_ring_id 必要。 您要刪除的鑰匙圈的唯一識別碼。
IAM_token 必填。 您的 IBM Cloud 存取記號。 請在 curl 請求中包含 IAM 憑證的完整內容,包括 Bearer 值。

如需更多資訊,請參閱「取得存取憑證」。
instance_id 必填。 分配給您的 Key Protect 服務實例的唯一識別碼。

如需更多資訊,請參閱「檢索實例 ID」。

成功的請求會傳回 HTTP 204 No Content 回應,表示已成功刪除鑰匙圈。表示已成功刪除鑰匙圈。