IBM Cloud Docs
ローテーション・ポリシーに基づくルート鍵のローテート

ローテーション・ポリシーに基づくルート鍵のローテート

IBM Cloud® Hyper Protect Crypto Services を使用して、ルート鍵の自動ローテーション・ポリシーを設定できます。

ルート鍵の自動ローテーション・ポリシーを設定すると、鍵の存続期間が定期的に短くなり、その鍵で保護される情報量が制限されます。

ローテーション・ポリシーは、Hyper Protect Crypto Services で生成されたルート鍵に対してのみ作成できます。 ルート鍵を最初にインポートした場合、鍵をローテートするには、 新しい Base64 エンコードの鍵素材を指定する必要があります。 詳しくは、オンデマンドでのルート鍵のローテートを参照してください。

Hyper Protect Crypto Services でのキー・ローテーションのオプションについて詳しくは、 キー・ローテーションのオプション比較を参照してください。

UI でのローテーション・ポリシーの管理

グラフィカル インターフェイスを使用してルート キーのポリシーを管理する場合は、UI を使用できます。

  1. UI にログインします

  2. 「メニュー」>**「リソース・リスト」**に移動し、リソースのリストを表示します。

  3. IBM Cloud リソース・リストで、Hyper Protect Crypto Services のプロビジョン済みインスタンスを選択します。

  4. **「KMS 鍵 (KMS keys)」ページで、「鍵」**テーブルを使用して、このサービスの鍵を参照します。

  5. アクション・アイコンActions iconをクリックして、特定のキーのオプションのリストを開きます。

  6. オプション・メニューから、鍵のローテーション・ポリシーを管理するための**「鍵のローテーション・ポリシーの編集 (Edit key rotation policy)」**をクリックします。

  7. **「鍵のローテーション (Key rotation)」「オン」**に切り替え、スライダーを移動してローテーションの頻度を月単位で選択します。

    鍵のローテーション・ポリシーが既に存在する場合、鍵の既存ローテーション期間がインターフェースで表示されます。

  8. **「ポリシーの保存」**をクリックして、鍵にポリシーを設定します。

指定したローテーション間隔に基づいて鍵をローテートするときになったら、ルート鍵は新しい鍵素材で Hyper Protect Crypto Services によって自動的に置き換えられます。

API を使用したローテーション・ポリシーの管理

ローテーション・ポリシーの表示

概略を把握するため、以下のエンドポイントへの GET 呼び出しを行うことによって、ルート鍵と関連付けられたローテーション・ポリシーを表示できます。

https://<instance_ID>.api.<region>.hs-crypto.appdomain.cloud/api/v2/keys/<key_ID>/policies
  1. サービス資格情報および認証資格情報を取得します

  2. 以下の cURL コマンドを実行して、指定した鍵のローテーション・ポリシーを取得します。

    curl -X GET \
      https://<instance_ID>.api.<region>.hs-crypto.appdomain.cloud/api/v2/keys/<key_ID>/policies \
      -H 'authorization: Bearer <IAM_token>' \
      -H 'bluemix-instance: <instance_ID>' \
      -H 'correlation-id: <correlation_ID>' \
      -H 'content-type: application/vnd.ibm.kms.policy+json'
    

    次の表に従って、例の要求内の変数を置き換えてください。

    表 1. API を使用してローテーション・ポリシーを作成するために必要な変数について説明します。
    変数 説明
    region 必須。 地域の略語、例:us-south または eu-de、あなたの地理的エリアを表しますHyper Protect Crypto Servicesサービス インスタンスが存在します。 詳細については、リージョナル・サービス・エンドポイントを参照してください。
    port 必須。 API エンドポイントのポート番号。
    key_ID 必須。 既存のローテーション・ポリシーがあるルート鍵の固有 ID。
    IAM_token 必須。 IBM Cloud アクセス・トークン。 Bearer 値を含む、IAM トークンの全コンテンツを cURL 要求に組み込みます。 詳細については、アクセス・トークンのリトリーブを参照してください。
    instance_ID 必須。 Hyper Protect Crypto Services サービス・インスタンスに割り当てられた固有 ID。 詳細については、インスタンス ID のリトリーブを参照してください。
    correlation_ID トランザクションを追跡し、相互に関連付けるために使用される固有 ID。

    GET api/v2/keys/{id}/policies が成功すると、鍵と関連付けられたポリシー詳細が応答で返されます。 以下の JSON オブジェクトは、ルート鍵に既存のローテーション・ポリシーがある場合の応答例を示しています。

    {
        "metadata": {
            "collectionTotal": 1,
            "collectionType": "application/vnd.ibm.kms.policy+json"
        },
        "resources": [
        {
            "id": "a1769941-9805-4593-b6e6-290e42dd1cb5",
            "rotation": {
                "interval_month": 1
            },
            "createdby": "IBMid-503CKNRHR7",
            "createdat": "2019-03-06T16:31:05Z",
            "updatedby": "IBMid-503CKNRHR7",
            "updatedat": "2019-03-06T16:31:05Z"
        }
      ]
    }
    

    interval_month 値は、鍵のローテーション頻度 (月単位) を示します。

