Security GroupとNetwork ACLのシナリオ判断
通信失敗を「ファイアウォールが原因」と一括りにせず、要求と返信、SGとNACL、経路とアプリへ分解します。条件が示された事例で、許可がどこに不足しているかを判断します。
この単元で学ぶこと
- 条件からSGとNACLの評価結果を判断する
- 往復通信の不足を切り分ける
- 必要最小限の修正を選ぶ
本文解説
1. 調査の表を作る 障害時は送信元IP・宛先IP、プロトコル、送信元と宛先のポート、開始方向を書き出します。「HTTPSが失敗」だけでは要求が届かないのか返信が戻らないのか分かりません。例えばクライアント55000番からWebの443番へ送信したという一組を基準に調べます。
2. 許可の重なりを読む 一つのEC2に付くSG Aが社内から22番を許可し、Bが全IPv4から22番を許可していれば、Aを狭くしてもBの広い許可が残ります。最小権限化では個別の画面だけでなく、関連付く全グループの同じ通信に対する許可を確認します。
3. NACLの順序をたどる 100番で特定IPをAllowし、200番で広い範囲をDenyすると、その特定IPは先のAllowで決まります。Denyという語が付いているだけで番号に関係なく優先されるわけではありません。意図した例外と包括的なルールの順序を図にすると判定しやすくなります。
4. 返信先を入れ替える Webへの要求がサーバー443番へ届いても、NACL送信で宛先443番だけ許可していると、クライアント55000番への返信には一致しません。SGの状態追跡とNACLを混ぜず、復路の送信元・宛先を入れ替えた表で確認します。この55000番は事例で実際に使った番号です。
5. 境界ごとに確認する 別サブネットのサーバーへ送る場合、送信側と受信側の経路・境界ルール・SGを確認します。片側のNACLだけを見て両方向が許可済みと判断しません。同じサブネットのEC2同士ならNACLの境界ではなく、SGやOS、アプリの待受け等へ着目します。
6. 変更を絞る 管理元IPが一つに限定されているなら、そのIPから必要な管理ポートだけを許可する方法を検討します。通信を通すために全IPv4・全ポートへ広げると、当初の管理条件を失います。変更後は期待する通信の成功だけでなく、不要な通信が許可されていないことも確かめます。
7. 許可とサービス稼働を分ける ルートとフィルターが整っていてもアプリが443番で待ち受けていなければ、要求は成功しません。逆にアプリへ到達して403等の認可エラーが返っているなら、ネットワークの全面開放より認証情報とアプリの権限を確認する方が直接的です。
8. 修正を記録して再確認 どの接続がどのルールで許可されるか、番号と適用先を記録します。NACLを別のものへ関連付け直す場合は、追加で重ねるのではなく関連付けが変わることを意識します。AWS提供DNS等の例外通信については、通常のSG/NACLだけで全通信を制御できると判断しないようにします。
図解
重要ポイント
- SGの広い許可は別SGを狭くしても残る。
- NACLはAllowもDenyも番号順。
- 返信の宛先は要求の送信元へ戻る。
間違えやすい点
- Denyという文字だけでNACLの順序を無視する。
- 接続失敗を解決するために全ポートを開放する。
用語解説
- 最小権限
- 必要な主体・操作・通信範囲へ許可を絞る考え方。
- 復路
- 要求を受けた側から元の送信側へ返る通信経路。
- 待受け
- サーバーのアプリが指定ポートへの接続を受け付ける状態。
関連教材
参考資料
教材データに登録された参考リンクです。リンク先の内容や更新日は提供元でご確認ください。
確認問題の出題・採点や学習履歴の保存にはログインが必要です。