AWS Key Management Service (AWS KMS) は、1 年に 1 回 AWS KMS キーを自動的にローテーションします。AWS KMS キーが自動的にローテーションされる前に手動でローテーションしたいと考えています。
解決策
現在の AWS KMS キーを新しいキーに手動でローテーションするには、次の手順を実行します。
**注:**AWS コマンドラインインターフェイス (AWS CLI) コマンドの実行中にエラーが発生した場合は、「AWS CLI エラーのトラブルシューティング」を参照してください。また、AWS CLI の最新バージョンを使用していることを確認してください。
-
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
-
ローテーション対象の 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
-
次のような新しい 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"
}
}
-
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 キーを必ず追跡してください。
-
新しい 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 キーにそのポリシーをコピーします。
-
AWS KMS コンソールを開き、[カスタマー管理型のキー] を選択します。
-
[エイリアス] で現在のキーを選択します。
-
[キーポリシー] で [ポリシービューへの切り替え] を選択します。
-
現在のポリシーをコピーし、[カスタマー管理型のキー] を選択します。
-
[エイリアス] で [application-current] を選択します。
-
[キーポリシー] で [編集] を選択します。application-current ポリシーを削除し、現在のポリシーを貼り付けます。[変更を保存] を選択します。
関連情報
AWS Key Management Service にキーをインポートするにはどうすればよいですか?