セキュリティー・グループについて
IBM Cloud® VPCのセキュリティグループは、仮想サーバーインスタンスのIPアドレスに基づいて、そのターゲットにフィルタリングを確立するルールを適用する便利な方法を提供します。 セキュリティグループの対象には、仮想サーバーインスタンスのネットワークインターフェース、エンドポイントゲートウェイ、ロードバランサーなどが含まれる。 セキュリティー・グループを作成するときには、必要なネットワーク・トラフィック・パターンを作成するようにセキュリティー・グループを構成します。
デフォルトでは、すべてのインバウンド・トラフィックを拒否し、すべてのアウトバウンド・トラフィックを許可するルールを使用して、セキュリティー・グループがセットアップされます。 新しいルールがセキュリティー・グループに追加されると、その新しいルールによって、許可されるインバウンド・トラフィックまたはアウトバウンド・トラフィックの有効範囲が再定義されます。
ルールは_ステートフルで_ある。 ステートフル ・ルールを使用すると、トラフィックを片方向に許可するルールを作成するときに、そのルールによってリバース・トラフィックが自動的に許可されます。 例えば、ポート80のインバウンドTCPトラフィックを許可するルールを作成した場合、セキュリティグループは、別のルールを作成しなくても、ポート80のアウトバウンドTCPトラフィックを発信元のホストに返信することも許可します。
セキュリティー・グループの適用範囲は単一の VPC です。 このスコープは、同じVPC内のどのセキュリティ・グループ・ターゲットにもセキュリティ・グループをアタッチできることを意味する。 セキュリティー・グループ・ルールをセットアップして、セキュリティー・グループのすべてのメンバー間のトラフィックを許可することができます。
VPCを作成すると、デフォルトのセキュリティ・グループが割り当てられます。 デフォルトのセキュリティー・グループ設定および個々のセキュリティー・グループのルールを変更できます。
セキュリティー・グループを使用するリソースを作成し、セキュリティー・グループを指定しない場合、リソースの 1 次ネットワーク・インターフェースは、そのリソースの VPC の default セキュリティー・グループに接続されます。
default セキュリティー・グループのルールの更新は、デフォルトのセキュリティー・グループの更新とは別のプロセスです。 デフォルトのセキュリティー・グループのルールを編集すると、グループ内の現在および将来のすべてのサーバーにこれらの編集されたルールが適用されます。 詳しくは、 デフォルトのセキュリティー・グループ・ルールの更新 を参照してください。
セキュリティグループを互いにネストすることはできませんが、リモートセキュリティグループを参照することはできます。 ルールでリモートセキュリティグループを参照すると、そのルールに添付されているすべての参照セキュリティグループの対象にそのルールが適用されます。
セキュリティー・グループは、同じリージョン内の別のゾーンにある別のセキュリティー・グループを参照できません。
セキュリティー・グループ・ターゲット
ターゲットとは、セキュリティー・グループを関連付けたり、セキュリティー・グループから切り離したりするリソースのことです。 セキュリティグループの対象には、仮想サーバーインスタンスのネットワークインターフェース、エンドポイントゲートウェイ、ロードバランサーなどが含まれる。
トラフィックを送受信できる各リソースには、セキュリティー・グループを構成することができます。 これには、仮想サーバー・インターフェース、ベア・メタル・サーバー、ロード・バランサー、データ・パスに沿った任意のエンドポイント・ゲートウェイなどが含まれます。
データ・パス上の任意のリソースにセキュリティー・グループを関連付けることができます。
セキュリティー・グループとネットワーク ACL の比較
セキュリティー・グループはリソースに結合されますが、ネットワーク・アクセス制御リスト (NACL) はサブネットに結合されます。
NACLはサブネットレベルで適用されるため、関連するNACLを持つサブネット内のリソースは、NACLのルールに従う。 ただし、セキュリティー・グループの場合はそうではありません。 セキュリティグループはリソースに明示的に割り当てる必要がある。 また、NACLとは異なり、セキュリティ・グループはサブネットやゾーンを越えて複数のリソースに適用することができる。
NACL は _ステートレス_です。
NACL は _ステートフル_ではないため、ターゲット上で両方の方法でトラフィックを許可する場合は、2 つのルールをセットアップする必要があります。
セキュリティー・グループ・ルールの定義
すべてのセキュリティー・グループは、一連のルールで構成されます。 セキュリティー・グループは、トラフィックがインスタンスに出入りすることを許可する前に、そのすべてのルールを調べます。 インバウンド・トラフィックの制御に使用されるルールは、アウトバウンド・トラフィックの制御に使用されるルールとは独立しています。
新しいセキュリティグループを作成すると、最初はすべてのインバウンドトラフィックが制限され、アウトバウンドトラフィックが許可されます。 したがって、着信トラフィックを許可し、アウトバウンド・トラフィックに制限を適用するためのルールをグループに追加する必要があります。
リソースは複数のセキュリティグループを関連付けることができるため、リソースに関連付けられた各セキュリティグループのすべてのルールは、1つのルールセットを形成するために結合される。 この一連のルールは、トラフィックがリソースへの出入りを拒否されるべきか、許可されるべきかを決定するために使用される。 セキュリティー・グループに追加するすべてのセキュリティー・ルールについて、以下のフィールドに値を指定する必要があります。
-
方向 - ンバウンドまたはアウトバウンドのいずれかで適用するトラフィックの方向。
-
Protocol - このルールが適用されるプロトコルを示す。 値は、
tcp
、udp
、icmp
、またはall
です。- 値が
all
の場合は、この規則がすべてのプロトコルに適用されることを意味します。 その場合、ポート範囲 (PortMin、PortMax) を指定することは無効です。 - プロトコルが
tcp
またはudp
の場合、ルールにポート範囲 (PortMin、PortMax) を含めることもできます。 両方のポートを設定するか、どちらも設定しない。 どちらも設定されていない場合、トラフィックはすべてのポートで許可されます。 単一ポートの場合は、両方のポートを同じ値に設定する必要があります。 - プロトコルが
icmp
の場合、オプションでtype
プロパティーを指定できます。 指定された場合、ICMP トラフィックは指定された ICMP タイプに対してのみ許可されます。 さらに、type
を指定した場合は、オプションでコード・プロパティーを指定して、指定した ICMP コードのみのトラフィックを許可することができます。
- 値が
-
リモート - このルールがトラフィックを許可するネットワーク・インターフェースのセットを記述します (アウトバウンド・ルールの場合は、どのネットワーク・インターフェースからのトラフィックを許可するか)。 この値は、IP アドレス、CIDR ブロック、または単一のセキュリティー・グループのすべての ID (ID、CRN、および名前) のいずれかとして指定できます。 この値を省略すると、
0.0.0.0/0
の CIDR ブロックを使用して、任意のソース (アウトバウンド・ルールの場合は任意のソース) からのトラフィックを許可します。
CLI を使用したセキュリティー・グループ・ルールのセットアップについて詳しくは、 コマンド・リストの虎の巻 を参照してください。 API を使用したセキュリティー・グループ・ルールのセットアップについて詳しくは、 API を使用した仮想サーバー・インスタンスのセキュリティー・グループのセットアップ を参照してください。
始めに
開始するには、リソースに新しいセキュリティ・グループを作成するかどうかを決定し、 セキュリティ・グループを作成 します。
セキュリティー・グループのユース・ケース
セキュリティー・グループを作成することは、リソースとの間でネットワーク・トラフィック・パターンをフィルタリングするルールをユーザーが適用するための標準的な方法です。 以下のアクションを実行できるかどうかは、アカウントの許可レベルによって異なります。 アカウント権限について質問がある場合は、管理者にお問い合わせください。
ユース・ケース 1: リソースのデフォルト・セキュリティー・グループの変更
すべての VPC にはデフォルトのセキュリティー・グループがあります。これは、ユーザー用に作成されるセキュリティー・グループです。 そのデフォルト・セキュリティー・グループには、デフォルト・ルールもあります。 このデフォルト・ルールは、ルールを追加または削除してセキュリティー・グループの設定をカスタマイズする前に作成するセキュリティー・グループに割り当てられるデフォルト・ルールと同じです。
デフォルト・セキュリティー・グループは、新規セキュリティー・グループのデフォルト・ルールとは異なります。 デフォルト・セキュリティー・グループのルールと、新規セキュリティー・グループに割り当てられたデフォルト・ルールの両方をカスタマイズできます。
例えば、あなたが組織の一員で、あなたの組織のアカウントにアクセスできる誰かが、デフォルトのセキュリティグループのルールを、新しいセキュリティグループを作成したときのデフォルトのルールとは異なるものに変更したとします。 チーム・メンバーは、非常にセキュリティー意識の高いお客様であり、インバウンドとアウトバウンドのすべてのネットワーク・トラフィックを拒否するようにデフォルトのセキュリティー・グループ設定を変更します。
この例では、新規リソースを作成すると、そのリソースは最初に VPC のデフォルト・セキュリティー・グループに割り当てられます。 このデフォルト・セキュリティー・グループのルールは、セキュリティーに配慮したチーム・メンバーがセットアップした拒否ルールのため、すべてのインバウンドおよびアウトバウンドのネットワーク・トラフィックを拒否します。 その結果、新しいリソースとの間のトラフィックには、この拒否動作が適用されます。
この例では、チーム・メンバーがセットアップしたデフォルトのセキュリティー・グループ・ルールに不満がある場合、1 つの解決策は、カスタマイズされた設定を使用して新しいセキュリティー・グループを作成し、それをリソースに適用することです。 もう 1 つの解決策は、デフォルト・セキュリティー・グループのルールを変更することです。 カスタマイズされた設定を使用して新規セキュリティー・グループを作成するのが最も簡単な解決策です。これは、影響を与えたい単一リソースに適用されるルールを作成できるためです。 デフォルト・セキュリティー・グループの規則を変更すると、これらの変更は、影響を与えたいリソースだけでなく、デフォルト・セキュリティー・グループに割り当てられている他のすべてのリソースにも適用されます。
デフォルト・セキュリティー・グループで作成した新規ルールは、そのデフォルト・セキュリティー・グループに割り当てられている現在および将来のすべてのリソースに適用されます。
デフォルトのセキュリティー・グループの更新について詳しくは、 デフォルトのセキュリティー・グループ・ルールの更新 を参照してください。
ユース・ケース 2: 新規リソース作成時のセキュリティー・グループおよびルールのカスタマイズ
以下の図は、新規リソースを作成するときに選択可能なカスタマイズ・オプションを示しています。 ユーザーが新規リソースを作成し、それを接続するセキュリティー・グループを指定するアクションをこれ以上実行しない場合、その新規リソースは VPC のデフォルト・セキュリティー・グループに割り当てられます。 このデフォルトのセキュリティー・グループは、デフォルトのセキュリティー・グループ・ルールを使用するか、アカウントのメンバーによって以前に構成されたカスタマイズされたルールに従います。
ユーザーが新規リソースを新規セキュリティー・グループに割り当てることを決定した場合、新規セキュリティー・グループにはデフォルトのセキュリティー・グループ・ルールが自動的に割り当てられます。 その後、ユーザーは、追加のアクションを実行しないことを選択するか、新規セキュリティー・グループのカスタム・セキュリティー・グループ・ルールを作成するためにルールをカスタマイズすることを選択できます。 これらの新しい規則は、作成され、新しいセキュリティー・グループに割り当てられた新しいリソースにも適用されます。
ユース・ケース 3: セキュリティー・グループのメンバー間のトラフィックを許可する
セキュリティー・グループをセットアップするより一般的な方法は、IP アドレスとポートでフィルタリングする特定の規則を使用して、ターゲットとの間のトラフィックを制御することです。
セキュリティー・グループをセットアップするより動的な方法は、セキュリティー・グループの一部でもある他のターゲットからのすべてのインバウンド・トラフィックを許可することです。 セキュリティー・グループのメンバー間のトラフィックを許可すると、リソースがセキュリティー・グループに追加されたり、セキュリティー・グループから削除されたりするため、現在の各メンバーとセキュリティー・グループの各新規メンバーとの間に個別の許可をセットアップする必要はありません。
例えば、セキュリティー・グループにホスト A とホスト B があり、新しいホスト C を追加するとします。 通常は、ホスト C をセキュリティー・グループに追加した後で、ホスト A とホスト B がホスト C との間でトラフィックを送受信できるようにするために、保守を実行する必要があります。
このプロセスを容易にするために、グループの別のメンバーからのトラフィックである限り、すべてのトラフィックを許可するルールを定義できます。 その後、グループにメンバーを追加したり、グループからメンバーを削除したりすると、ルールが自動的に変更され、グループのメンバーが相互にトラフィックを送信できるようになります。
以下は、セキュリティー・グループ内のルールを定義して、そのセキュリティー・グループのメンバー間のすべてのトラフィックを許可するための UI の説明です。
- ブラウザーから、 IBM Cloud コンソールを開きます。
- ナビゲーション メニュー
を選択し、 インフラストラクチャ
> ネットワーク > セキュリティ グループをクリックします。
- セキュリティグループで、変更するセキュリティグループオブジェクトを選択します。
- 「インバウンド・ルール」 表の右上にある 「作成 +」 ボタンをクリックします。 「インバウンド・ルールの作成」 ウィンドウが表示されます。
- 「プロトコル」 セクションで、 「すべて」 を選択します。
- 「ソース・タイプ」 セクションで、 「セキュリティー・グループ」 を選択します。
- 「作成」 をクリックして、これらの変更を適用します。