キャッシュセキュリティのしきい値の設定 - AWS Encryption SDK

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

キャッシュセキュリティのしきい値の設定

データキーキャッシュを実装するときは、キャッシュ CMM が実施するセキュリティのしきい値を設定する必要があります。

セキュリティのしきい値は、各キャッシュデータキーの使用期間および各データキーで保護されるデータ量を制限するのに役立ちます。キャッシュ CMM は、キャッシュエントリがすべてのセキュリティしきい値に準拠している場合にのみ、キャッシュされたデータキーを返します。キャッシュエントリがしきい値を超えた場合、そのエントリは現在のオペレーションには使用されず、キャッシュから速やかに削除されます。各データキーの最初の使用 (キャッシュ前) は、これらのしきい値から除外されます。

通常、コストとパフォーマンスの目標を満たすために必要なキャッシュの最小量を使用します。

AWS Encryption SDK は、キー取得関数を使用して、暗号化されたデータキーのみをキャッシュします。また、一部のしきい値の上限も確立します。これらの制限は暗号化の制限を超えてデータキーが再利用されないことを確認します。ただし、プレーンテキストデータキーはキャッシュされるため (デフォルトではメモリに)、キーが保存される期間を最小限にしてください。また、キーが侵害された場合に公開される可能性のあるデータを制限してください。

キャッシュセキュリティのしきい値の設定例については、AWS セキュリティブログの「AWS Encryption SDK: How to Decide if Data Key Caching is Right for Your Application」を参照してください。

注記

キャッシュ CMM には以下のすべてのしきい値が適用されます。オプションの値を指定していない場合、キャッシュ CMM はデフォルト値を使用します。

データキーキャッシュを一時的に無効にするために、AWS Encryption SDK の Java/Python 実装では、null の暗号化マテリアルキャッシュ (null キャッシュ) が用意されています。null キャッシュは、すべての GET リクエストのミスを返し、PUT リクエストに応答しません。キャッシュ容量またはセキュリティのしきい値を 0 に設定するのではなく、null キャッシュを使用することをお勧めします。詳細については、「Java」および「Python」の null キャッシュを参照してください。

最大期限 (必須)

キャッシュされたエントリが、追加された時点から使用できる時間を決定します。この値は必須です。0 より大きい値を入力します。AWS Encryption SDK では、最大期限値は制限されません。

AWS Encryption SDK のすべての言語実装では、ミリ秒を使用する AWS Encryption SDK for JavaScript を除いて、秒単位で最大期限を定義します。

アプリケーションがキャッシュのメリットを得られる最短の間隔を使用します。最大期限しきい値をキーローテーションポリシーのように使用できます。それを使用してデータキーの再利用を制限し、暗号化マテリアルの公開を最小限に抑え、キャッシュされている間にポリシーが変更された可能性のあるデータキーを排除します。

暗号化されたメッセージの最大数 (オプション)

キャッシュされたデータキーが暗号化できるメッセージの最大数を指定します。この値はオプションです。1~2^32 の間のメッセージの値を入力します。デフォルト値は 2^32 メッセージです。

各キャッシュされたキーによって保護されるメッセージの数を、再利用の値を取得するのに十分な大きさに、しかし、キーが侵害された場合に公開される可能性のあるメッセージの数を制限できるほど小さく設定します。

暗号化されたバイトの最大数 (オプション)

キャッシュされたデータキーが暗号化できるバイトの最大数を指定します。この値はオプションです。0~2^63 - 1 の間の値を入力します。デフォルト値は 2^63 - 1 です。値を 0 に指定することで、空のメッセージ文字列を暗号化している場合にのみデータキーキャッシュを使用できます。

現在のリクエストのバイト数がこのしきい値を評価する際に含まれます。処理されたバイト数と現在のバイト数がしきい値を超えている場合、キャッシュされたデータキーは、より小さいリクエストで使用されたとしても、キャッシュから削除されます。