アクティブなブランチキーをローテーションする - AWS Encryption SDK

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

アクティブなブランチキーをローテーションする

各ブランチキーのために一度に存在できるアクティブなバージョンは 1 つだけです。通常、アクティブな各ブランチキーバージョンは、複数のリクエストを満たすために使用されます。ただし、ユーザーがアクティブなブランチキーを再利用する範囲を制御し、アクティブなブランチキーをローテーションする頻度を決定します。

ブランチキーは、プレーンテキストデータキーの暗号化には使用されません。これらは、プレーンテキストデータキーを暗号化する一意のラッピングキーを導出するために使用されます。ラッピングキー導出プロセスでは、28 バイトのランダム性を備えた一意の 32 バイトのラッピングキーが生成されます。これは、暗号の摩耗が発生する前に、ブランチキーが 7 穣 9 秭、つまり 296 を超える一意のラッピングキーを導出できることを意味します。このように枯渇するリスクは極めて低いものの、ビジネスルールや契約、政府の規制により、アクティブなブランチキーのローテーションが必要になる場合があります。

ブランチキーのアクティブなバージョンは、ローテーションされるまでアクティブなままとなります。以前のバージョンのアクティブなブランチキーは、暗号化オペレーションの実行に使用されず、新しいラッピングキーの派生には使用できませんが、クエリを実行して、アクティブ中に暗号化したデータキーを復号するためのラッピングキーを提供することができます。

必要なアクセス許可

ブランチキーをローテーションするには、キーストアアクションで指定されたKMSキーに対する kms:GenerateDataKeyWithoutPlaintext および kms:ReEncrypt アクセス許可が必要です。

アクティブなブランチキーをローテーションする

VersionKey オペレーションを使用して、アクティブなブランチキーをローテーションします。アクティブなブランチキーをローテーションすると、以前のバージョンを置き換えるために新しいブランチキーが作成されます。アクティブなブランチキーをローテーションしても、branch-key-id は変わりません。VersionKey を呼び出す際に、現在アクティブなブランチキーを識別する branch-key-id を指定する必要があります。

Java
keystore.VersionKey( VersionKeyInput.builder() .branchKeyIdentifier("branch-key-id") .build() );
C# / .NET
keystore.VersionKey(new VersionKeyInput{BranchKeyIdentifier = branchKeyId});
Python
keystore.version_key( VersionKeyInput( branch_key_identifier=branch_key_id ) )