アプリケーション・ロード・バランサーとセキュリティー・グループの統合
IBM Cloud® Application Load Balancer for VPC (ALB) では、アプリケーションのセキュリティーを強化するために、セキュリティー・グループを関連付けることができます。
セキュリティー・グループは、ALB インスタンスを保護するための便利な方法です。 ロード・バランサーに関連付けられたセキュリティー・グループを使用すると、ロード・バランサーのリスナーとそのバックエンド・ターゲットの間のインバウンド・トラフィックとアウトバウンド・トラフィックを完全に制御できます。 また、この機能は、ロード・バランサーのバックエンド・ターゲットのセキュリティー態勢を固めるのに役立ちます。 ロード・バランサーをその IP アドレスまたは CIDR 範囲を使用して識別する代わりに、バックエンド・ターゲットでは、ロード・バランサーのセキュリティー・グループをその独自のセキュリティー・グループ定義のソースとして単純に使用できます。 これにより、すべてのロード・バランサー・アプライアンスからのトラフィックは、その IP アドレスに関係なく自動的に許可されます。
ネットワーク・トラフィック・ルール
次の表に、パブリックとプライベートの両方のアプリケーション・ロード・バランサーについて、インバウンド・トラフィックおよびアウトバウンド・トラフィックのベスト・プラクティスを示します。
パブリック・アプリケーション・ロード・バランサー
インバウンド・ルール
プロトコル | ソース・タイプ | ソース | 値 |
---|---|---|---|
TCP | IP アドレス | 0.0.0.0/0 | Listener port |
一般的なユース・ケースでは、通常、すべてのソースからパブリック・ロード・バランサー上のリスナー・ポートへのインバウンド・トラフィックは許可されます。
プロトコル | ソース・タイプ | ソース | 値 |
---|---|---|---|
TCP | IP アドレス | 209.173.53.167/20 | Listener port |
ただし、要件でインバウンド・トラフィックを制限する必要がある場合は、ソース CIDR (209.173.53.167/20
など) を指定できます。 これにより、IP 範囲内のすべてのパブリック IP アドレスがパブリック・ロード・バランサーに到達できるようになります。
アウトバウンド・ルール
プロトコル | 宛先タイプ | 接続先 | 値 |
---|---|---|---|
TCP | セキュリティー・グループ | Back-end target |
Back-end target port |
TCP | セキュリティー・グループ | Back-end target |
Health check port |
バックエンド・ターゲットがセキュリティー・グループ内にあり、アウトバウンド・ルールで宛先として構成されていることを確認してください。 ネストされたセキュリティー・グループを使用すると、ALB で、バックエンド・ターゲットおよびヘルス・チェック・ポートへのアウトバウンド・トラフィックのみを許可できます。
アウトバウンド・ルールは、示されている許容範囲よりも広くなるように構成できます (あらゆる宛先へのすべてのトラフィックを許可するなど)。 ただし、セキュリティー上の理由から、これはお勧めしません。
プライベート・アプリケーション・ロード・バランサー
インバウンド・ルール
プロトコル | ソース・タイプ | ソース | 値 |
---|---|---|---|
TCP | IP アドレス | Subnet CIDR or VPC security group |
Listener port |
通常、プライベート・ロード・バランサーのインバウンド・ルールは、独自のワークロードに制限します。 特定のサブネット CIDR からのソースまたはソース・デバイスが属するセキュリティー・グループを必ず指定してください。 特定の CIDR またはネストされたセキュリティー・グループを使用することをお勧めします。ただし、個々の IP アドレスも使用できます。
ネストされたセキュリティー・グループは、クライアントが同じ VPC 内に存在する場合だけの選択肢です。 クライアントが異なる VPC またはオンプレミスにあり、ロード・バランサーの VPC に Transit Gateway または Direct Link を介して接続されている場合は、IP アドレスまたは CIDR を使用して、クライアントを識別する必要があります。
アウトバウンド・ルール
プロトコル | 宛先タイプ | 接続先 | 値 |
---|---|---|---|
TCP | セキュリティー・グループ | Back-end target security group |
Back-end target port |
TCP | セキュリティー・グループ | Back-end target security group |
Health check port (バックエンド・ターゲット・ポートと異なる場合) |
バックエンド・ターゲットがセキュリティー・グループ内にあり、アウトバウンド・ルールで宛先として構成されていることを確認してください。 ネストされたセキュリティー・グループを使用すると、ALB で、バックエンド・ターゲットおよびヘルス・チェック・ポートへのアウトバウンド・トラフィックのみを許可できます。
また、ロード・バランサーの名前を解決するには、バックエンド・ターゲットが DNS リゾルバーに接続されている必要があります。 これは、ロード・バランサーへのアクセスが DNS 名を使用して行われるためです。
ロード・バランサーのプロビジョニング時のセキュリティー・グループの関連付け
アプリケーション・ロード・バランサーの作成時に、最大 5 個のセキュリティー・グループを関連付けることができます。 ロード・バランサーの作成時にセキュリティー・グループを指定しない場合は、VPC のデフォルトのセキュリティー・グループが使用されます。
セキュリティー・グループを 1 つも選択しない場合は、新しく作成されるアプリケーション・ロード・バランサーでのロード・バランサー・トラフィックの中断が最小限に抑えられるように、デフォルトのセキュリティー・グループのルールを更新することをお勧めします。
前提条件: セキュリティー・グループおよびルールの構成
ALB に関連付けるセキュリティー・グループが存在することを確認します。 また、そのルールがロード・バランサー・トラフィックに対して構成されていることも確認します。 セキュリティー・グループを作成する必要がある場合は、以下の手順を実行します。 または、IBM Cloud VPC APIDOCS を使用して、セキュリティー・グループを作成することもできます。
UI を使用してセキュリティー・グループを作成するには、以下のようにします。
-
ブラウザから、 IBM Cloud コンソールを開き、アカウントにログインします。
-
ナビゲーションメニューの
選択し、「 Infrastructure
> 「 Network」 > 「 Security groups 」の順にクリックします。
-
「作成」 をクリックします。
-
セキュリティー・グループに固有の名前を指定します。
-
セキュリティー・グループの VPC を選択します。 セキュリティー・グループは、ロード・バランサーと同じ VPC 内に作成する必要があります。
-
**「追加」**をクリックして、セキュリティー・グループへのまたはセキュリティー・グループからのどのようなタイプのトラフィックが許可されるかを定義する、インバウンド・ルールとアウトバウンド・ルールを構成します。 ルールごとに、以下の情報を入力します。
- トラフィックが許可される CIDR ブロックまたは IP アドレスを指定します。 あるいは、同じ VPC 内のセキュリティー・グループを指定して、その選択されたセキュリティー・グループに関連付けるすべてのソースとの間のトラフィックを許可することができます。
- ルールが適用されるプロトコルおよびポートを選択します。 ネットワーク・ルールに関するベスト・プラクティスについては、ネットワーク・トラフィック・ルールを参照してください。
ヒント:
- 追加される順序にかかわらず、すべてのルールが評価されます。
- ルールはステートフルです。つまり、許可されたトラフィックに応答して返されるトラフィックは自動的に許可されます。 例えば、ポート 80 のインバウンド TCP トラフィックを許可するルールを作成すると、そのルールで、発信元ホストに対する応答であるポート 80 のアウトバウンド TCP トラフィックも許可されるので、ルールをもう 1 つ作成する必要はありません。
-
オプション: このセキュリティー・グループを他のインスタンスに適用する予定の場合は、インターフェースを編集します。 セキュリティー・グループの関連付けは、ロード・バランサー・セクションで行います。
-
ルールの作成が終了したら、**「セキュリティー・グループの作成」**をクリックします。
セキュリティー・グループの例
例として、HTTP リスナーのポート 80 (TCP ポート 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 (バックエンド・ターゲット・ヘルス・チェック・ポート) |
手順: ALB 作成時のセキュリティー・グループの関連付け
アプリケーション・ロード・バランサーの作成時にセキュリティー・グループを関連付けるには、以下の手順を実行します。
- ブラウザから、 IBM Cloud コンソールを開き、アカウントにログインします。
- ナビゲーションメニューの
選択し、 インフラストラクチャ
> ネットワーク > ロードバランサーをクリックします。
- 「作成」 をクリックします。
- 必要に応じて、名前、VPC、タイプ、サブネット、リスナーおよびプールを構成します。
- セキュリティー・グループ・テーブルから、関連付けるセキュリティー・グループのチェック・ボックスを選択します。
- **「作成」**をクリックして、ロード・バランサーをプロビジョンします。
セキュリティー・グループ・ルールで、ロード・バランサー・トラフィックが許可されていることを確認します。 セキュリティー・グループで、リスナー、プール、ヘルス・チェックの各ポートが許可されていることを確認します。
セキュリティー・グループの関連付けおよび切り離し
既存のロード・バランサーにセキュリティー・グループを関連付けるには、以下の手順を実行します。
2021 年 2 月 25 日より前に作成されたロード・バランサーには、セキュリティー・グループが関連付けられておらず、すべてのインバウンド・トラフィックおよびアウトバウンド・トラフィックが許可されます。 セキュリティー・グループが存在しないロード・バランサーにセキュリティー・グループを関連付けると、セキュリティー・グループのない状態に戻すことはできなくなります。 以前の「すべてのインバウンド・トラフィックとアウトバウンド・トラフィックを許可する」動作に戻すには、すべてのインバウンド・トラフィックとアウトバウンド・トラフィックを許可するためのルールに、セキュリティー・グループを関連付けます。 ただし、このようなルールは、より制限的なセキュリティー・グループを設定する場合と比較して本質的に安全性が低いため、お勧めしません。
- ブラウザから、 IBM Cloud コンソールを開き、アカウントにログインします。
- ナビゲーションメニューの
選択し、 インフラストラクチャ
> ネットワーク > ロードバランサーをクリックします。
- ロード・バランサーのリストから、ロード・バランサーを選択してその詳細ページを表示します。
- **「接続されたセキュリティー・グループ」**タブをクリックして、関連付けられたセキュリティー・グループを表示します。
- 1 つ以上のセキュリティー・グループを関連付けるには、**「アタッチ」**をクリックします。 ALB に関連付けるセキュリティー・グループは最大 5 つまで選択できます。
- 関連付けるセキュリティー・グループを選択します。
- **「アタッチ」**をクリックします。
ロード・バランサーからセキュリティー・グループを切り離すには、以下の手順を実行します。
- ブラウザから、 IBM Cloud コンソールを開き、アカウントにログインします。
- ナビゲーションメニューの
選択し、 インフラストラクチャ
> ネットワーク > ロードバランサーをクリックします。
- ロード・バランサーのリストから、ロード・バランサーを選択してその詳細ページを表示します。
- **「接続されたセキュリティー・グループ」**タブをクリックして、関連付けられたセキュリティー・グループを表示します。
- セキュリティー・グループを切り離すには、セキュリティー・グループの「アクション」メニュー
をクリックします。
- **「デタッチ」**をクリックします。