お使いのカスタマーマスターキー (CMK) がバージョンベースの自動ローテーションをサポートしていない場合、CMK を手動でローテーションできます。 これは、自動キーローテーションがサポートされているかどうかに依存しない代替ソリューションです。

カスタムデータ暗号化シナリオ

オンプレミスまたはクラウドアプリケーションは、APIを呼び出してカスタムデータ暗号化を実装できます。 例:
  • データベースに書き込む前に、ID カード番号、クレジットカード情報、自宅の住所などの機密データを暗号化する
  • OSS にアップロードする前に、クライアント側でデータを暗号化する
  • アプリケーションプロファイルなどの機密データと SSL キー証明書を含むサービスプロファイルを暗号化する
キーエイリアス機能を使用して、アプリケーション内で暗号化キーをローテーションできます。 Decrypt API の呼び出す時に、キーのIDとエイリアスは必要ありません。
このシナリオでは、次の手順を実行する必要があります。
  1. 初期設定
    1. 管理者が CMK (ID は CMK-A) を作成します。
    2. 管理者は、alias/MyAppKey エイリアスを CMK-A にバインドします。
    3. アプリケーション暗号化モジュールが Encrypt API を呼び出す際、KeyId パラメーターの値は alias/MyAppKey です。 KMSは、alias/MyAppKey が CMK-A にバインドされていることを検出し、CMK-A を使用してデータを暗号化します。
    4. アプリケーション復号モジュールが Decrypt API を呼び出す際、 KeyId パラメーターは使用されません。 KMS は、データの暗号化に使用された CMK を使用してデータを復号します。
  2. 手動ローテーション
    1. 管理者が CMKを作成します (ID は CMK-B)。
    2. 管理者は、 UpdateAlias API を呼び出して、alias/MyAppkey エイリアスを CMK-B にバインドします。
    3. アプリケーション復号モジュールが Encrypt API を呼び出す際の KeyId パラメーターの値は alias/MyAppKey です。 KMS は、alias/MyAppKey が CMK-B にバインドされていることを検出し、CMK-B を使用してデータを暗号化します。
    4. アプリケーション復号モジュールが Decrypt API を呼び出す際、 KeyId パラメーターは使用されません。 KMS は、データの暗号化に使用された CMKを使用してデータを復号します。

サーバー暗号化シナリオ

他のクラウドサービスは、KMS の API を統合することでデータを暗号化できます。 キーローテーションのシナリオでは、次のような状況が発生する可能性があります。
  • KMS で設定された自動ローテーションポリシーが、他のクラウドサービスのサーバー暗号化に影響する場合

    原因:CMK による暗号化を他のクラウドサービス用に設定すると、それらのサービスはデータキーを生成するために GenerateDataKey API を呼び出します。 KMS が新しい主キーバージョンを生成すると、他のクラウドサービスは新しいバージョンを使用して新しいデータキーを生成します。 このようなクラウドサービスの典型的な例としては、OSS があります。 この状況で自動キーローテーションを有効にすると、KMS にインポートされたサービス管理キーまたは BYOK は自動ローテーションをサポートしていないため使用できません。

  • KMS に設定された自動ローテーションポリシーが、他のクラウドサービスのサーバー暗号化に影響しない場合

    原因:CMK による暗号化が他のクラウドサービス用に構成されると、サービスは KMS の GenerateDataKey API を一度だけ呼び出して、特定のリソースを暗号化するためのキーを生成します。 KMS が新しいプライマリキーバージョンを生成しても、クラウドサービスは新しいバージョンを使用しません。 たとえば、クラウドディスクを暗号化する場合、ECS は KMS の GenerateDataKey API を呼び出してボリューム暗号化キーを生成します。 このキーは、作成後に更新されません。

KMS に設定された自動ローテーションポリシーが他のクラウドサービスのサーバー暗号化に影響を与えない場合、または BYOK を使用する際にデータキーをローテーションする場合、設定を変更してデータをコピーすることで、キーローテーションと同じ効果を得ることができます。 上記の方法は、各クラウドサービスの機能に応じて使い分けます。 詳細については、各クラウドサービスのドキュメントを参照してください。