セキュアなアーキテクチャ設計
AWS KMSを使用してアプリケーションが大きなデータをエンベロープ暗号化する際の一般的な処理順序として正しいものはどれか。
- Aデータを直接CMKで暗号化し、結果を保存する
- Bまずデータを保存し、後でCMKを作成する
- ✓KMSのGenerateDataKey APIでデータキーを取得し、その平文データキーでデータを暗号化し、暗号化されたデータキーをデータと共に保存した後、平文データキーを破棄する
- DCMKをダウンロードしてローカルでデータを暗号化する
解説
エンベロープ暗号化では、KMSからデータキーを取得してそのキーでデータ自体を暗号化し、暗号化済みのデータキーをデータと一緒に保存した上で平文データキーをメモリから破棄する。CMK自体は外部に取り出せず、直接大きなデータの暗号化には使用しない。
根拠AWS KMS - エンベロープ暗号化の仕組み(セキュアなアーキテクチャ設計)