セキュリティグループ (セキュリティグループ) とは | 意味や読み方など丁寧でわかりやすい用語解説

作成日: 更新日:

セキュリティグループ (セキュリティグループ) の読み方

日本語表記

セキュリティグループ (セキュリティグループ)

英語表記

Security Group (セキュリティグループ)

セキュリティグループ (セキュリティグループ) の意味や用語解説

セキュリティグループとは、主にパブリッククラウド環境で利用される、サーバーインスタンスに対する通信を制御するための仮想的なファイアウォール機能である。Amazon Web Services (AWS)、Microsoft Azure、Google Cloud Platform (GCP) といった主要なクラウドプラットフォームで提供されており、仮想サーバー(インスタンスや仮想マシンと呼ばれる)へのネットワークアクセスを管理する上で基本的なセキュリティコンポーネントとして位置づけられている。その主な役割は、サーバーに対してどのような通信を許可し、どのような通信を拒否するかを定義することで、不正なアクセスからシステムを保護することにある。具体的には、どのIPアドレスから、どのプロトコルとポート番号を使ってアクセスできるかをルールとして設定し、サーバーのネットワークインターフェースに適用することで機能する。これにより、例えばWebサーバーにはインターネットからのWebアクセスのみを許可し、データベースサーバーには特定のアプリケーションサーバーからの接続のみを許可するといった、柔軟かつ厳密なアクセス制御を実現できる。 セキュリティグループの動作を理解する上で最も重要な特徴は、ステートフルなファイアウォールであるという点だ。ステートフルとは、通信の状態(ステート)を記憶・追跡することを意味する。例えば、サーバーへの内向き(インバウンド)の通信を許可するルールを設定した場合、その通信に対する応答としてサーバーから外向き(アウトバウンド)に出ていく戻りの通信は、個別のルールを設定しなくても自動的に許可される。この仕組みにより、管理者は行き(リクエスト)の通信ルールのみを考慮すればよく、戻り(レスポンス)の通信まで意識する必要がないため、ルール管理が大幅に簡素化される。これは、インバウンドとアウトバウンドの両方で明示的にルールを設定する必要があるステートレスなファイアウォール(例えばAWSのネットワークACL)との大きな違いである。 セキュリティグループのルール設定は、許可のみを定義する「ホワイトリスト方式」を採用している。これは、ルールとして明示的に許可されていない通信は、デフォルトですべて拒否されるという原則に基づいている。拒否ルールを明示的に設定することはできない。ルールを定義する際には、いくつかの要素を指定する必要がある。第一に「方向」であり、インバウンド(サーバーへの着信)かアウトバウンド(サーバーからの発信)かを指定する。第二に「プロトコル」で、TCP、UDP、ICMPなど、制御対象の通信プロトコルを選択する。第三に「ポート範囲」で、特定のアプリケーションが使用するポート番号(例えば、WebアクセスのためのTCP/80やTCP/443)を指定する。最後に「ソース」または「デスティネーション」で、通信を許可する相手を指定する。インバウンドルールでは通信元(ソース)を、アウトバウンドルールでは通信先(デスティネーション)を指定し、ここには特定のIPアドレスやIPアドレスの範囲(CIDR表記)、あるいは別のセキュリティグループを指定することができる。 セキュリティグループは、一つまたは複数のサーバーインスタンスに関連付けて使用される。一つのインスタンスに複数のセキュリティグループを適用することも可能で、その場合、適用されたすべてのセキュリティグループの許可ルールが合算されて評価される。また、一つのセキュリティグループを、同じ役割を持つ複数のインスタンス(例えば、負荷分散されたWebサーバー群)に適用することも一般的である。これにより、関連するサーバー群の通信ポリシーを一元的に管理でき、設定の変更や管理が容易になる。 具体的な利用例として、典型的な3層アーキテクチャ(Webサーバー、アプリケーションサーバー、データベースサーバー)を考えてみる。Webサーバーに適用するセキュリティグループでは、インターネット上の不特定のユーザーからのアクセスを許可するため、ソースを「0.0.0.0/0」(すべてのIPアドレス)としてHTTP(TCP/80)およびHTTPS(TCP/443)のインバウンド通信を許可する。次に、アプリケーションサーバーのセキュリティグループでは、インバウンドのソースとしてWebサーバーのIPアドレスではなく、Webサーバーが属する「セキュリティグループID」を指定する。これにより、Webサーバーのインスタンスが増減したりIPアドレスが変更されたりしても、ルールを修正することなくアプリケーションサーバーへのアクセスを動的に制御できる。同様に、データベースサーバーのセキュリティグループでは、アプリケーションサーバーのセキュリティグループIDからのデータベース接続ポート(例: MySQLのTCP/3306)のみを許可する。このようにセキュリティグループを組み合わせることで、各層間の通信を厳密に制限し、堅牢なシステムを構築することが可能となる。 クラウド環境のセキュリティ設計において、セキュリティグループは第一線の防御壁として機能する。インスタンスレベルで詳細なアクセス制御を行うことで、意図しない通信を遮断し、システムの脆弱性が悪用されるリスクを低減する。システムエンジニアを目指す上で、このセキュリティグループの仕組みと適切な設計方法を理解することは、安全なクラウドインフラを構築するための必須の知識である。