Security GroupとNetwork ACLを理解する
Security GroupとNetwork ACLは、IP通信を通す条件を定める仕組みです。適用する場所、許可・拒否の表現、返信通信の扱いを区別し、通信経路やアプリの権限と混同しないようにします。
この単元で学ぶこと
- Security GroupとNetwork ACLの適用範囲を区別する
- 許可の集約とルール順序を評価する
- 返信通信と経路の条件を説明する
本文解説
1. 通信を絞る目的 Webサーバーには利用者からHTTPSを受け付けても、管理用の接続は管理元だけに絞りたい場合があります。通信の方向、相手のIP範囲、プロトコル、ポートを条件として定めます。TCPの443番へ到達できることと、アプリへログインできることは異なり、アプリの認証も別に必要です。
2. Security Groupの単位 Security Groupは、EC2などのリソースに関連付けるネットワークインターフェイス等で入出力を制御します。例えばWeb用とDB用に異なるグループを使い、それぞれの役割に必要な通信を許可します。同じサブネットの全サーバーへ同じ一つの設定が強制される仕組みではありません。
3. 許可だけを書く Security GroupのルールはAllowを指定し、明示的なDenyルールは書きません。複数のSecurity Groupを付けた場合、許可ルールは合わせて評価します。Aが443番を許可し、Bが22番を許可すれば両方が候補となり、一方に22番の記載がないことは他方の許可を取り消しません。
4. 接続の状態を使う Security Groupはステートフルです。許可された要求に対応する返信は、反対方向のルールに同じ許可がなくても通せます。外へ開始した通信の返信と、外から新しく開始する別の接続は区別します。返信が許可される性質だけで、外部からの任意の新規接続まで許可されるわけではありません。
5. Network ACLの単位 Network ACLはサブネットを出入りする通信を制御し、AllowとDenyの両方を記述します。一つのサブネットには一度に一つのNetwork ACLを関連付け、一つのNetwork ACLを複数のサブネットへ使うこともできます。同じサブネット内だけで完結する通信を、この境界ルールで分離するものではありません。
6. 小さい番号から評価 Network ACLはルール番号の小さい順に調べ、最初に一致した結果で評価を止めます。100番で特定IPからの443番を拒否し、200番で全IPv4からの443番を許可すれば、その特定IPは100番で拒否されます。より大きい番号の許可が後から拒否を覆す計算ではありません。
7. 返信も独立に確認 Network ACLはステートレスなので、往路と復路のルールを個別に設けます。例えばクライアントの送信元TCPポートが55000、サーバーの宛先が443なら、返信はクライアントの55000番へ戻ります。この例の番号を全OS共通の範囲とみなさず、実際に使われる一時ポートの条件を確認します。
8. 許可だけでは経路はできない 通信にはルート、接続先の状態、Security Group、Network ACL等が整合する必要があります。許可ルールを作ってもインターネットへの経路やアプリの待受けが自動で作られるわけではありません。またAmazon提供DNS等には通常のフィルターが適用されない通信があり、DNSの制御ではRoute 53 Resolver DNS Firewall等の対応機能を確認します。
図解
重要ポイント
- SGは許可を集約し、返信に接続状態を使う。
- NACLはサブネット境界で番号順、最初の一致を使う。
- NACLは復路の条件も確認する。
間違えやすい点
- SGを複数付けたとき許可の共通部分だけになると思う。
- NACLの後のAllowが前のDenyを上書きすると考える。
用語解説
- ステートフル
- 接続の状態を考慮して通信を扱う性質。
- ステートレス
- 往路と復路を独立したルールで評価する性質。
- 一時ポート
- クライアント等が接続に用いる一時的なポート。範囲は環境により異なる。
関連教材
参考資料
教材データに登録された参考リンクです。リンク先の内容や更新日は提供元でご確認ください。
確認問題の出題・採点や学習履歴の保存にはログインが必要です。