AWS セキュリティグループとネットワークACLの違い


はじめに

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の管理下に入る

参考

AWSユーザガイド セキュリティ