0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

AWSでのネットワークセキュリティ (SGとNACL)

Last updated at Posted at 2025-12-10

インフラと通信のセキュリティ

AWSのセキュリティグループ (SG) と ネットワークACL (NACL) は、どちらもインターネットからのアクセスを制御する「門番」ですが、役割と振る舞いに大きな違いがあります。

アパートのセキュリティに例えるSGとNACL

バックエンドエンジニアにとって、この2つのコンポーネントは、構築するアプリケーションへのトラフィックを制御する基本的な防御層となります。

セキュリティグループ (SG):EC2インスタンスの「部屋のドア」
セキュリティグループは、AWSでいうと、EC2インスタンス(アプリケーションサーバー)に直接適用される、ステートフルなファイアウォールです。これは、個々の部屋のドアのセキュリティに例えられます。

SGの役割 アパートの例え エンジニア観点
適用単位 各部屋(個人の居住空間) 個々のEC2インスタンス(Webサーバー、DBサーバーなど)
制御対象 ドアを通る出入り インスタンスへのアクセス(特定のポートとプロトコル)
ルールの振る舞い ステートフル(鍵の出入りの記録) 往復の通信が自動許可される
許可された人が入ったら、その人が持ち出した荷物はチェックなしで持ち帰れる Inbound (443/TCP) を許可すれば、Outbound (応答) は自動的に許可される

ステートフルのメリット:
SGは通信セッションの状態を記憶しているため、明示的に戻りのルールを書く必要がありません。Webサーバー (80/443) の通信制御は、通常このSGのみで行うため、設定がシンプルになります。

ネットワークACL (NACL):サブネットの「敷地全体への通用門」

ネットワークACLは、AWSでいうと**サブネット(ネットワーク区画)**全体に適用される、ステートレスなファイアウォールです。これは、アパートの敷地全体への通用門のセキュリティに例えられます。

NACLの役割 アパートの例え エンジニア観点
適用単位 敷地全体(共通の入り口) サブネット(VPC内のネットワーク区画全体)
制御対象 敷地へ入る・出るすべての通行人 サブネットに出入りするすべてのトラフィック
ルールの振る舞い ステートレス(都度IDチェック) 往復の通信を明示的に許可する必要がある
入るときもIDチェック、出るときも再度IDチェックが必要 Inbound (443/TCP) を許可しても、Outbound (応答の戻り) は明示的に許可する必要がある

ステートレスの注意点:
NACLは状態を記憶しないため、Webサーバーからの応答(Outbound)が戻れるよう、エフェメラルポート(一時的に使用される高位ポート)のOutboundルールを明示的に開ける必要があります。これを忘れると通信が成立しません。

エンジニアとしての使い分け

推奨される設計

・メインの防御:通常、アプリケーションのポート制御はセキュリティグループで行います。設定が簡単でステートフルであるため、アプリケーションの通信要件を満たしやすいです。

・追加の防御:NACLは、IPアドレス単位での広範囲なアクセス拒否 (Deny) や、サブネットの境界でのより厳格なネットワーク層の制御を行いたい場合に、SGの上に重ねて使用します。NACLはデフォルトで* Deny(すべて拒否)のルールがあるため、特に慎重な設定が必要です。

この二層構造で防御することで、堅牢なネットワークセキュリティをVPC内で実現できます。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?