IBM Cloud Docs
セキュリティー・グループについて

セキュリティー・グループについて

IBM Cloud® VPCのセキュリティグループは、仮想サーバーインスタンスのIPアドレスに基づいてフィルタリングを確立するルールを適用する便利な方法を提供します。 セキュリティグループの対象には、仮想サーバーインスタンスのネットワークインターフェイス、エンドポイントゲートウェイ、およびロードバランサーが含まれます。 セキュリティー・グループを作成するときには、必要なネットワーク・トラフィック・パターンを作成するようにセキュリティー・グループを構成します。

デフォルトでは、すべてのインバウンド・トラフィックを拒否し、すべてのアウトバウンド・トラフィックを許可するルールを使用して、セキュリティー・グループがセットアップされます。 新しいルールがセキュリティー・グループに追加されると、その新しいルールによって、許可されるインバウンド・トラフィックまたはアウトバウンド・トラフィックの有効範囲が再定義されます。

ルールは_ステートフル_である。 ステートフル ・ルールを使用すると、トラフィックを片方向に許可するルールを作成するときに、そのルールによってリバース・トラフィックが自動的に許可されます。 たとえば、ポート80での着信TCPトラフィックを許可するルールを作成すると、セキュリティグループは発信元ホストへのポート80での返信着信TCPトラフィックも許可します。 別のルールを作成する必要はありません。

セキュリティー・グループの適用範囲は単一の VPC です。 このスコープ設定により、同一VPC内の任意のセキュリティグループ対象にセキュリティグループをアタッチできることを意味します。 セキュリティー・グループ・ルールをセットアップして、セキュリティー・グループのすべてのメンバー間のトラフィックを許可することができます。

VPCを作成すると、デフォルトのセキュリティグループが割り当てられます。 デフォルトのセキュリティー・グループ設定および個々のセキュリティー・グループのルールを変更できます。

セキュリティー・グループを使用するリソースを作成し、セキュリティー・グループを指定しない場合、リソースの 1 次ネットワーク・インターフェースは、そのリソースの VPC の default セキュリティー・グループに接続されます。

default セキュリティー・グループのルールの更新は、デフォルトのセキュリティー・グループの更新とは別のプロセスです。 デフォルトのセキュリティー・グループのルールを編集すると、グループ内の現在および将来のすべてのサーバーにこれらの編集されたルールが適用されます。 詳しくは、 デフォルトのセキュリティー・グループ・ルールの更新 を参照してください。

セキュリティグループを相互にネストすることはできませんが、リモートセキュリティグループを参照することは可能です。 ルールでリモートセキュリティグループを参照すると、そのルールは、そのルールに紐付けられたすべての参照セキュリティグループ対象に適用されます。

セキュリティー・グループは、同じリージョン内の別のゾーンにある別のセキュリティー・グループを参照できません。

セキュリティー・グループ・ターゲット

ターゲットとは、セキュリティグループを割り当てたり解除したりする対象となるリソースのことです。 セキュリティグループの対象には、仮想サーバーインスタンスのネットワークインターフェイス、エンドポイントゲートウェイ、およびロードバランサーが含まれます。

トラフィックの送受信が可能な各リソースには、そのリソース用に設定されたセキュリティグループを割り当てることができます。 リソースには、仮想サーバーインターフェース、ベアメタルサーバー、ロードバランサー、データパス上のあらゆるエンドポイントゲートウェイなどが含まれます。

データ・パス上の任意のリソースにセキュリティー・グループを関連付けることができます。

セキュリティー・グループとネットワーク ACL の比較

セキュリティー・グループはリソースに結合されますが、ネットワーク・アクセス制御リスト (NACL) はサブネットに結合されます。

NACLはサブネットレベルで適用されるため、関連付けられたNACLを持つサブネット内のリソースはすべて、そのNACLのルールに従います。 ただし、セキュリティー・グループの場合はそうではありません。 セキュリティグループはリソースに明示的に割り当てる必要があります。 また、NACLとは異なり、セキュリティグループはサブネットをまたいで、さらにはゾーンをまたいで複数のリソースに適用できます。

NACL は _ステートレス_です。

NACL は _ステートフル_ではないため、ターゲット上で両方の方法でトラフィックを許可する場合は、2 つのルールをセットアップする必要があります。