ローテーション・ポリシーの作成

以下のエンドポイントへの PUT 呼び出しを行うことによって、ルート鍵のローテーション・ポリシーを作成します。

https://<instance_ID>.api.<region>.hs-crypto.appdomain.cloud/api/v2/keys/<key_ID>/policies
  1. サービス資格情報および認証資格情報を取得します

  2. 以下の cURL コマンドを実行して、指定した鍵のローテーション・ポリシーを作成します。

    curl -X PUT \
      https://<instance_ID>.api.<region>.hs-crypto.appdomain.cloud/api/v2/keys/<key_ID>/policies \
      -H 'authorization: Bearer <IAM_token>' \
      -H 'bluemix-instance: <instance_ID>' \
      -H 'correlation-id: <correlation_ID>' \
      -H 'content-type: application/vnd.ibm.kms.policy+json' \
      -d '{
     "metadata": {
       "collectionType": "application/vnd.ibm.kms.policy+json",
       "collectionTotal": 1
     },
     "resources": [
       {
       "type": "application/vnd.ibm.kms.policy+json",
       "rotation": {
         "interval_month": <rotation_interval>
        }
       }
      ]
    }'
    

    次の表に従って、例の要求内の変数を置き換えてください。

    表 2. API を使用してローテーション・ポリシーを作成するために必要な変数について説明します。
    変数 説明
    region 必須。 地域の略語、例:us-south または eu-de、あなたの地理的エリアを表しますHyper Protect Crypto Servicesサービス インスタンスが存在します。 詳細については、リージョナル・サービス・エンドポイントを参照してください。
    port 必須。 API エンドポイントのポート番号。
    key_ID 必須。 ローテーション・ポリシーを作成する対象のルート鍵の固有 ID。
    IAM_token 必須。 IBM Cloud アクセス・トークン。 Bearer 値を含む、IAM トークンの全コンテンツを cURL 要求に組み込みます。 詳細については、アクセス・トークンのリトリーブを参照してください。
    instance_ID 必須。 Hyper Protect Crypto Services サービス・インスタンスに割り当てられた固有 ID。 詳細については、インスタンス ID のリトリーブを参照してください。
    correlation_ID トランザクションを追跡し、相互に関連付けるために使用される固有 ID。
    rotation_interval 必須。 鍵のローテーション間隔を月単位で示す整数値。 最小値は 1 そして最大値は 12

    PUT api/v2/keys/{id}/policies が成功すると、鍵と関連付けられたポリシー詳細が応答で返されます。 以下の JSON オブジェクトは、ルート鍵に既存のローテーション・ポリシーがある場合の応答例を示しています。

    {
        "metadata": {
            "collectionTotal": 1,
            "collectionType": "application/vnd.ibm.kms.policy+json"
        },
        "resources": [
        {
            "id": "a1769941-9805-4593-b6e6-290e42dd1cb5",
            "rotation": {
                "interval_month": 1
            },
            "createdby": "IBMid-503CKNRHR7",
            "createdat": "2019-03-06T16:31:05Z",
            "updatedby": "IBMid-503CKNRHR7",
            "updatedat": "2019-03-06T16:31:05Z"
        }
      ]
    }
    

