クラウドネットワーキング

セキュリティグループ せきゅりてぃぐるーぷ

ファイアウォールインバウンドアウトバウンドAWSアクセス制御VPC
セキュリティグループについて教えて

簡単に言うとこんな感じ!

クラウド上のサーバー(仮想マシン)に取り付ける「門番」みたいなものだよ!「この番号ポートからの通信だけ通していいよ」「それ以外はぜんぶ拒否!」って設定できる、仮想ファイアウォールなんだ。


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

セキュリティグループとは、クラウド環境(主にAWSなどのIaaS)において、仮想サーバー(インスタンス)に対するネットワーク通信の許可・拒否を制御するための仮想ファイアウォールのことです。物理的なネットワーク機器ではなく、ソフトウェアで実現されており、インスタンス単位で柔軟に割り当てられます。

セキュリティグループは「ステートフル」な動作をするのが特徴です。ステートフルとは「通信の状態を記憶する」ということで、たとえばインバウンド(外から中への通信)を許可すれば、その応答トラフィックは自動的にアウトバウンド(中から外への通信)でも許可されます。管理者が細かいルールをいちいち書かなくてよいので、設定ミスが起きにくい設計になっています。

クラウド移行後のシステム発注や構成検討の場面でも「このサーバーのセキュリティグループはどう設定するか」という議論は必ず出てきます。外部公開サービスなのか・社内限定なのか・DB専用なのかによって設定が大きく変わるため、要件定義の段階で意識しておく必要があります。


セキュリティグループの仕組みと設定項目

セキュリティグループのルールは「インバウンド(受信)」と「アウトバウンド(送信)」の2方向で設定します。

項目説明
方向インバウンド(受信) / アウトバウンド(送信)外→中 / 中→外
プロトコル通信の種類TCP / UDP / ICMP
ポート番号通信の「窓口」番号80(HTTP), 443(HTTPS), 22(SSH
送信元/送信先通信を許可するIPアドレス範囲0.0.0.0/0(全て)/ 192.168.1.0/24(社内のみ)
説明ルールの用途メモ「社外Webアクセス用」など

覚え方:「門番は許可リストだけ持っている」

セキュリティグループは許可ルールしか書けないのがポイントです。「拒否する」というルールは存在せず、「書いていない通信はすべて自動的に拒否」されます。つまり「ホワイトリスト方式」。「この人だけ通す」リストだけを管理するイメージです。

典型的な設定パターン

【Webサーバー用セキュリティグループ】
インバウンド:
  - TCP 443(HTTPS)← 0.0.0.0/0(全インターネット)
  - TCP 22(SSH)  ← 203.0.113.10/32(管理者のIPのみ)

アウトバウンド:
  - すべて許可(デフォルト)

【DBサーバー用セキュリティグループ】
インバウンド:
  - TCP 3306(MySQL)← Webサーバー用セキュリティグループのIDのみ

アウトバウンド:
  - すべて許可

このように、DBサーバーにはWebサーバーからしか通信できない構成にするのがクラウドのベストプラクティスです。


歴史と背景

  • 2006年 — AWSがEC2(仮想サーバーサービス)を開始。この時点からセキュリティグループの概念が導入される
  • 2009年頃 — クラウド利用の拡大とともに「物理ファイアウォール不要でサーバーを守れる」手軽さが注目を集める
  • 2013年 — AWS VPC(Virtual Private Cloud)が一般提供。セキュリティグループに加え、ネットワークACLサブネット単位の制御) との役割分担が整理される
  • 2015年以降 — Azure・GCPなど他クラウドも同等の概念(Azure: ネットワークセキュリティグループ / GCP: ファイアウォールルール)を実装し、業界標準的な考え方として定着
  • 現在マイクロサービス・コンテナ環境でも「セキュリティグループ的な発想」はKubernetesのNetwork Policyなどに継承されている

セキュリティグループ vs ネットワークACL

クラウド(特にAWS)では似た機能としてネットワークACL(Access Control List)があります。両者の違いを理解しておくと発注・設計の議論で役立ちます。

セキュリティグループ vs ネットワークACL セキュリティグループ (インスタンス単位) 適用範囲: インスタンス(サーバー)ごと 🖥️ 1台ずつ個別に設定できる ルール種別: 許可のみ(ホワイトリスト) ✅ 「通してよい」だけを書く ステートフル: ✅ 応答は自動許可 戻りの通信を別途書かなくてよい 評価順序: 全ルールを評価して判断 番号順ではなく包括的に適用 ネットワークACL (サブネット単位) 適用範囲: サブネット(ネットワーク区画) 🏘️ 区画内の全インスタンスに適用 ルール種別: 許可・拒否どちらも設定可 🚫 「拒否する」ルールも書ける ステートレス: ⚠️ 応答も明示的に許可必要 インバウンド・アウトバウンド両方書く 評価順序: 番号の小さいルールが優先 最初にマッチしたルールが適用される vs 💡 通常は両方を組み合わせて多層防御を構成する

実務上の使い分けポイント:

  • まずセキュリティグループで制御するのが基本。設定がシンプルで管理しやすい
  • ネットワークACLは「特定のIPを会社全体でブロックしたい」などサブネット全体に一括で適用したい場合に使う
  • 両方使う場合は「ACLが先にチェック → その後セキュリティグループがチェック」という順序で評価される

関連する規格・RFC

規格・参考資料内容
AWS公式ドキュメント(VPCセキュリティグループ)AWSにおけるセキュリティグループの仕様・設定方法
RFC 793TCP(ポート番号の元になるプロトコル仕様)
NIST SP 800-41ファイアウォール設計に関するガイドライン(セキュリティグループの設計思想の参考)
CIS AWS Foundations BenchmarkAWSのセキュリティグループ設定に関するベストプラクティス基準

関連用語

  • ファイアウォール — ネットワーク境界で通信を制御するセキュリティ機能。セキュリティグループはその仮想版
  • VPC — Virtual Private Cloud。クラウド上の仮想ネットワーク空間。セキュリティグループはVPC内で機能する
  • ネットワークACL — サブネット単位でトラフィックを制御する、セキュリティグループと対になる機能
  • インバウンド/アウトバウンド — ネットワーク通信の方向を表す概念。セキュリティグループの設定の基本単位
  • ポート番号 — 通信の「窓口」番号。セキュリティグループのルール設定で必ず使う
  • ゼロトラスト — 「何も信頼しない」を前提にしたセキュリティ設計思想。セキュリティグループの最小権限設定と親和性が高い