ファイアウォールとSecurity Groupは、どの通信を通し、どの通信を止めるかを制御するための仕組みです。どちらも「通信の門番」ですが、置かれる場所や設定の考え方が少し違います。
一言でいうと
ファイアウォールもSecurity Groupも通信の許可ルールですが、Security Groupはクラウド上のサーバーやリソースに付ける仮想的な通信制御として使われます。
まず比較
| 種類 | 主な場所 | 例 |
|---|---|---|
| OSファイアウォール | サーバーやPCの中 | Windows Defender Firewall, ufw |
| ネットワークファイアウォール | ネットワーク境界 | 社内ネットワークの入口 |
| Security Group | クラウドの仮想ネットワーク | AWS EC2のSecurity Group |
| NACL | クラウドのサブネット境界 | AWS Network ACL |
何を条件にするのか
通信制御では、主に次の条件を見ます。
| 条件 | 例 |
|---|---|
| 方向 | inbound, outbound |
| プロトコル | TCP, UDP, ICMP |
| ポート | 22, 80, 443, 3000 |
| 送信元 | 自分のIP、社内IP、0.0.0.0/0 |
| 宛先 | サーバー、サブネット、別Security Group |
0.0.0.0/0 はすべてのIPv4アドレスを表すことが多いため、設定時は特に注意します。
よくある許可例
| 目的 | 許可例 | 注意 |
|---|---|---|
| Web公開 | TCP 443 from 0.0.0.0/0 | 公開サービスなら一般的 |
| HTTP公開 | TCP 80 from 0.0.0.0/0 | HTTPSへリダイレクトすることが多い |
| SSH管理 | TCP 22 from 自分のIP | 全公開は避ける |
| 開発用ポート | TCP 3000 from 自分のIP | 本番では原則公開しない |
管理用ポートを全世界へ開ける設定は、初心者が特に避けるべき危険な設定です。
Security Groupの考え方
クラウドのSecurity Groupは、サーバーやロードバランサーなどに付ける通信許可ルールです。
Security Groupは、状態を覚えるステートフルな制御として扱われることが多いです。たとえば、インバウンドで許可された通信への応答は、自動的に戻れる仕組みになっています。
一方、NACLはサブネット単位で、インバウンドとアウトバウンドをより明示的に制御します。
初心者が守るルール
- 使わないポートは開けない
- SSHや管理画面を
0.0.0.0/0にしない - 本番と学習環境の設定を分ける
- 一時的に開けたポートは閉じる
- 変更前後で通信確認をする
- ルールの理由をメモする
よくある誤解
| 誤解 | 実際 |
|---|---|
| ファイアウォールを無効化すれば解決 | 一時確認以外では危険です |
| 443だけ開ければアプリは必ず動く | アプリ内部やバックエンド通信も関係します |
| Security GroupはOSの設定 | クラウド側の仮想ネットワーク設定です |
| 自分のIPはずっと同じ | 回線によって変わることがあります |
まとめ
ファイアウォールとSecurity Groupは、通信を許可・拒否するための仕組みです。初心者は、方向、プロトコル、ポート、送信元をセットで見ます。特に管理用ポートを全世界に公開しないことが重要です。
参考リソース
- AWS: Control traffic to resources using security groups
- AWS: Network ACLs
- Ubuntu: Uncomplicated Firewall