暗号化コンテキスト の機能

Encryption Context(暗号化コンテキスト) は、String-String 形式のみの JSON 文字列で、データの整合性を保護するために、Encrypt、GenerateDataKey、Decrypt などの KMS API で使用できます。

このパラメーターが暗号化で指定された場合 (Encrypt および GenerateDataKey)、暗号文の復号化を成功させるには、Equivalent Encryption Context パラメーターが必要です。 Encryption Context は復号化に関連していますが、暗号テキスト (CipherBlob) には含まれません。

暗号化コンテキスト の有効値

暗号化コンテキスト の有効値は、String-String 形式のみで最大 8,192 文字の JSON 文字列です。 API を直接呼び出して Encryption Context を入力するときは、エスケープ文字にご注意ください。

有効な 暗号化コンテキスト の例

{"ValidKey":"ValidValue"}
{"Key1":"Value1","Key2":"Value2"}

無効な 暗号化コンテキスト の例(一部)

[{"Key":"Value"}] //json array
{"Key":12345} //String-int
{"Key":["value1","value2"]} //String-Array

同等の 暗号化コンテキスト

本質的には、暗号化コンテキスト は String-String 形式のマップ (ハッシュテーブル) です。 したがって、暗号化コンテキスト をパラメーターとして使用する場合、JSON 文字列で指定されたキー値の意味に矛盾がなく暗号化コンテキストが同等であることを確認する必要があります。 元の文字列を保持せずに暗号文を復号化するには、暗号化時に入力した暗号化コンテキストと同等の暗号化コンテキストを使用することが必要です。

同等の暗号化コンテキストの例

{"Key1":"Value1","Key2":"Value2"} is equivalent to {"Key2":"Value2","Key1":"Value1"}.