👮‍♀️

【セキュリティグループ】AWS VPCの セキュリティグループ と ネットワークACL について学ぼう!

2024/08/07に公開

おはこんばんにちは!

今日はAWSのVPC(仮想プライベートクラウド)での 「セキュリティグループ」「ネットワークACL」 について、やさしくわかりやすく説明していきますね。
これらはネットワークのセキュリティを守るための重要なツールです。
初めての方でも安心して理解できるように、丁寧に解説します!


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

セキュリティグループは、AWS VPC内の インスタンス(サーバー)の「ファイアウォール」 のようなものです。
簡単に言うと、インスタンスがどんなトラフィックを受け入れるか、または拒否するかを設定するためのルールの集まりです。

例えて言うと…

セキュリティグループは、あなたの 家のドアに取り付ける「セキュリティシステム」 のようなものです。
どの人がドアを開けられるかを決めるルールを設定することで、安全に家を守るのと同じように、セキュリティグループはインスタンスを守ります。


セキュリティグループの基本要素

セキュリティグループは、以下のような基本要素で構成されています。

1. インバウンドルール(受信ルール)

インバウンドルールは、インスタンスが受け入れるトラフィックを決めます。
たとえば、HTTP(ポート80)やSSH(ポート22)など、どのポートからのアクセスを許可するかを設定します。

2. アウトバウンドルール(送信ルール)

アウトバウンドルールは、インスタンスから外部に送信できるトラフィックを決めます。
デフォルトでは、すべてのアウトバウンドトラフィックが許可されていますが、必要に応じて制限することもできます。

3. ステートフル(状態を保持する)

セキュリティグループは「ステートフル」です。
つまり、インバウンドトラフィックが許可された場合、そのレスポンスも自動的に許可されます。
たとえば、インスタンスが外部サーバーにリクエストを送ると、そのレスポンスが戻ってきます。


セキュリティグループの作成と設定

それでは、実際にセキュリティグループを作成し、設定する方法を見ていきましょう。

ステップ1: セキュリティグループの作成

  1. AWS管理コンソールにログイン :
  • AWS管理コンソールにアクセスし、ログインします。
  1. 「VPC」サービスに移動 :
  • コンソールのナビゲーションバーから「VPC」を選択します。
  1. 「セキュリティグループ」メニューを選択 :
  • 左側のナビゲーションペインから「セキュリティグループ」を選択し、「セキュリティグループの作成」をクリックします。
  1. 基本設定の入力 :
  • セキュリティグループにわかりやすい名前を付け、適切なVPCを選択します。必要に応じて説明を追加します。その後、「作成」をクリックします。