インスタンスとゾーンにまたがるセキュリティグループ
インスタンスとゾーンにまたがるセキュリティグループ

セキュリティグループガイドライン

以下のガイドラインでは、セキュリティグループの機能、ルールの適用方法、およびネットワークインターフェイスへのアタッチに関するベストプラクティスについて説明します。

Rules

  • 各セキュリティグループは、仮想ネットワークインターフェースの着信および発信トラフィックを定義する、異なるネットワークルールのセットを定義します。
  • インバウンド・トラフィック、アウトバウンド・トラフィック、あるいはその両方を許可するには、トラフィックを許可するセキュリティー・グループ・ルールを含んでいるセキュリティー・グループを 1 つ以上追加する必要があります。
  • セキュリティグループのルールは許可のみに設定できます。 トラフィックはデフォルトでブロックされます。
  • セキュリティー・グループ・ルールの変更は自動的に適用され、いつでも変更できます。
  • セキュリティグループ内のルールの順序は重要ではありません。 制限が最も少ないルールが常に優先されます。
  • ルールはステートフルです。 セキュリティー・グループの変更の前に確立された接続は、変更されません。 新規の接続は、接続確立時に存在したルールに従います。
  • セキュリティー・グループは、仮想サーバー上のオペレーティング・システムのファイアウォールをオーバーライドしません。 セキュリティー・グループによって適用されるルールよりも制限的なファイアウォールがオペレーティング・システム上に存在する場合でも、オペレーティング・システムのルールが引き続き適用されます。
  • 仮想サーバーが更新サーバー、ネットワーク接続ストレージ(NAS)、高度な監視などの内部サービスへのアクセスを必要とする場合、セキュリティグループのルールがそれらの内部サービスへのトラフィックに対応していることを確認してください。

インターフェース

  • 1つ以上のセキュリティグループをネットワークインターフェイスにアタッチできます。
  • 添付のセキュリティグループからのすべてのルールが、インターフェイスにまとめて適用されます。
  • 複数のセキュリティグループがアタッチされている場合、すべてのグループにわたる最も制限の緩いルールに基づいてトラフィックが許可またはブロックされます。

セキュリティー・グループ・ルールの定義

すべてのセキュリティー・グループは、一連のルールで構成されます。 セキュリティグループは、インスタンスへのトラフィックの入出を許可する前に、すべてのルールを検査します。 インバウンド・トラフィックの制御に使用されるルールは、アウトバウンド・トラフィックの制御に使用されるルールとは独立しています。

新しいセキュリティグループを作成すると、初期状態ではすべての着信トラフィックが制限され、発信トラフィックは許可されます。 したがって、着信トラフィックを許可し、アウトバウンド・トラフィックに制限を適用するためのルールをグループに追加する必要があります。

リソースは複数のセキュリティグループに関連付けられる可能性があるため、関連付けられた各セキュリティグループのすべてのルールが組み合わされ、単一のルールセットを形成します。 この一連のルールは、トラフィックがリソースへの出入を拒否されるか許可されるかを決定するために使用されます。 セキュリティー・グループに追加するすべてのセキュリティー・ルールについて、以下のフィールドに値を指定する必要があります。

  • 方向 - ンバウンドまたはアウトバウンドのいずれかで適用するトラフィックの方向。

  • プロトコル - このルールが適用されるプロトコルを示します。 値は ICMP_TCP_UDP、または ANY、またはのいずれかである IPv4 protocols

    • その値が の場合、このルールが プロトコル ANY``ANY に適用されることを意味します。 その場合、ポート範囲 (PortMin、PortMax) を指定することは無効です。
    • プロトコルが tcp または udpの場合、ルールにポート範囲 (PortMin、PortMax) を含めることもできます。 両方のポートを設定するか、どちらも設定しない。 どちらも設定されていない場合、トラフィックはすべてのポートで許可されます。 単一ポートの場合は、両方のポートを同じ値に設定する必要があります。
    • プロトコルが icmpの場合、オプションで type プロパティーを指定できます。 指定された場合、ICMP トラフィックは指定された ICMP タイプに対してのみ許可されます。 さらに、typeを指定した場合は、オプションでコード・プロパティーを指定して、指定した ICMP コードのみのトラフィックを許可することができます。
  • リモート - このルールがトラフィックを許可するネットワーク・インターフェースのセットを記述します (アウトバウンド・ルールの場合は、どのネットワーク・インターフェースからのトラフィックを許可するか)。 この値は、IP アドレス、CIDR ブロック、または単一のセキュリティー・グループのすべての ID (ID、CRN、および名前) のいずれかとして指定できます。 この値を省略すると、0.0.0.0/0 の CIDR ブロックを使用して、任意のソース (アウトバウンド・ルールの場合は任意のソース) からのトラフィックを許可します。

