はじめに
AWS VPC(仮想プライベートクラウド)では、次の3つの機能を使ってセキュリティを強化するが、セキュリティグループとネットワーク ACLの違いがわかりづらいため、違いについてまとめました。
- セキュリティグループ
- ネットワークアクセスコントロールリスト (ACL)
- フローフラグ
セキュリティグループ
ステートフルなファイアウォールのこと。デフォルトで許可されているのは同じセキュリティグループ内通信のみ(外からの通信は禁止)。そのため例えば、WEB公開する場合はインターネット(0.0.0.0/0)から80ポートを許可する。
ネットワーク ACL
ステートレスなファイアウォールのこと。サブネット単位で適用され、デフォルトでは全ての送信元IPを許可する。
※ 前後の状態に依存しないのがステートレス(stateless)で、前後の状態を保持しているのがステートフル(stateful)という意味
比較
セキュリティグループ | ネットワーク ACL |
---|---|
EC2インスタンスレベルで効果 |
サブネットレベルで効果 |
AllowのみをIN・OUTで指定可能(ホワイトリスト型) | Allow/DenyをIN・OUTで指定可能(ブラックリスト型) |
ステートフルなので、戻りのトラフィックを考慮しなくてよい | ステートレスなので、戻りのトラフィックも明示的に許可設定する |
全てのルールを適用 | 番号の順序通りに適用 |
インスタンス管理者がセキュリティグループを適用すればその管理下になる | サブネット内のすべてのインスタンスがACLの管理下に入る |