カテゴリ: AWS 更新日: 2026/03/26

AWSのセキュリティグループとネットワークACLの違いと設定方法を初心者向けに徹底解説

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

先生と生徒の会話形式で理解しよう

生徒

「AWSでセキュリティ対策を調べていたら、セキュリティグループとネットワークACLって言葉が出てきました。どちらも同じように見えるんですが、何が違うんですか?」

先生

「AWSではネットワークの安全を守るために、2段階で通信をチェックします。その中心になるのがセキュリティグループとネットワークACLです。」

生徒

「両方設定しないといけないんですか?初心者には難しそうで不安です…」

先生

「考え方さえ分かれば大丈夫です。まずは役割の違いと、よくある使い方から一緒に見ていきましょう。」

1. AWSのセキュリティ対策の全体像

1. AWSのセキュリティ対策の全体像
1. AWSのセキュリティ対策の全体像

AWSでは、インターネットからの不正アクセスや想定外の通信を防ぐために、複数のセキュリティ機能が用意されています。その中でも、初心者が最初につまずきやすいのが、セキュリティグループとネットワークACLの違いです。

どちらも「通信を許可する・拒否する」設定ですが、守っている場所と考え方が異なります。AWSのセキュリティ対策では、この違いを理解することが、クラウドを安全に使う第一歩になります。

2. セキュリティグループとは何か

2. セキュリティグループとは何か
2. セキュリティグループとは何か

セキュリティグループは、EC2などのAWSリソースに直接ひも付く「仮想的なファイアウォール」です。インスタンス単位で通信を管理する仕組みで、「このサーバーに入ってきていい通信は何か」を決めます。

特徴として、許可ルールだけを設定する点があります。許可されていない通信は、自動的に拒否される仕組みです。そのため、初心者でも直感的に理解しやすく、AWS入門では必ず登場します。

3. ネットワークACLとは何か

3. ネットワークACLとは何か
3. ネットワークACLとは何か

ネットワークACLは、VPC(仮想ネットワーク)全体の入り口に近い場所で通信を制御します。サブネット単位で設定され、「このネットワークを通ってよい通信かどうか」をチェックします。

セキュリティグループと違い、許可と拒否の両方を明示的に設定します。また、番号順にルールが評価されるため、ルールの順番がとても重要です。

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

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

初心者向けに例えるなら、セキュリティグループは「家のドアの鍵」、ネットワークACLは「マンションの入口のオートロック」です。両方が合わさって、はじめて高いセキュリティが保たれます。

  • セキュリティグループ:インスタンス単位、許可のみ
  • ネットワークACL:サブネット単位、許可と拒否を設定
  • 評価方法:セキュリティグループは即時、ACLは番号順

5. セキュリティグループの基本設定例

5. セキュリティグループの基本設定例
5. セキュリティグループの基本設定例

ここでは、AWS CLIを使ったセキュリティグループ設定のイメージを見てみましょう。HTTP通信を許可する基本的な例です。


aws ec2 authorize-security-group-ingress \
  --group-id sg-1234567890abcdef0 \
  --protocol tcp \
  --port 80 \
  --cidr 0.0.0.0/0

この設定により、インターネットからのWebアクセスを安全に受け付けることができます。

6. ネットワークACLの基本設定例

6. ネットワークACLの基本設定例
6. ネットワークACLの基本設定例

次に、ネットワークACLでHTTP通信を許可する例です。番号が小さいルールから順番に評価されます。


aws ec2 create-network-acl-entry \
  --network-acl-id acl-abcdef1234567890 \
  --rule-number 100 \
  --protocol tcp \
  --port-range From=80,To=80 \
  --cidr-block 0.0.0.0/0 \
  --rule-action allow

ネットワークACLでは、不要な通信を明示的に拒否する設定も重要です。

7. よくある初心者のミスと注意点

7. よくある初心者のミスと注意点
7. よくある初心者のミスと注意点

AWSのセキュリティ設定で多い失敗は、「セキュリティグループで許可したのに通信できない」というケースです。この場合、ネットワークACLで拒否されている可能性があります。

また、ネットワークACLの番号順ルールを理解していないと、意図しない拒否が起きます。必ず全体の流れを確認しましょう。

8. セキュリティ設定の確認コマンド例

8. セキュリティ設定の確認コマンド例
8. セキュリティ設定の確認コマンド例

設定後は、必ず状態を確認します。以下はセキュリティグループの確認例です。


aws ec2 describe-security-groups
{
    "SecurityGroups": [
        {
            "GroupName": "web-sg",
            "IpPermissions": [
                {
                    "FromPort": 80,
                    "ToPort": 80
                }
            ]
        }
    ]
}

このように、設定と結果を確認する習慣がAWSセキュリティ対策ではとても大切です。

まとめ

まとめ
まとめ

ここまで、AWSのセキュリティグループとネットワークACLについて、仕組みや役割、設定方法、そして初心者がつまずきやすいポイントまで一通り学んできました。AWSにおけるセキュリティ設計は、単にルールを追加する作業ではなく、「どこで」「どの通信を」「なぜ制御するのか」を理解することが重要です。セキュリティグループはEC2などのリソース単位で動作する仮想ファイアウォールとして、インスタンスに直接ひも付き、許可ルールのみを定義するシンプルな仕組みです。一方、ネットワークACLはVPC内のサブネット単位で通信を制御し、許可と拒否を明示的に設定できるため、より広い視点でネットワーク全体を守る役割を持っています。

