ローテーション・ポリシーに基づくルート鍵のローテート
IBM Cloud® Hyper Protect Crypto Services を使用して、ルート鍵の自動ローテーション・ポリシーを設定できます。
ルート鍵の自動ローテーション・ポリシーを設定すると、鍵の存続期間が定期的に短くなり、その鍵で保護される情報量が制限されます。
ローテーション・ポリシーは、Hyper Protect Crypto Services で生成されたルート鍵に対してのみ作成できます。 ルート鍵を最初にインポートした場合、鍵をローテートするには、 新しい Base64 エンコードの鍵素材を指定する必要があります。 詳しくは、オンデマンドでのルート鍵のローテートを参照してください。
Hyper Protect Crypto Services でのキー・ローテーションのオプションについて詳しくは、 キー・ローテーションのオプション比較を参照してください。
UI でのローテーション・ポリシーの管理
グラフィカル インターフェイスを使用してルート キーのポリシーを管理する場合は、UI を使用できます。
-
「メニュー」>**「リソース・リスト」**に移動し、リソースのリストを表示します。
-
IBM Cloud リソース・リストで、Hyper Protect Crypto Services のプロビジョン済みインスタンスを選択します。
-
**「KMS 鍵 (KMS keys)」ページで、「鍵」**テーブルを使用して、このサービスの鍵を参照します。
-
アクション・アイコン
をクリックして、特定のキーのオプションのリストを開きます。
-
オプション・メニューから、鍵のローテーション・ポリシーを管理するための**「鍵のローテーション・ポリシーの編集 (Edit key rotation policy)」**をクリックします。
-
**「鍵のローテーション (Key rotation)」を「オン」**に切り替え、スライダーを移動してローテーションの頻度を月単位で選択します。
鍵のローテーション・ポリシーが既に存在する場合、鍵の既存ローテーション期間がインターフェースで表示されます。
-
**「ポリシーの保存」**をクリックして、鍵にポリシーを設定します。
指定したローテーション間隔に基づいて鍵をローテートするときになったら、ルート鍵は新しい鍵素材で Hyper Protect Crypto Services によって自動的に置き換えられます。
API を使用したローテーション・ポリシーの管理
ローテーション・ポリシーの表示
概略を把握するため、以下のエンドポイントへの GET
呼び出しを行うことによって、ルート鍵と関連付けられたローテーション・ポリシーを表示できます。
https://<instance_ID>.api.<region>.hs-crypto.appdomain.cloud/api/v2/keys/<key_ID>/policies
-
以下の 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
-
以下の 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
-
以下の 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 が示されます。
次の作業
- ローテーション・ポリシーを設定し、ルート鍵がローテートされると、そのルート鍵に関連付けられたデータ暗号化鍵 (DEK) を保護するための新しい暗号鍵素材が使用可能になります。 プレーンテキスト形式でキーを公開せずにDEKSを再暗号化または再ラップする方法については、以下を参照してください。キーの再ラッピング。
- エンベロープ暗号化がクラウド内の保存データのセキュリティー制御にどのように役立つかについては、エンベロープ暗号化を使用したデータ保護を参照してください。
- プログラムによるキーの管理の詳細については、チェックしてくださいHyper Protect Crypto Servicesキー管理サービス API リファレンス ドキュメント。