セキュリティグループのルールに名前を付けることができます。 ただし、システムは名前とルールの構成との間に何の関連性も持たない。 たとえば、ルールに「」という名前 inbound-https-from-my-subnet を付けた場合、システムはそのルールが名前が示す通りに機能するかどうかを検証しません。 セキュリティグループ規則の名前と設定は、必要に応じて一貫性を保つよう管理する責任があなたにあります。

CLIを使用したセキュリティグループルールの設定に関する詳細については、 コマンド一覧チートシート を参照してください。 API を使用したセキュリティグループルールの設定に関する詳細については、 「API を使用した仮想サーバーインスタンスのセキュリティグループの設定」 を参照してください。

制限

  • 現在、ESPプロトコルパケットは、プロファイルが Gen2 設定されたインスタンスでのみサポートされています。 他のプロファイルが適用されているインスタンスおよびすべてのベアメタルサーバーでは、着信および発信のESPパケットは常に破棄されます。 VPC API を使用して ESP トラフィックに対するセキュリティグループルールを設定することは可能ですが、そのようなルールはプロファイル Gen2 を持つインスタンスにのみ影響します。 インスタンスプロファイルの世代間の混乱を避けるため、コンソール IBM Cloud ではESPプロトコルが選択肢として表示されません。 詳細については、 x86-64 インスタンス プロファイルを 参照してください。

始めに

開始するには、リソースに新しいセキュリティ・グループを作成するかどうかを決定し、 セキュリティ・グループを作成 します。

セキュリティー・グループのユース・ケース

セキュリティー・グループを作成することは、リソースとの間でネットワーク・トラフィック・パターンをフィルタリングするルールをユーザーが適用するための標準的な方法です。 以下のアクションを実行できるかどうかは、アカウントの許可レベルによって異なります。 アカウント権限について質問がある場合は、管理者にお問い合わせください。

ユース・ケース 1: リソースのデフォルト・セキュリティー・グループの変更

すべての VPC にはデフォルトのセキュリティー・グループがあります。これは、ユーザー用に作成されるセキュリティー・グループです。 そのデフォルト・セキュリティー・グループには、デフォルト・ルールもあります。 このデフォルト・ルールは、ルールを追加または削除してセキュリティー・グループの設定をカスタマイズする前に作成するセキュリティー・グループに割り当てられるデフォルト・ルールと同じです。

デフォルト・セキュリティー・グループは、新規セキュリティー・グループのデフォルト・ルールとは異なります。 デフォルトのセキュリティグループ上のルールと、新規セキュリティグループに割り当てられるデフォルトルールの両方をカスタマイズできます。

例えば、あなたが組織の一員であり、 アカウントのアカウントへのアクセス権を持つ誰かがデフォルトのセキュリティグループのルールを変更したと想像してください。 変更後、このルールは新しいセキュリティグループを作成した際にデフォルトで適用されるルールとは異なります。 チーム・メンバーは、非常にセキュリティー意識の高いお客様であり、インバウンドとアウトバウンドのすべてのネットワーク・トラフィックを拒否するようにデフォルトのセキュリティー・グループ設定を変更します。

この例では、リソースを作成すると、最初はVPCのデフォルトのセキュリティグループに割り当てられます。 このデフォルトのセキュリティグループのルールは、セキュリティ意識の高いチームメンバーが設定した拒否ルールにより、すべての受信および送信ネットワークトラフィックを拒否します。 その結果、新しいリソースへのトラフィックとそこから発信されるトラフィックには、同じ拒否動作が適用されます。

