EncryptionContextは、Encrypt、GenerateDataKey、DecryptなどのKMS API操作で使用できるJSON文字列です。
EncryptionContextの機能
EncryptionContextはJSON文字列であり、文字列形式である必要があります。 EncryptionContextは、データの整合性を確保するために使用されます。
暗号化中にこのパラメーターを指定する場合は、復号化に同等のEncryptionContext値を指定する必要があります。 暗号化にはEncryptまたはGenerateDataKey操作を呼び出し、復号化にはDecrypt操作を呼び出します。 EncryptionContextは復号化に関連していますが、CipherBlobパラメーターに対応する暗号文には含まれていません。
EncryptionContextの有効な値
EncryptionContextの有効な値は、文字列形式の最大8,192文字のJSON文字列です。 API操作にEncryptionContextを指定するときは、エスケープ文字を考慮してください。
有効なEncryptionContextの例
{"ValidKey":"ValidValue"}
{"Key1":"Value1","Key2":"Value2"}
無効なEncryptionContextの例
[{"Key":"Value"}] // JSON array
{"Key":12345} //String-int
{"Key":["value1","value2"]} // String-array
同等のEncryptionContext
EncryptionContextは、文字列形式のマップまたはハッシュテーブルです。 2つのEncryptionContext値は、キーと値のペアが一致している場合、同等と見なされます。 キー − 値ペアのシーケンスは異なっていてもよい。 暗号化中にEncryptionContextが指定されている場合、暗号文を復号するために同等のEncryptionContext値を指定できます。 EncryptionContext値は、同一である必要はない。
同等のEncryptionContext値の例
{"Key1":"Value1","Key2":"Value2"} is equivalent to {"Key2":"Value2","Key1":"Value1"}.