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

目次

セキュリティグループとネットワークACL(NACL)の違いのまとめ

適用単位 ルールの種類 デフォルト動作
セキュリティグループ ENI(インスタンス)単位 許可のみ(デフォルト拒否) 全拒否(ルールを作らないと通らない)
ネットワークACL サブネット単位 許可・拒否の両方を設定可能 すべて許可(デフォルトNACLの場合)

ACLは、Access Control Listの略です。

セキュリティグループ(Security Group)は、SGとも呼ばれます。

セキュリティグループとは

AWSの 仮想ファイアウォールです。

EC2インスタンス、RDS、Lambda(VPC内)、ENIなどのリソースにアタッチでます。

通信のインバウンド(受信)とアウトバウンド(送信)を制御します。

特徴

「拒否ルール」は書けません。(デフォルトは全拒否 → 指定したものだけ許可)。

TCP22番でInboundを許可すると、Outboundで戻りの通信は自動で通ります

セキュリティグループはインスタンスやENIごとに紐づきます。

複数のセキュリティグループを1つのリソースに割り当て可能です。

注意点

セキュリティグループはVPCごとに分かれます。 他VPCへは直接使えません。

許可リスト方式なので、必要最小限のルールにすることが重要です。

0.0.0.0/0で22番や3389番を開けっぱなしにしておくことは、セキュリティリスクです。

ネットワークACL(NACL)とは

VPCのサブネット単位で適用されるファイアウォールです。

サブネットに入ってくるトラフィックと、出ていくトラフィックを制御できます。

許可ルールと拒否ルールの両方を設定可能です。

特徴

サブネットにあるすべてのリソース(EC2, RDSなど)に影響します。

デフォルトNACLとカスタムNACLがあります。

デフォルトNACL 作成時に各VPCに自動で1つある
最初は「全トラフィック許可」になっている
カスタムNACL カスタムNACLを作ると「全トラフィック拒否」が初期状態

Inboundで80番を許可しても、Outboundで応答ポート(Ephemeral Port, 1024–65535)を許可しないと通信不可です。

ルール番号は、1〜32766まであり、小さい番号から評価されマッチしたら処理終了です。

注意点

戻り通信も必ず設定が必要で管理が複雑です。

サブネット内のすべてのリソースに影響するため注意が必要です。

関連の記事

AWS EC2を作成/削除する手順

△上に戻る