SAA-C03:AWS Certified Solutions Architect - Associate セキュアなアーキテクチャの設計 問22
セキュアなアーキテクチャの設計/適切なデータセキュリティ制御の決定コンプライアンス要件として、S3 バケットへのアクセスは必ず暗号化された通信(HTTPS/TLS)で行わせ、暗号化されていない HTTP での操作は拒否したいと考えています。最も適切な方法はどれですか。
当サイトのオリジナル問題(SAA-C03:AWS Certified Solutions Architect - Associateの出題範囲「セキュアなアーキテクチャの設計」に対応。実際の試験問題ではありません)
- Aバケットのデフォルト暗号化(SSE-S3)を有効にする
- Bバケットポリシーで、aws:SecureTransport が false のリクエストを拒否する条件を付ける
- Cオブジェクトごとに ACL でアクセス権を細かく設定する
- DVPC フローログを有効にして、平文通信が発生していないか監視する
正解:B
解説
バケットポリシーの Condition で aws:SecureTransport が false(=HTTP)のリクエストを Deny することで、TLS(HTTPS)での通信のみを強制できます。デフォルト暗号化は保管時(at rest)の暗号化であり転送中(in transit)の暗号化とは別物です。ACL はアクセス権の設定であり通信の暗号化を強制せず、VPC フローログは監視であって拒否はできません。
下線の用語は 用語集 で意味を確認できます。
選択肢ごとの解説
- A誤り。SSE-S3 は保管しているデータの暗号化であり、転送中の通信を HTTPS に強制する機能ではありません。
- B正しい。aws:SecureTransport が false のリクエストを拒否するバケットポリシーにより、HTTP での操作をブロックし TLS 通信のみを強制できます。
- C誤り。ACL は誰がアクセスできるかの制御で、通信が暗号化されているかどうかを強制するものではありません。
- D誤り。VPC フローログは通信の記録・監視であって、平文通信を拒否(ブロック)する仕組みではありません。