Key Management Service (KMS) は、キーローテーション機能を提供します。キーを定期的にローテーションすることで、キーのセキュリティを強化し、ビジネスデータの保護を向上させることができます。このトピックでは、キーローテーションの仕組みと KMS でキーローテーションを設定する方法について説明します。
キーローテーションのメリット
各キーで暗号化されるデータ量を削減し、暗号解読攻撃のリスクを軽減します
キーのセキュリティは、そのキーを使用して暗号化されるデータ量に反比例します。ほとんどの場合、この量とはキーを使用して暗号化された合計バイト数を指します。自動回転は、各キーの攻撃対象領域を減らし、キーベースの暗号化ソリューションのセキュリティを向上させます。
セキュリティイベントへの対応に役立ちます
システム設計および実装中にキーローテーション機能を組み込み、キーローテーションを日常的なセキュリティ管理トランザクションとして扱います。この実践により、システムがセキュリティイベントに対応してキーローテーションを実行できるようになります。
キーが侵害される可能性のあるタイムウィンドウを短縮します
キーローテーションを有効にすると、既存のキーで暗号化されたデータを新しいキーで暗号化できます。キーローテーションの間隔は、キーが解読される可能性のあるタイムウィンドウと見なされます。攻撃者は、キーの 2 つのローテーション操作の間の間隔でキーを解読した場合にのみデータアクセスを取得できます。これにより、暗号解読攻撃に対するデータセキュリティが大幅に向上します。
規制コンプライアンスの要件を満たします
自動キー回転は、以下を含むがこれらに限定されない、さまざまな規制への準拠を容易にします。
ペイメントカード業界データセキュリティ基準 (PCI DSS)
国家暗号管理局が発行した暗号関連の業界標準、例えば GM/T 0051-2016 暗号デバイス管理 - 対称キー管理技術の仕様
米国国立標準技術研究所 (NIST) が発行した暗号関連の標準、例えば NIST Special Publication 800-57 Recommendation for Key Management
キーローテーションの仕組み
KMS は、キーの複数バージョンをサポートしています。キーの異なるバージョンは、暗号学的に関連がありません。キーローテーション中、KMS は新しいキーバージョンを生成し、最新のキーバージョンを暗号化操作に使用します。キーバージョンを指定することはできません。
キーローテーションはキーバージョンを追加するだけです。キーローテーションは、ID、Alibaba Cloud リソースネーム (ARN)、エイリアスなどのキーの属性を変更しません。
KMS はキーバージョンを削除しません。キーのキーバージョンは、キー自体が削除された場合にのみ削除されます。
キーが作成されると、KMS は初期キーバージョンを生成し、それをプライマリバージョンとして設定します。キーがローテーションされると、KMS は新しいキーバージョンを生成し、新しいバージョンをプライマリバージョンとして設定します。
自動回転が設定されている場合、次のローテーション時間は次の数式を使用して計算されます: 次のローテーション時間 = 最後のローテーション時間 + ローテーション期間。
DescribeKey 操作を呼び出すことができます。応答では、
LastRotationDateは最後のローテーション時間を示し、NextRotationDateは KMS によって計算された次のローテーション時間を示します。自動回転が設定されており、2 つのローテーション操作の間で即時ローテーション操作が実行された場合、最後のローテーション時間は即時ローテーションの時間になります。
範囲
キータイプとソース:
キータイプ
キーマテリアルソース
定期的な自動回転
手動での即時回転
ソフトウェア保護キー (対称)
KMS によって生成
インポート (BYOK)
ソフトウェア保護キー (非対称)
KMS によって生成、インポート (BYOK)
ハードウェア保護キー (対称および非対称)
KMS によって生成
インポート (BYOK)
キーのステータス: キーは Enabled 状態である必要があります。
キーが Disabled または 削除待ち 状態の場合、KMS は有効になっているキーローテーション機能を一時停止します。キーが再度有効になると、キーローテーション機能も再度有効になります。
特定のキーの追加条件:
デフォルトキーの場合、ローテーションは別途購入が必要な付加価値サービスです。
デフォルトキーのローテーションを設定する
課金の説明
デフォルトキーは、Alibaba Cloud サービスでのサーバー側暗号化にのみ使用され、KMS によって無料で提供されます。デフォルトキーのローテーションは、付加価値機能として利用できます。
料金: USD 9/年-リージョン。あるリージョンでデフォルトキーのローテーション機能を購入すると、そのリージョン内のサービスキーやカスタマーマスターキー (CMK) を含むすべてのデフォルトキーをローテーションできます。
ローテーション方法とローテーション日
デフォルトキーは自動回転のみをサポートします。デフォルトキーは即時の手動ローテーションをサポートしていません。
ローテーション期間は 365 日で、変更できません。デフォルトキーの自動回転を有効にすると、最初のローテーションはデフォルトキーが作成されてから 365 日後に発生します。その後、デフォルトキーは 365 日ごとにローテーションされます。
デフォルトキーのローテーション機能は年単位で購入できます。次のローテーションまで注文が有効であることを確認してください。そうでない場合、ローテーションは実行されません。
ローテーションの有効化 (定期的な自動回転)
デフォルトキーローテーション機能の付加価値プランを購入します。
KMS コンソールにログインします。上部のナビゲーションバーで、リージョンを選択します。左側のナビゲーションウィンドウで、を選択します。
デフォルトキー タブで、ロータリーサービスの購入 をクリックし、パラメーターを設定します。
[キー管理タイプ]: [キー付加価値サービス] を選択します。
[付加価値プラン]: [デフォルトキーローテーション] を選択します。
[リージョン]: デフォルトキーが配置されているリージョンを選択します。
[数量]: 1 を選択します。1 つのリージョンに対して 1 つのプランのみを購入する必要があります。
[サービス契約] をよく読み、[今すぐ購入] をクリックし、次に [支払い] をクリックして購入を完了します。
自動回転を有効にします。
サービスキー
設定は不要です。KMS が自動的にローテーションを有効にします。
CMK
コンソールの使用
キー管理 ページで、デフォルトキー タブをクリックし、CMK の ID をクリックします。
詳細ページの下部で、Key Version タブをクリックし、Configure Rotation をクリックします。
Configure Rotation Policy ダイアログボックスで、[ローテーションステータス] スイッチをオンにし、[OK] をクリックします。キー詳細ページで、Rotation Status が [有効] に変わり、Rotation Period は [365 日] になります。
API の使用
キーを作成するときにローテーションを有効にします。
CreateKey 操作を呼び出し、`EnableAutomaticRotation` および `RotationInterval` パラメーターを設定します。`EnableAutomaticRotation` は自動回転を有効にするかどうかを指定し、`RotationInterval` は自動回転期間を指定します。
キーを作成した後にローテーションを有効にします。
UpdateRotationPolicy 操作を呼び出し、`EnableAutomaticRotation` および `RotationInterval` パラメーターを設定します。
ローテーションされたキーの使用
デフォルトキーは、Alibaba Cloud サービスでのサーバー側暗号化にのみ使用されます。ローテーションを有効にすると、Alibaba Cloud サービスは手動介入なしでキーを自動的に管理します。詳細については、「サーバー側暗号化のための KMS 統合の概要」をご参照ください。
ローテーション詳細の表示
コンソールの使用
キー管理 ページで、デフォルトキー タブをクリックし、表示したいサービスキーまたは CMK を見つけます。
キーの ID をクリックします。詳細ページで、Rotation Status、Rotation Period、および Key Version を表示します。
API の使用
DescribeKey 操作を呼び出して、返された `AutomaticRotation` および `RotationInterval` パラメーターを表示します。
ListKeyVersions 操作を呼び出して、返された `KeyVersions` パラメーターを表示します。
KMS インスタンスのキーのローテーションを設定する
クォータ消費
キーローテーションは、KMS インスタンスのキークォータを消費します。各キーバージョンは 1 つのキークォータを消費します。たとえば、キーに 3 つのバージョン (V1、V2、V3) がある場合、3 つのキークォータを消費します。クォータを増やす方法の詳細については、「KMS インスタンスのアップグレード」をご参照ください。
ローテーション方法とローテーション日
キーは、定期的かつ自動的に、またはオンデマンドで手動でローテーションできます。
定期的な自動回転: 7 日から 365 日のカスタムローテーション期間に基づいて、新しいキーバージョンが定期的に生成されます。
手動ローテーション: オンデマンドで新しいキーバージョンが即時生成されます。
ローテーションの有効化
定期的な自動回転の有効化
コンソールの使用
キーを作成するときに自動回転を有効にできます。詳細については、「キーの管理」をご参照ください。
キー管理 ページの キー タブで、インスタンス ID を選択し、キーの作成 をクリックします。
キーの作成 パネルで、パラメーターを設定し、自動ローテーション を有効にし、ローテーション期間 を設定して、OK をクリックします。
キーを作成した後に自動回転を有効にできます。
キー管理 ページで、キー タブをクリックし、インスタンス ID を選択してから、ターゲットキー ID をクリックします。
キー詳細ページの Key Version セクションで、Configure Rotation をクリックします。Set Rotation Policy ダイアログボックスで、定期的な自動回転を有効にし、ローテーション期間を設定して、OK をクリックします。
API 操作の使用
キーを作成するときにこの機能を有効にできます。
CreateKey 操作を呼び出し、EnableAutomaticRotation および RotationInterval パラメーターを設定します。EnableAutomaticRotation パラメーターは自動回転を有効にするかどうかを指定します。RotationInterval パラメーターはローテーション期間を指定します。
キーを作成した後に自動回転を有効にできます。
UpdateRotationPolicy 操作を呼び出し、EnableAutomaticRotation および RotationInterval パラメーターを設定します。EnableAutomaticRotation パラメーターは自動回転を有効にするかどうかを指定します。RotationInterval パラメーターはローテーション期間を指定します。
キーの手動ローテーション
KMS によって生成されたキーマテリアルを持つキー。
コンソールの使用
キー管理 ページで、キー タブをクリックします。インスタンス ID を選択し、ターゲットキーの ID をクリックします。
キー詳細ページの Key Version セクションで、Configure Rotation をクリックします。Set Rotation Policy ダイアログボックスで、Rotate Now を選択し、OK をクリックします。
API 操作の使用
CreateKeyVersion 操作を呼び出します。
外部からインポートされたキーマテリアルを持つキー (Bring-Your-Own-Key (BYOK))。
新しいキーマテリアルのインポート
KMS コンソールにログインします。上部のナビゲーションバーで、リージョンを選択します。左側のナビゲーションウィンドウで、を選択します。
Keys タブで、インスタンス ID を選択し、ターゲットキーの [アクション] 列で Details をクリックします。
キー素材とバージョン タブで、左上隅の 新しいキー素材をインポートする をクリックします。詳細については、「対称キーマテリアルのインポート」をご参照ください。
新しいキーマテリアルがインポートされると、新しいキーバージョンが生成されます。新しいキーバージョンは、「ローテーション保留中」のステータスでキーバージョンリストに表示されます。
重要現在の新しいバージョンがローテーションされるまで、別のキーバージョンをインポートすることはできません。
ローテーションを実行します。
ステップ 1 で生成されたキーバージョンについて、[アクション] 列の ロータリー をクリックします。
Rotate Now ダイアログボックスで、キーマテリアル ID が正しいことを確認し、OK をクリックします。
ローテーションされたキーの使用
Alibaba Cloud サービスでサーバー側暗号化のキーローテーションを有効にすると、ローテーションは自動的に管理され、手動操作は不要です。自己管理アプリケーションでのデータ暗号化には、次の API 操作を呼び出す必要があります。デフォルトでは、これらの操作はローテーション後の最新のキーバージョンを使用します。
Alibaba Cloud SDK を使用する場合
Alibaba Cloud SDK は OpenAPI を呼び出します。暗号化と復号には、次の操作を呼び出します。
GenerateDataKey: データキーを生成します。KMS はキーのプライマリバージョンを使用してデータキーを暗号化します。
Encrypt: データを暗号化します。KMS はキーのプライマリバージョンを使用してプレーンテキストを暗号化します。
Decrypt: 暗号文を復号します。KMS は暗号文に対応するキーバージョンを使用して暗号文を復号します。
KMS インスタンス SDK を使用する場合 (非推奨)
新規ユーザーがこの SDK を使用することはお勧めしません。KMS インスタンス SDK はインスタンス API 操作を呼び出します。暗号化と復号には、次の操作を呼び出します。
AdvanceGenerateDataKey: データキーを生成します。KMS はキーのプライマリバージョンを使用してデータキーを暗号化します。
AdvanceEncrypt: データを暗号化します。KMS はキーのプライマリバージョンを使用してプレーンテキストを暗号化します。
AdvanceDecrypt: 暗号文を復号します。KMS は暗号文に対応するキーバージョンを使用して暗号文を復号します。
キーの自動回転が有効になっている場合、Encrypt、Decrypt、または GenerateDataKey 操作を呼び出さないでください。これらの操作はキーの初期バージョンを使用し、ローテーション後に生成された新しいキーバージョンを使用しません。
ローテーション詳細の表示
コンソールの使用
キー管理 ページで、キー タブをクリックし、インスタンス ID を選択してから、ターゲットキー ID をクリックします。
詳細ページで、Rotation Status、Rotation Period、および Key Version を表示します。
API 操作の使用
DescribeKey 操作を呼び出して、AutomaticRotation および RotationInterval パラメーターの値を表示できます。
ListKeyVersions 操作を呼び出して、KeyVersions パラメーターの値を表示できます。