

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# キーを手動でローテーションする
<a name="rotate-keys-manually"></a>

自動キーローテーションまたはオンデマンドキーローテーションを使用する代わりに、新しい KMS キーを作成して、現在の KMS キーの代わりに使用することができます。新しい KMS キーが現在の KMS キーと異なる暗号化マテリアルを持つ場合、新しい KMS キーを使用すると、既存の KMS キーでキーマテリアルを変更するのと同じ効果があります。1 つの KMS キーを別のものと置き換えるプロセスは、*手動キーローテーション*と呼ばれます。

![\[Diagram showing manual key rotation process with application, old key, and new key.\]](http://docs.aws.amazon.com/ja_jp/kms/latest/developerguide/images/key-rotation-manual.png)


 手動ローテーションは、非対称 KMS キー、HMAC KMS キー、[カスタムキーストア](key-store-overview.md#custom-key-store-overview)の KMS キーなど、自動キーローテーションまたはオンデマンドキーローテーションの対象ではない KMS キーをローテーションする場合に適しています。

**注記**  
新しい KMS キーの使用を開始するときは、元の KMS キーを有効にしたままにして、 が元の KMS キーが暗号化したデータを復号 AWS KMS できるようにします。

KMS キーを手動で更新すると、アプリケーションの KMS キー ID または キーの ARN へのリファレンスも更新する必要があります。KMS キーにわかりやすい名前を関連付けられる[エイリアス](kms-alias.md)が、このプロセスを容易にします。エイリアスを使用して、アプリケーションの KMS キーを参照します。続いて、アプリケーションが使用する KMS キーを変更するには、アプリケーションのコードを編集する代わりに、エイリアスのターゲット KMS キーを変更します。詳細については、「[アプリケーションでエイリアスを使用する方法について説明します。](alias-using.md)」を参照してください。

**注記**  
手動でローテーションされた KMS キーの最新バージョンを指すエイリアスは、[DescribeKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeKey.html) オペレーション、[GetPublicKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_GetPublicKey.html) オペレーション、暗号化オペレーション ([DeriveSharedSecret](https://docs.aws.amazon.com/kms/latest/APIReference/API_DeriveSharedSecret.html)、[Encrypt](https://docs.aws.amazon.com/kms/latest/APIReference/API_Encrypt.html)、[GenerateDataKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKey.html)、[GenerateDataKeyPair](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKeyPair.html)、[GenerateMac](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateMac.html)、[VerifyMac](https://docs.aws.amazon.com/kms/latest/APIReference/API_VerifyMac.html)、[Sign](https://docs.aws.amazon.com/kms/latest/APIReference/API_Sign.html)、および [Verify](https://docs.aws.amazon.com/kms/latest/APIReference/API_Verify.html) など) に適しています。[DisableKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_DisableKey.html) または [ScheduleKeyDeletion](https://docs.aws.amazon.com/kms/latest/APIReference/API_ScheduleKeyDeletion.html) のような、KMS キーを管理するオペレーションでは、エイリアスは許可されていません。  
手動でローテーションされた対称暗号化 KMS キーで [Decrypt](https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html) オペレーションを呼び出す場合、 コマンドから `KeyId`パラメータを省略します。 は暗号文を暗号化した KMS キー AWS KMS を自動的に使用します。  
非対称 KMS キーで `Decrypt` または [Verify](https://docs.aws.amazon.com/kms/latest/APIReference/API_Verify.html) を呼び出す場合や、HMAC KMS キーで [VerifyMac](https://docs.aws.amazon.com/kms/latest/APIReference/API_VerifyMac.html) を呼び出す場合は、`KeyId` パラメータが必要です。キーが手動で更新された場合など、暗号化オペレーションを実行する KMS キーをもはや指していないエイリアスが、`KeyId` パラメータの値になっている場合には、これらのリクエストは失敗します。このエラーを回避するには、オペレーションごとに正しい KMS キーを追跡して、指定する必要があります。

エイリアスのターゲット KMS キーを変更するには、[UpdateAlias](https://docs.aws.amazon.com/kms/latest/APIReference/API_UpdateAlias.html) オペレーションを AWS KMS API で使用します。例えば、このコマンドでは、新しい KMS キーを指すように `alias/TestKey` エイリアスを更新します。オペレーションは出力を返さないため、この例では [ListAliases](https://docs.aws.amazon.com/kms/latest/APIReference/API_ListAliases.html) オペレーションを使用して、エイリアスが異なる KMS キーと関連付けられ、`LastUpdatedDate` フィールドが更新されたことを示します。ListAliases コマンドは、 の `alias/TestKey` [`query`パラメータ](https://docs.aws.amazon.com/cli/latest/userguide/cli-usage-filter.html#cli-usage-filter-client-side-specific-values)を使用してエイリアスのみ AWS CLI を取得します。

```
$ aws kms list-aliases --query 'Aliases[?AliasName==`alias/TestKey`]'
{
    "Aliases": [
        {
            "AliasArn": "arn:aws:kms:us-west-2:111122223333:alias/TestKey",
            "AliasName": "alias/TestKey",
            "TargetKeyId": "1234abcd-12ab-34cd-56ef-1234567890ab",
            "CreationDate": 1521097200.123,
            "LastUpdatedDate": 1521097200.123
        },
    ]
}


$ aws kms update-alias --alias-name alias/TestKey --target-key-id 0987dcba-09fe-87dc-65ba-ab0987654321
            
$ aws kms list-aliases --query 'Aliases[?AliasName==`alias/TestKey`]'
{
    "Aliases": [
        {
            "AliasArn": "arn:aws:kms:us-west-2:111122223333:alias/TestKey",
            "AliasName": "alias/TestKey",
            "TargetKeyId": "0987dcba-09fe-87dc-65ba-ab0987654321",
            "CreationDate": 1521097200.123,
            "LastUpdatedDate": 1604958290.722
        },
    ]
}
```