この二つはどちらか一方だけを使えばよいものではなく、組み合わせて使うことでAWSのネットワークセキュリティはより堅牢になります。外部からのアクセスは、まずネットワークACLでチェックされ、その後にセキュリティグループで最終判断が行われます。この流れを理解していないと、「設定したのにアクセスできない」「原因が分からない」といったトラブルに直面しがちです。初心者のうちは、セキュリティグループを中心に学びつつ、ネットワークACLは補助的な防御として考えると理解しやすいでしょう。

また、AWS CLIを使った設定や確認コマンドを通じて、設定内容を必ず確認する習慣も大切です。管理画面だけでなくコマンドラインから状態を把握できるようになると、トラブルシューティングの精度が一気に上がります。特にLinux環境でAWSを扱う場合、コマンド操作に慣れておくことで、実務や学習の幅が大きく広がります。

以下は、学習内容を振り返るための簡単な設定イメージです。セキュリティグループとネットワークACLの役割を意識しながら読むことで、理解がより深まります。


# セキュリティグループでWeb通信を許可する例
aws ec2 authorize-security-group-ingress \
  --group-id sg-example123 \
  --protocol tcp \
  --port 80 \
  --cidr 0.0.0.0/0

# ネットワークACLで同じ通信を許可する例
aws ec2 create-network-acl-entry \
  --network-acl-id acl-example123 \
  --rule-number 100 \
  --protocol tcp \
  --port-range From=80,To=80 \
  --cidr-block 0.0.0.0/0 \
  --rule-action allow

このように、同じHTTP通信でも、どのレイヤーで制御しているのかを意識することが、AWSのセキュリティ設計では欠かせません。クラウド環境では、設定一つで公開範囲が大きく変わるため、常に「最小権限」を意識しながら構築する姿勢が求められます。今回学んだ内容を土台にして、ロードバランサーやIAM、WAFなど、さらに高度なセキュリティ機能へと理解を広げていくとよいでしょう。

先生と生徒の振り返り会話

生徒「最初はセキュリティグループとネットワークACLの違いが全然分からなかったんですが、役割を分けて考えると理解しやすいですね。」

先生「そうですね。AWSでは守る場所ごとに考え方が違います。インスタンスを守るのか、ネットワーク全体を守るのかを意識することが大切です。」

生徒「セキュリティグループは許可だけ、ネットワークACLは許可と拒否、という違いも印象に残りました。」

先生「その理解はとても良いです。さらに、ネットワークACLは番号順に評価される点も忘れないでください。」

生徒「もし通信できないときは、両方の設定を確認する必要があるんですね。」

先生「その通りです。AWSのトラブル対応では、設定を一つずつ確認する冷静さが重要になります。」

生徒「今回学んだ内容をベースに、もっとAWSのセキュリティを勉強してみます。」

先生「ぜひ続けてください。基礎をしっかり理解しておくと、実務でも必ず役に立ちますよ。」

カテゴリの一覧へ
新着記事
New1
AWS PrivateLink
AWS PrivateLinkとSecurity Group設定のポイントを徹底解説!初心者でもわかるセキュアなサービス接続
New2
ELB(ロードバランサー)
AWS ELBのセキュリティ設定(セキュリティグループ・WAF連携)を初心者向けに解説!
New3
ユーザー・グループ管理
whoコマンドの使い方を完全ガイド!Linuxでログイン中のユーザーを確認する方法
New4
AWS の セキュリティ対策
AWSのセキュリティグループとネットワークACLの違いと設定方法を初心者向けに徹底解説
人気記事
No.1
Java&Spring記事人気No1
S3(オブジェクトストレージ)
AWS S3の料金体系をわかりやすく解説
No.2
Java&Spring記事人気No2
AWS 基本
AWSの公式料金計算ツール(Pricing Calculator)の使い方
No.3
Java&Spring記事人気No3
Direct Connect(専用線接続)
AWS Direct Connectの申し込みから開通までの流れを初心者向けにやさしく解説
No.4
Java&Spring記事人気No4
S3(オブジェクトストレージ)
AWS S3のアクセスログを有効化する方法をやさしく解説!初心者でもできる設定手順
No.5
Java&Spring記事人気No5
RDS(データベース)
AWS RDSのスナップショットを手動で作成・復元する方法を初心者向けにやさしく解説!
No.6
Java&Spring記事人気No6
RDS(データベース)
AWS RDSのバージョンアップ・メジャーアップグレードのポイントを完全ガイド!初心者にもわかりやすく解説
No.7
Java&Spring記事人気No7
VPC(プライベートクラウド)
AWS VPCでNATゲートウェイを構成してプライベートサブネットから外部アクセスする方法を初心者向けに解説!
No.8
Java&Spring記事人気No8
AWS PrivateLink
AWS PrivateLink(プライベートリンク)の利用手順|セキュアなサービス接続を初心者向けに解説