AWS KMS でカスタマー管理型のキーを手動でローテーションする方法を教えてください。

所要時間2分
0

AWS Key Management Service (AWS KMS) は、1 年に 1 回 AWS KMS キーを自動的にローテーションします。AWS KMS キーが自動的にローテーションされる前に手動でローテーションしたいと考えています。

解決策

現在の AWS KMS キーを新しいキーに手動でローテーションするには、次の手順を実行します。

**注:**AWS コマンドラインインターフェイス (AWS CLI) コマンドの実行中にエラーが発生した場合は、「AWS CLI エラーのトラブルシューティング」を参照してください。また、AWS CLI の最新バージョンを使用していることを確認してください。

  1. application-current という名前のエイリアスを作成し、それを既存の AWS KMS キーにアタッチします。

    acbc32cf8f6f:~ $$ aws kms create-alias --alias-name alias/application-current --target-key-id 0987dcba-09fe-87dc-65ba-ab0987654321acbc32cf8f6f:~ $$ aws kms list-aliases --output text | grep application
    ALIASES    arn:aws:kms:eu-west-1:123456789012:alias/application-current    alias/application-current    0987dcba-09fe-87dc-65ba-ab0987654321
  2. ローテーション対象の AWS KMS キーの名前の一部にローテーション日を含む application-20180606 という名前の新しいエイリアスを作成します。次の例では、ローテーションの日付は 2018-06-06 です。AWS KMS キーには次の 2 つのエイリアスがあります。

    acbc32cf8f6f:~ $$ aws kms create-alias --alias-name alias/application-20180606 --target-key-id 0987dcba-09fe-87dc-65ba-ab0987654321acbc32cf8f6f:~ $$ aws kms list-aliases --output text | grep application
    ALIASES    arn:aws:kms:eu-west-1:123456789012:alias/application-20180606    alias/application-20180606    0987dcba-09fe-87dc-65ba-ab0987654321
    ALIASES    arn:aws:kms:eu-west-1:123456789012:alias/application-current     alias/application-current     0987dcba-09fe-87dc-65ba-ab0987654321
  3. 次のような新しい AWS KMS キーを作成します。

    acbc32cf8f6f:~ $$ aws kms create-key{
        "KeyMetadata": {
            "Origin": "AWS_KMS",
            "KeyId": "9bf76697-5b41-4caf-9fe1-e23bbe20f858",
            "Description": "",
            "KeyManager": "CUSTOMER",
            "Enabled": true,
            "KeyUsage": "ENCRYPT_DECRYPT",
            "KeyState": "Enabled",
            "CreationDate": 1528289057.531,
            "Arn": "arn:aws:kms:eu-west-1:123456789012:key/9bf76697-5b41-4caf-9fe1-e23bbe20f858",
            "AWSAccountId": "123456789012"
        }
    }
  4. application-current エイリアスを新しい AWS KMS キーに関連付けます。NEW_KMS_KEY_ID は、ステップ 3 で新しく作成したキー ID に置き換えます。

    $$ aws kms update-alias --alias-name alias/application-current --target-key-id NEW_KMS_KEY_ID

    **注:**新しい KMS キーでは、古いキーで暗号化されたデータを復号できません。対称暗号化キーで暗号化されたデータの場合、AWS KMS はメタデータから AWS KMS キー ID を抽出します。次に、AWS KMS はそのキーを使用して復号を実行します。復号リクエストにはキー ID を指定しないでください。非対称 AWS KMS キーを使用する場合は、復号リクエストでキー ID を手動で指定する必要があります。暗号化アクションに使用される AWS KMS キーを必ず追跡してください。

  5. 新しい AWS KMS キーと現在の AWS KMS キーの両方が揃っています。application-current キーを使用してデータを暗号化します。AWS KMS がデータを復号すると、AWS KMS キーは自動的に解決されます。

    acbc32cf8f6f:~ $$ aws kms list-aliases --output text | grep applicationALIASES    arn:aws:kms:eu-west-1:123456789012:alias/application-20180606    alias/application-20180606    0987dcba-09fe-87dc-65ba-ab0987654321
    ALIASES    arn:aws:kms:eu-west-1:123456789012:alias/application-current     alias/application-current     9bf76697-5b41-4caf-9fe1-e23bbe20f858

    キーローテーションがいつ発生したかを追跡したり、変更をロールバックしたりするには、現在の AWS KMS キーをバックアップとして保管してください。
    **注:**既存のキーがある場合は、application-current キーにそのポリシーをコピーします。

  6. AWS KMS コンソールを開き、[カスタマー管理型のキー] を選択します。

  7. [エイリアス] で現在のキーを選択します。

  8. [キーポリシー] で [ポリシービューへの切り替え] を選択します。

  9. 現在のポリシーをコピーし、[カスタマー管理型のキー] を選択します。

  10. [エイリアス] で [application-current] を選択します。

  11. [キーポリシー] で [編集] を選択します。application-current ポリシーを削除し、現在のポリシーを貼り付けます。[変更を保存] を選択します。

関連情報

AWS Key Management Service にキーをインポートするにはどうすればよいですか?