別サブネット側のIPv4クライアント198.51.100.0/24から、EC2のHTTPSサービスTCP 443へ新規接続する。ルートとOSの許可は設定済みで、クライアントの送信元ポート範囲は49152-65535とする。
EC2のENIには1つのSGだけを関連付け、受信は198.51.100.0/24からのTCP 443を許可し、送信ルールは空にしている。
サブネットのNACL受信は90番で198.51.100.25/32のTCP 443をDenyし、100番で198.51.100.0/24のTCP 443をAllow、その後はデフォルトDenyとする。NACL送信は現在デフォルトDenyだけである。
198.51.100.25を除くクライアントとのHTTPS通信を成立させるため、適切な説明・変更を2つ選べ。
SGの応答許可とNACLの各方向の許可を分ける。NACL送信でクライアントのポート範囲を許可し、特定IPの受信Denyは広いAllowより小さい番号に置く。
詳細解説
NACLは応答を自動許可しない。応答の宛先はクライアントが使うポートなので、本問で指定した49152-65535を送信方向で許可する。受信の90番Denyは維持する。
NACLは小さいルール番号から最初に一致したものを適用する。100番のAllowに一致すると200番へ進まないため、拒否を先に置く必要がある。
443はサーバーの待受ポートであり、応答の宛先はクライアントの49152-65535である。送信元ポートと宛先ポートを混同しない。
SGはAllowだけで明示的Denyを定義できない。さらに、SGの設定はNACL送信の不許可を上書きしない。
SGはステートフルである。許可済み受信接続の応答に、新規の外向き接続と同じSG送信許可を要求しない。ただしNACLの許可は別に必要である。
公式資料で確認する
以下の項目を公式資料の記述と照合して確認します。
公式比較表とENIのSG、NACLのサブネット関連付け、受信ルールの番号・CIDR・宛先443、送信の宛先クライアントと49152-65535を照合する。承認済み検証環境では許可クライアントと拒否クライアントの新規接続を比較し、応答方向も確認する。
参考にした公式資料
確認できる内容
許可クライアントはTCP 443へ接続して応答を受け、198.51.100.25からの新規接続は拒否される。SGがステートフルでもNACL送信の許可は必要である。SGルールの変更で追跡済み接続が即座に切れるとは解釈しない。
理解のポイント
- Security Group
- Network ACL
- ステートフル
- ステートレス
確認時の注意
- 確認環境: AWS公式VPC/EC2資料の照合。利用可能な承認済み検証環境では新規接続と応答を比較する。
- AWS公式SAA-C03 Domain 1と各セキュリティサービスの公式ドキュメントを確認する。
基礎のおさらい
制御の適用範囲を確認する
SGはENIなどのリソースへ、NACLはサブネットへ関連付ける。NACLはサブネットへ出入りする通信に適用され、同一サブネット内の通信を同じ境界通過として扱わない。
応答の宛先ポートを確認する
HTTPS要求の宛先443と、応答の宛先であるクライアントポートは異なる。NACLは両方向で許可が必要で、49152-65535は本問の前提であり、すべてのクライアントで共通の固定値ではない。
Denyの種類と評価順を混同しない
SGには明示的Denyがなく、NACLは小さい番号から最初の一致を適用する。SGの追跡済み接続はルール変更後も継続する場合があるため、新規接続の許可と既存接続の即時切断を分けて考える。