IBM セキュリティー・グループの概要
IBM Cloud® セキュリティー・グループとは、仮想サーバー・インスタンスのパブリック・インターフェースとプライベート・インターフェースの両方について、着信 (進入) および発信 (退出) トラフィックを処理する方法を定義する一連の IP フィルター・ルールです。 セキュリティー・グループに追加するルールをセキュリティー・グループ・ルールと呼びます。
- 単一の仮想サーバーまたは複数の仮想サーバーインスタンスのパブリックおよびプライベートネットワークインタフェースにセキュリティグループを割り当てることができます。
- IBM が提供するセキュリティー・グループまたは独自に作成したセキュリティー・グループを割り当てることができます。
- セキュリティー・グループが仮想サーバー・インスタンスのネットワーク・コンポーネントに適用される場合、セキュリティー・グループ・ルールによって明示的に許可されていない限り、そのネットワーク・コンポーネントのすべての出入力トラフィックが拒否されます。
- 仮想サーバー・インスタンスへのインバウンド・トラフィックは、進入トラフィックと呼ばれます。
- 仮想サーバー・インスタンスからのアウトバウンド・トラフィックは、退出トラフィックと呼ばれます。
セキュリティー・グループは、仮想サーバーをホスティングするハイパーバイザーで実装されます。
IBM が提供するセキュリティー・グループ
IBM が提供する以下のセキュリティー・グループを仮想サーバー・インスタンスのネットワーク・インターフェースに割り当てることができます。
- allow_ssh - このセキュリティー・グループは、SSH ポートでのみ進入 TCP トラフィックを許可する IP ルールを定義します (22/TCP)。
- allow_http - このセキュリティー・グループは、HTTP ポートでのみ進入トラフィックを許可する IP ルールを定義します (80/TCP)。
- allow_https - このセキュリティー・グループは、HTTPS ポートでのみ進入 TCP トラフィックを許可する IP ルールを定義します (443/TCP)。
- allow_outbound - このセキュリティー・グループは、サーバーからのすべての退出トラフィックを許可する IP ルールを定義します。
- allow_all - このセキュリティー・グループは、すべてのポートですべての進入トラフィックを許可する IP ルールを定義します。
セキュリティー・グループと監査ログ
セキュリティー・グループの相互作用はすべて、アカウントの監査ログに記録されます。 項目では、特定のセキュリティー・グループの変更と、その変更を要求したユーザーを追跡します。 以下の相互作用についてログが書き込まれます。
- 仮想サーバーのネットワーク・インターフェースに対して、セキュリティー・グループの追加または削除が行われた。
- セキュリティー・グループのルールが、ルールの追加、ルールの編集、またはルールの削除によって変更された。
そうした各相互作用について、影響を受けたオブジェクトごとに 1 つのログが書き込まれます。 ログは常に、変更されたセキュリティグループに対して書き込まれる。 追加のログは、セキュリティグループに接続されている各仮想サーバーのネットワークインターフェイスに対して書き込まれます。 特定のセキュリティグループの監査ログをフィルタリングすると、そのグループのセキュリティグループに関連するすべての変更が表示される。 同様に、特定の仮想サーバーのログをフィルタリングすると、その仮想サーバーのセキュリティグループに関連するすべての変更が表示されます。
セキュリティー・グループの変更によって、バックグラウンドで複数の仮想サーバーが更新される可能性があるため、監査ログを使用して、変更が正確にいつ有効になったかを判別することができます。 監査ログを生成するセキュリティー・グループ API は、要求 ID を返します。 この ID を使用して、API 呼び出しと、生成された監査ログとを相互に関連付けることができます。
セキュリティグループをソースまたは宛先として使用する
セキュリティグループ内でルールを作成する際、トラフィックフローの送信元または送信先としてセキュリティグループを設定するというオプションがあります。 このアクションは基本的に2つのことを行う。 まず、指定されたセキュリティグループに属するサーバーによって定義されたIPアドレスのグループを作成する。 次に、IPアドレスのグループをトラフィックの送信元または宛先として設定する。 これにより、サーバーを機能別にグループ化し、そのグループをルールで参照することができる。 例えば、アカウント上で、すべてのウェブサーバー用のセキュリティグループと、すべてのデータベースサーバー用のセキュリティグループをそれぞれ作成し、サーバーの種類別にセキュリティグループを定義することができます。 Webサーバーからデータベース・サーバーへのトラフィックを許可するには、Webサーバー・セキュリティ・グループ内にルールを作成します。 宛先をデータベースサーバーのセキュリティグループに設定する(ルール内で適切な宛先ポートとプロトコルを設定する)。
各セキュリティグループは、アカウント全体で合計5回まで、他のセキュリティグループ内のソースまたは宛先として参照することができます。
セキュリティー・グループの例
次の図では、ネットワーク・トラフィックを制限するために、仮想サーバー・インスタンスが一連のセキュリティー・グループに関連付けられています。 矢印は、ネットワーク・トラフィックの流れを示しています。 アプリケーション開発者は、以下のように、各種のインフラストラクチャー層へのアクセスが制限されています。
- アプリケーション開発者は、TCP ポート 443 (HTTPS) 上の Web 層にのみアクセスできます。
- Web 層のインスタンスは、アプリケーション層のインスタンスにのみアクセスできます。
- アプリケーション層のインスタンスは、データベース層のインスタンスにのみアクセスできます。