デフォルトのセキュリティグループルールに不満がある場合、解決策の一つは、カスタマイズされた設定を持つ別のセキュリティグループを作成し、それをリソースに適用することです。 もう 1 つの解決策は、デフォルト・セキュリティー・グループのルールを変更することです。 別のセキュリティグループをカスタマイズ設定で作成するのが最も簡単な解決策です。なぜなら、影響を与えたい単一のリソースに適用するルールを作成できるからです。 デフォルトのセキュリティグループのルールを変更すると、その変更は影響を与えたい対象リソースだけでなく、デフォルトのセキュリティグループに割り当てられている他のすべてのリソースにも適用されます。

デフォルトのセキュリティグループに作成する新規ルールは、デフォルトのセキュリティグループに割り当てられる現在および将来のすべてのリソースに適用されます。

デフォルトのセキュリティー・グループの更新について詳しくは、 デフォルトのセキュリティー・グループ・ルールの更新 を参照してください。

ユースケース2: プロビジョニング時のセキュリティグループとルールのカスタマイズ

以下の図は、新規リソースを作成するときに選択可能なカスタマイズ・オプションを示しています。 ユーザーがリソースを作成し、それをアタッチするセキュリティグループを指定する追加操作を行わない場合、その新規リソースはVPCのデフォルトセキュリティグループに割り当てられます。 このデフォルトのセキュリティグループは、デフォルトのセキュリティグループルールを継承するか、またはアカウントのメンバーによって事前に設定されたカスタムルールに従います。

ユーザーが新しいリソースを新しいセキュリティグループに割り当てることを選択した場合、新しいセキュリティグループは自動的にデフォルトのセキュリティグループルールに割り当てられます。 その後、ユーザーはそれ以上の操作を行わないか、ルールをカスタマイズして新しいセキュリティグループ用のカスタムセキュリティグループルールを作成するかを選択できます。 これらの新しい規則は、作成され、新しいセキュリティー・グループに割り当てられた新しいリソースにも適用されます。

新規リソース作成時のセキュリティグループとセキュリティグループルールカスタマイズオプション*新規リソース作成時の
グループとセキュリティグループルールカスタマイズオプション
新規リソース作成時のセキュリティグループとセキュリティグループルールカスタマイズオプション

ユース・ケース 3: セキュリティー・グループのメンバー間のトラフィックを許可する

セキュリティー・グループをセットアップするより一般的な方法は、IP アドレスとポートでフィルタリングする特定の規則を使用して、ターゲットとの間のトラフィックを制御することです。

セキュリティグループを設定するより動的な方法は、同じセキュリティグループに属する他のターゲットからのすべての着信トラフィックを許可することです。 セキュリティグループのメンバー間でトラフィックを許可する場合、セキュリティグループの現在のメンバーと新規メンバーのそれぞれに対して個別に権限を設定する必要はありません。 セキュリティグループからリソースが追加または削除されると、その権限はすべてのメンバーに適用されます。

たとえば、セキュリティグループにホストAとホストBが存在し、そこにホストCを追加することができます。 通常、ホスト C をセキュリティグループに追加した後、ホスト A とホスト B がホスト C との間でトラフィックを送受信できるようにするには、メンテナンスを実行する必要があります。

このプロセスを容易にするために、グループの別のメンバーからのトラフィックである限り、すべてのトラフィックを許可するルールを定義できます。 その後、グループからメンバーを追加または削除すると、ルールが自動的に変更され、グループのメンバー同士が相互にトラフィックを送信できるようになります。

以下は、セキュリティー・グループ内のルールを定義して、そのセキュリティー・グループのメンバー間のすべてのトラフィックを許可するための UI の説明です。

  1. ブラウザーから、 IBM Cloud コンソールを開きます。
  2. ナビゲーション メニューナビゲーション メニュー アイコン を選択し、 インフラストラクチャVPC アイコン > ネットワーク > セキュリティ グループをクリックします。
  3. セキュリティグループで、変更したいセキュリティグループオブジェクトを選択します。
  4. インバウンド規則テーブルで 「作成 +」 をクリックします。 「インバウンド・ルールの作成」 ウィンドウが表示されます。
  5. プロトコルセクションで、 TCP-UDP-ICMP を選択してください。
  6. 「ソース・タイプ」 セクションで、 「セキュリティー・グループ」 を選択します。
  7. 「作成」 をクリックして、これらの変更を適用します。