ネットワーク・ロード・バランサーとセキュリティー・グループの統合
IBM Cloud® の Network Load Balancer for VPC (NLB)では、 セキュリティグループを 割り当てることで、アプリケーションのセキュリティを強化することができます。
以下の情報は、プライベート パス ネットワーク ロード バランサーには適用されません。
セキュリティグループは、NLBインスタンスのセキュリティを確保するための便利な方法です。 ロードバランサーにセキュリティグループを関連付けることで、ロードバランサーのリスナーおよびターゲットとの間で送受信されるトラフィックを完全に制御できます。 ターゲットは、ロードバランサーをIPアドレスやCIDR範囲で特定する代わりに、自身のセキュリティグループ定義において、そのロードバランサーのセキュリティグループを送信元として指定するだけで済みます。 これにより、すべてのロードバランサー・アプライアンスからのトラフィックが、そのIPアドレスに関係なく自動的に許可されるようになります。
ネットワーク・ロード・バランサーにセキュリティー・グループが関連付けられていない場合、セキュリティー・グループ・ルールはすべてのトラフィックを許可し、フィルタリングは ( iptables ルールに従って) VSI レベルで行われます。
ネットワーク・トラフィック・ルール
以下の表は、パブリックおよびプライベートネットワークのロードバランサーにおける、インバウンドおよびアウトバウンドトラフィックに関するベストプラクティスを示しています。
パブリック・ネットワーク・ロード・バランサー
インバウンド・ルール
パブリックロードバランサーのリスナーポートへの、すべての送信元からのインバウンドトラフィックを許可するのが一般的です。 以下に例を示します。
| プロトコル | ソース・タイプ | ソース | 値 |
|---|---|---|---|
| TCP | IP アドレス | 0.0.0.0/0 |
Listener port |
ただし、着信トラフィックを制限する必要がある場合は、 209.173.53.167/20 のような送信元 CIDR を指定することができます。 これにより、そのIP範囲内のすべてのパブリックIPアドレスから、パブリックロードバランサーにアクセスできるようになります。 以下に例を示します。
| プロトコル | ソース・タイプ | ソース | 値 |
|---|---|---|---|
| TCP | IP アドレス | 209.173.53.167/20 |
Listener port |
アウトバウンド・ルール
ターゲットがセキュリティグループに所属しており、アウトバウンドルールで宛先として設定されていることを確認してください。 詳しくは、『セキュリティー・グループの概要』を参照してください。
| プロトコル | 宛先タイプ | 宛先 | 値 |
|---|---|---|---|
| TCP | セキュリティー・グループ | target |
target port |
| TCP | セキュリティー・グループ | target |
Health check port |
送信ルールを、ここに示されているものよりも緩く設定することも可能です(たとえば、どの宛先へのトラフィックもすべて許可するように設定できます)。 ただし、セキュリティー上の理由から、これは推奨されません。
プライベート・ネットワーク・ロード・バランサー
インバウンド・ルール
| プロトコル | ソース・タイプ | ソース | 値 |
|---|---|---|---|
| TCP | IP アドレス | Subnet CIDR or VPC security group |
Listener port |
プライベートロードバランサーのインバウンドルールを、自社のワークロードに限定するのは一般的な慣行です。 特定のサブネット CIDR からのソースまたはソース・デバイスが属するセキュリティー・グループを必ず指定してください。 特定のCIDRを使用することが推奨されますが、個別のIPアドレスでも問題ありません。 詳しくは、『セキュリティー・グループの概要』を参照してください。
アウトバウンド・ルール
| プロトコル | 宛先タイプ | 宛先 | 値 |
|---|---|---|---|
| TCP | セキュリティー・グループ | Target security group |
Target port |
| TCP | セキュリティー・グループ | Target security group |
Health check port(ターゲット・ポートと異なる場合) |
ターゲットがセキュリティグループに所属しており、アウトバウンドルールで宛先として設定されていることを確認してください。 詳しくは、『セキュリティー・グループの概要』を参照してください。
また、ターゲットは、ロードバランサーのホスト名を解決するために、DNSリゾルバーへの接続が可能である必要があります。 これは、ロード・バランサーへのアクセスが DNS 名を使用して行われるためです。
ロード・バランサーのプロビジョニング時のセキュリティー・グループの関連付け
ネットワークロードバランサーを作成する際、最大5つのセキュリティグループを関連付けることができます。 ロード・バランサーの作成時にセキュリティー・グループを指定しない場合は、VPC のデフォルトのセキュリティー・グループが使用されます。
セキュリティー・グループを 1 つも選択しない場合は、デフォルトのセキュリティー・グループ・ルールを更新して、新しく作成したネットワーク・ロード・バランサーでのトラフィックの中断を最小限にする必要があります。
前提条件: セキュリティー・グループおよびルールの構成
NLB に接続するセキュリティー・グループが作成済みであることを確認します。 また、そのルールがロード・バランサー・トラフィックに対して構成されていることも確認します。 セキュリティー・グループを作成する必要がある場合は、以下の手順を実行します。
あるいは、 IBM Cloud VPC API を使用してセキュリティグループを作成することもできます。
UI を使用してセキュリティー・グループを作成するには、以下のようにします。
-
お使いのブラウザで、 IBM Cloud コンソールを開き、 アカウントにログインしてください。
-
ナビゲーションメニューの
選択し、「 Infrastructure
> 「 Network」 > 「 Security groups 」の順にクリックします。
-
「作成」 をクリックします。
-
セキュリティー・グループに固有の名前を指定します。
-
セキュリティー・グループの VPC を選択します。 セキュリティー・グループは、ロード・バランサーと同じ VPC 内に作成する必要があります。
-
**「追加」**をクリックして、セキュリティー・グループへのまたはセキュリティー・グループからのどのようなタイプのトラフィックが許可されるかを定義する、インバウンド・ルールとアウトバウンド・ルールを構成します。 ルールごとに、以下の情報を入力します。
- トラフィックが許可される CIDR ブロックまたは IP アドレスを指定します。 あるいは、同じ VPC 内のセキュリティー・グループを指定して、その選択されたセキュリティー・グループに関連付けるすべてのソースとの間のトラフィックを許可することができます。
- ルールが適用されるプロトコルおよびポートを選択します。 ネットワーク・ルールに関するベスト・プラクティスについては、ネットワーク・トラフィック・ルールを参照してください。
ヒント:
- ルールは、追加された順序に関係なく、すべて評価されます。
- ルールはステートフルです。つまり、許可されたトラフィックに応答して返されるトラフィックは自動的に許可されます。 例えば、ポート 80 のインバウンド TCP トラフィックを許可するルールを作成すると、そのルールで、発信元ホストに対する応答であるポート 80 のアウトバウンド TCP トラフィックも許可されるので、ルールをもう 1 つ作成する必要はありません。
-
オプション: このセキュリティー・グループを他のインスタンスに適用する予定の場合は、インターフェースを編集します。 セキュリティー・グループの関連付けは、ロード・バランサー・セクションで行います。
-
ルールの作成が終了したら、**「セキュリティー・グループの作成」**をクリックします。
セキュリティー・グループの例
たとえば、 TCP リスナー( TCP ポート80)に対して、ポート80のすべてのトラフィックを許可する以下のインバウンドルールを設定します。
| プロトコル | ソース・タイプ | ソース | 値 |
|---|---|---|---|
| TCP | 任意 | 0.0.0.0/0 |
ポート 80 |
次に、 TCP からのトラフィックがターゲットに到達できるように、送信ルールを設定します:
| プロトコル | 宛先タイプ | 宛先 | 値 |
|---|---|---|---|
| TCP | 任意 | 10.11.12.13/32 (宛先IPアドレス) |
80 (宛先ポート) |
| TCP | 任意 | 10.11.12.14/32 (宛先IPアドレス) |
80 (ヘルスチェックの対象ポート) |
手順:NLBの作成時にセキュリティグループを割り当てる
ネットワーク・ロード・バランサーの作成 時にセキュリティー・グループを接続するには、以下の手順を実行します。
- お使いのブラウザで、 IBM Cloud コンソールを開き、 アカウントにログインしてください。
- ナビゲーションメニューの
選択し、 インフラストラクチャ
> ネットワーク > ロードバランサーをクリックします。
- 「作成」 をクリックします。
- 必要に応じて、名前、VPC、タイプ、サブネット、リスナーおよびプールを構成します。
- セキュリティグループテーブルから、関連付けたいセキュリティグループのチェックボックスを選択してください。
- **「作成」**をクリックして、ロード・バランサーをプロビジョンします。
セキュリティー・グループ・ルールで、ロード・バランサー・トラフィックが許可されていることを確認します。 セキュリティー・グループで、リスナー、プール、ヘルス・チェックの各ポートが許可されていることを確認します。
セキュリティー・グループの関連付けおよび切り離し
既存のロード・バランサーにセキュリティー・グループを関連付けるには、以下の手順を実行します。
07 August 2023 より前に作成されたロードバランサーにはセキュリティグループが割り当てられておらず、すべての受信および送信トラフィックが許可されています。 セキュリティー・グループが存在しないロード・バランサーにセキュリティー・グループを接続した場合、そのセキュリティー・グループを削除することはできません。 以前の「すべてのインバウンド・トラフィックとアウトバウンド・トラフィックを許可する」動作に戻すには、すべてのインバウンド・トラフィックとアウトバウンド・トラフィックを許可するためのルールに、セキュリティー・グループを関連付けます。
ただし、この規則は本質的に安全ではないため、推奨されません。
- お使いのブラウザで、 IBM Cloud コンソールを開き、 アカウントにログインしてください。
- ナビゲーションメニューの
選択し、 インフラストラクチャ
> ネットワーク > ロードバランサーをクリックします。
- ロード・バランサーのリストから、ロード・バランサーを選択してその詳細ページを表示します。
- **「接続されたセキュリティー・グループ」**タブをクリックして、関連付けられたセキュリティー・グループを表示します。
- 1 つ以上のセキュリティー・グループを関連付けるには、**「アタッチ」**をクリックします。 NLBにアタッチするセキュリティグループは、最大5つまで選択できます。
- 関連付けるセキュリティー・グループを選択します。
- **「アタッチ」**をクリックします。
ロード・バランサーからセキュリティー・グループを切り離すには、以下の手順を実行します。
- お使いのブラウザで、 IBM Cloud コンソールを開き、 アカウントにログインしてください。
- ナビゲーションメニューの
選択し、 インフラストラクチャ
> ネットワーク > ロードバランサーをクリックします。
- ロード・バランサーのリストから、ロード・バランサーを選択してその詳細ページを表示します。
- **「接続されたセキュリティー・グループ」**タブをクリックして、関連付けられたセキュリティー・グループを表示します。
- セキュリティー・グループを切り離すには、セキュリティー・グループの「アクション」メニュー
をクリックします。
- **「デタッチ」**をクリックします。