ローテーション・ポリシーの更新

以下のエンドポイントへの PUT 呼び出しを行うことにより、既存のルート鍵のポリシーを更新します。

https://<instance_ID>.api.<region>.hs-crypto.appdomain.cloud/api/v2/keys/<key_ID>/policies
  1. サービス資格情報および認証資格情報を取得します

  2. 以下の cURL コマンドを実行して、指定した鍵のローテーション・ポリシーを置換します。

    curl -X PUT \
      https://<instance_ID>.api.<region>.hs-crypto.appdomain.cloud/api/v2/keys/<key_ID>/policies \
      -H 'authorization: Bearer <IAM_token>' \
      -H 'bluemix-instance: <instance_ID>' \
      -H 'correlation-id: <correlation_ID>' \
      -H 'content-type: application/vnd.ibm.kms.policy+json' \
      -d '{
     "metadata": {
       "collectionType": "application/vnd.ibm.kms.policy+json",
       "collectionTotal": 1
     },
     "resources": [
       {
       "type": "application/vnd.ibm.kms.policy+json",
       "rotation": {
         "interval_month": <new_rotation_interval>
        }
       }
      ]
    }'
    

    次の表に従って、例の要求内の変数を置き換えてください。

    表 3. API を使用してローテーション・ポリシーを作成するために必要な変数について説明します。
    変数 説明
    region 必須。 地域の略語、例:us-south または eu-de、あなたの地理的エリアを表しますHyper Protect Crypto Servicesサービス インスタンスが存在します。 詳細については、リージョナル・サービス・エンドポイントを参照してください。
    port 必須。 API エンドポイントのポート番号。
    key_ID 必須。 ローテーション・ポリシーを置換する対象のルート鍵の固有 ID。
    IAM_token 必須。 IBM Cloud アクセス・トークン。 Bearer 値を含む、IAM トークンの全コンテンツを cURL 要求に組み込みます。 詳細については、アクセス・トークンのリトリーブを参照してください。
    instance_ID 必須。 Hyper Protect Crypto Services サービス・インスタンスに割り当てられた固有 ID。 詳細については、インスタンス ID のリトリーブを参照してください。
    correlation_ID トランザクションを追跡し、相互に関連付けるために使用される固有 ID。
    new_rotation_interval 必須。 鍵のローテーション間隔を月単位で示す整数値。 最小値は 1 そして最大値は 12

    PUT api/v2/keys/{id}/policies が成功すると、鍵と関連付けられた更新後のポリシー詳細が応答で返されます。 以下の JSON オブジェクトは、ルート鍵のローテーション・ポリシーが更新された場合の応答例を示しています。

    {
        "metadata": {
            "collectionTotal": 1,
            "collectionType": "application/vnd.ibm.kms.policy+json"
        },
        "resources": [
        {
            "id": "a1769941-9805-4593-b6e6-290e42dd1cb5",
            "rotation": {
                "interval_month": 2
            },
            "createdby": "IBMid-503CKNRHR7",
            "createdat": "2019-03-06T16:31:05Z",
            "updatedby": "IBMid-820DPWINC2",
            "updatedat": "2019-03-10T12:24:22Z"
        }
      ]
    }
    

    鍵のポリシー詳細のうち、interval_month 値と updatedat 値が更新されています。 最初に作成したのとは別のユーザーが鍵のポリシーを更新した場合は、updatedby 値も変更され、要求を送信したユーザーの ID が示されます。

次の作業