ステップ2: ルールの設定

  1. インバウンドルールの追加 :
  • 作成したセキュリティグループを選択し、「インバウンドルール」タブをクリックします。「ルールの追加」をクリックし、以下の情報を入力します。

    • タイプ(Type) : トラフィックの種類(例: HTTP、SSH)

    • プロトコル(Protocol) : プロトコルの種類(例: TCP)

    • ポート範囲(Port Range) : 許可するポート(例: 80)

    • ソース(Source) : 許可するIPアドレスまたはCIDR(例: 0.0.0.0/0

  1. アウトバウンドルールの追加 :
  • 「アウトバウンドルール」タブをクリックし、同様に「ルールの追加」をクリックします。アウトバウンドトラフィックの設定も行います。
  1. 保存 :
  • 設定が完了したら、「保存」をクリックします。

ネットワークACLとは?

ネットワークACL(アクセスコントロールリスト)は、VPC内のサブネットに対してトラフィックの制御を行うためのリストです。
セキュリティグループがインスタンス単位でトラフィックを制御するのに対し、ネットワークACLはサブネット単位でトラフィックを制御します。

例えて言うと…

ネットワークACLは、あなたの家の 「近所のセキュリティパトロール」 のようなものです。
家の周り全体に対して安全を保つためのルールを設定し、どの車両や人物が通れるかを決めるイメージです。


ネットワークACLの基本要素

ネットワークACLは、以下の基本要素で構成されています。

1. ルール番号(Rule Number)

ルール番号は、ルールの適用順序を決定します。
ネットワークACLは、ルール番号が小さいものから順に適用されます。

2. 送信元(Source)と宛先(Destination)

送信元と宛先は、トラフィックの発信元と到達先を指定します。
これにより、どのIPアドレスまたはCIDRからのトラフィックを許可または拒否するかを設定します。

3. アクション(Action)

アクションは、トラフィックを許可するか拒否するかを決定します。
アクションには「許可(Allow)」または「拒否(Deny)」があります。

4. プロトコル(Protocol)

プロトコルは、トラフィックのプロトコル(例: TCP、UDP)を指定します。

5. ポート範囲(Port Range)

ポート範囲は、トラフィックが通過するポートの範囲を指定します。


ネットワークACLの作成と設定

それでは、実際にネットワークACLを作成し、設定する方法を見ていきましょう。

ステップ1: ネットワークACLの作成

  1. AWS管理コンソールにログイン :
  • AWS管理コンソールにアクセスし、ログインします。
  1. 「VPC」サービスに移動 :
  • コンソールのナビゲーションバーから「VPC」を選択します。
  1. 「ネットワークACL」メニューを選択 :
  • 左側のナビゲーションペインから「ネットワークACL」を選択し、「ネットワークACLの作成」をクリックします。
  1. 基本設定の入力 :
  • ネットワークACLにわかりやすい名前を付け、適切なVPCを選択します。その後、「作成」をクリックします。

ステップ2: ルールの設定

  1. インバウンドルールの追加 :
  • 作成したネットワークACLを選択し、「インバウンドルール」タブをクリックします。「ルールの追加」をクリックし、以下の情報を入力します。

    • ルール番号(Rule Number) : ルールの適用順序を決定します(例: 100)。

    • タイプ(Type) : トラフィックの種類(例: HTTP)。

    • プロトコル(Protocol) : プロトコルの種類(例: TCP)。

    • ポート範囲(Port Range) : 許可するポート(例: 80)。

    • ソース(Source) : 許可するIPアドレスまたはCIDR(例: 0.0.0.0/0)。

    • アクション(Action) : 「許可(Allow)」または「拒否(Deny)」。

  1. アウトバウンドルールの追加 :
  • 「アウトバウンドルール」タブをクリックし、同様に「ルールの追加」をクリックします。アウトバウンドトラフィックの設定も行います。
  1. 保存 :
  • 設定が完了したら、「保存」をクリックします。

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

セキュリティグループとネットワークACLはどちらもAWSのVPC内でのトラフィック制御を行いますが、それぞれ異なる役割があります。

セキュリティグループの特徴

  • ステートフル : インバウンドトラフィックが許可されると、そのレスポンスも自動的に許可されます。

  • インスタンス単位 : インスタンスごとに適用されます。

  • デフォルトで拒否 : インバウンドトラフィックはデフォルトで拒否され、明示的に許可されたもののみ通過します。

ネットワークACLの特徴

  • ステートレス : トラフィックが許可されると、そのレスポンスが自動的に許可されるわけではありません。インバウンドとアウトバウンド両方で個別に設定が必要です。

  • サブネット単位 : サブネットごとに適用されます。

  • デフォルトで許可 : アウトバウンドトラフィックはデフォルトで許可され、明示的に拒否されたもののみブロックされます。


セキュリティグループとネットワークACLの使い分け

セキュリティグループとネットワークACLは、それぞれ異なるシナリオで使い分けることができます。

セキュリティグループの使い方

  • インスタンスのセキュリティ制御 : 各インスタンスがどのトラフィックを受け入れるかを設定する際に使用します。

  • 内部通信の制御 : 同じVPC内での通信を制御したい場合に使用します。

ネットワークACLの使い方

  • サブネット全体のセキュリティ制御 : サブネット内の全インスタンスに対してセキュリティ設定を一括で行いたい場合に使用します。

  • 追加のセキュリティ層 : セキュリティグループに加えて、サブネットレベルでのトラフィック制御が必要な場合に使用します。


セキュリティグループとネットワークACLのベストプラクティス

セキュリティグループとネットワークACLを効果的に活用するためのベストプラクティスを紹介します。

セキュリティグループのベストプラクティス

  1. 最小権限の原則 : インスタンスに必要な最小限のトラフィックのみを許可するようにします。

  2. 複数のセキュリティグループの活用 : 同じインスタンスに対して複数のセキュリティグループを使用することで、異なる用途のトラフィックを分けて管理します。

  3. ルールのドキュメント化 : セキュリティグループのルールを文書化し、どのルールがどの目的で設定されているかを把握します。

ネットワークACLのベストプラクティス

  1. 明示的な許可と拒否 : ネットワークACLのルールは明示的に許可または拒否する必要があるため、どのトラフィックを許可または拒否するかを明確に設定します。

  2. ルール番号の整理 : ルール番号は適用順序を決めるため、順序がわかりやすいように整理します。

  3. デフォルト設定の確認 : デフォルトの設定が自分のセキュリティ要件に合っているか確認し、必要に応じて変更します。


まとめ

AWS VPCの 「セキュリティグループ」「ネットワークACL」 は、クラウド環境でのセキュリティを守るための重要なツールです。
セキュリティグループはインスタンス単位でトラフィックを制御し、ネットワークACLはサブネット単位でトラフィックを制御します。
それぞれの役割と使い方を理解することで、よりセキュアなネットワークを構築することができます。

この記事が、AWSのVPCにおけるセキュリティグループとネットワークACLについての理解を深める助けになれば嬉しいです。
セキュリティの基本を押さえた上で、実際に設定を行ってみることで、さらにスキルを身につけていきましょう!

AWSの世界は広く、深いですが、一歩ずつ学んでいけば必ず理解できるようになりますよ。
頑張ってくださいね!

もし疑問や質問があれば、気軽にコメントしてくださいね。これからも一緒に学んでいきましょう!


" ❤️ " や、フォローバッジなどもお待ちしています!


Discussion