目次
はじめに
ディーネットの牛尾です。
AWSを使い始めたときに混乱しやすいのが「セキュリティグループ」と「ネットワークACL(NACL)」の違いです。本記事では、これらの違いを初心者でも理解しやすいように整理します。
そもそもこの2つは何をするもの?
どちらも VPC内のトラフィックを制御するファイアウォール的な機能 です。
- セキュリティグループ(SG):インスタンス単位でのアクセス制御
- NACL(Network ACL):サブネット単位でのアクセス制御
セキュリティグループとは
- 対象:EC2などのインスタンスに直接適用
- 状態を保持(ステートフル):インバウンド許可したらアウトバウンドは自動許可
- ルールの方向:許可ルールのみ(拒否はできない)
設定例
全ポートを特定IPからのみ許可
ポート80(HTTP)を全世界から許可
ポート443(HTTP)を全世界から許可
NACL(ネットワークACL)とは
- 対象:サブネット単位に適用
- 状態を保持しない(ステートレス):双方向にルールを明示する必要あり
- ルールの方向:許可・拒否両方のルールを設定可能
- 番号順で評価される(番号が小さいルールが優先)
設定例
ルール#100:ポート80 許可
ルール#101:ポート443 許可
ルール#*:全トラフィック 拒否
このように設定すれば、WEBサーバとして最低限の公開設定を実現できます。
🔍 違いを表でまとめる
比較項目 | セキュリティグループ | NACL(ネットワークACL) |
---|---|---|
適用範囲 | インスタンス | サブネット |
ステートフルか | ステートフル | ステートレス |
許可と拒否の設定 | 許可のみ | 許可と拒否が可能 |
評価順 | すべてのルールを評価 | 番号順に評価(最初に一致したもの) |
用途の違い | インスタンスへの直接制御 | サブネット全体の制御 |
どっちを使えばいいの?
- 通常はセキュリティグループがメインで十分です。
- NACLは細かい制御やセキュリティ強化が必要なケースで使います。
- 例:特定のIPを完全にブロックしたいときなど
✅ まとめ
- セキュリティグループ:インスタンスごとのファイアウォール(許可のみ・ステートフル)
- NACL:サブネットごとのファイアウォール(許可/拒否両方・ステートレス)
まずはセキュリティグループから慣れるのがオススメです!
SRE課に所属しています。