この記事では、Microsoft Azure Cloud Services (延長サポート) のアクセスを、指定された仮想ネットワークのみに制限する方法について説明します。 Azure Load Balancer を使用して 内部 (またはプライベート) ロード バランサーを作成し 他の仮想ネットワークまたはインターネット経由で通信を試みるクライアントをブロックする方法について説明します。
Load Balancer と Cloud Services の間の相互作用 (延長サポート)
Azure Load Balancer は、受信トラフィックを自動的に負荷分散し、さまざまなバックエンド サーバーにルーティングするサービスです。 Cloud Services (延長サポート) の場合、これらのサーバーは異なる WebRole インスタンスと WorkerRole インスタンスです。 ロード バランサーは、オープン システム相互接続 (OSI) システムのレイヤー 4 で動作します。
次の表では、Load Balancer の重要なコンポーネントについて詳しく説明します。
コンポーネント | 説明 |
---|---|
フロントエンド IP アドレス | フロントエンド IP アドレスは、Load Balancer が自身をクライアントに公開する方法です。 構成によっては、Load Balancer が複数のフロントエンド IP アドレスである場合があります。 さらに、パブリック フロントエンド IP アドレス、プライベート フロントエンド IP アドレス、またはその両方が存在する可能性があります。 |
バックエンド プール | バックエンド プールは、Load Balancer によってバックエンド サーバー インスタンスがグループ分けされる場所です。 Cloud Services の場合、Load Balancer はロールごとにバックエンド プールを作成します。 その後、Load Balancer は同じロールのインスタンスを同じバックエンド プールに追加します。 |
次の図は、パブリック インターネットのみに対して開かれているクラウド サービスで Load Balancer を構成する方法の例です。
Load Balancer は、クライアント要求を受信すると、次のアクションを実行して、トラフィックをルーティングするバックエンド インスタンスを決定します。
Load Balancer は、フロントエンド IP アドレスと受信要求のポートを確認する負荷分散規則を検証します。 すべての負荷分散規則で、フロントエンド IP アドレスと受信要求ポートの特定の組み合わせを構成することで、トラフィックをバックエンド プールにルーティングする方法を指定できます。 クラウド サービスには通常、パブリック IP アドレスが 1 つしかないため、負荷分散規則の主な違いはポート構成です。
負荷分散規則を検証した後、Load Balancer は、 5 タプル 規則を使用してトラフィックを分散。 この規則では、次の 5 つの異なる値のハッシュが適用されます。
- 発信元 IP
- 送信元ポート
- 宛先 IP
- 宛先ポート
- プロトコルの種類
クラウド サービスは HTTP 要求のみを処理し、パブリック IP アドレスは 1 つだけですか? その場合、同じクライアントから送信された要求は、常に同じバックエンド サーバー インスタンスによって処理されます。
内部ロード バランサーがアクセスを制限する方法
内部ロード バランサーを使用するようにクラウド サービスを構成すると、サービスにはパブリック ロード バランサーと内部ロード バランサーの両方が含まれます。 サーバーが特定の仮想ネットワークのみにアクセスできるようにするには、構成設定を変更する必要があります。
パブリック ロード バランサーをパブリック IP アドレスに公開しない場合、インターネット クライアントはパブリック ロード バランサーを見つけたり、パブリック ロード バランサーに要求を送信したりできなくなります。
このクラウド サービス ロード バランサーアーキテクチャの図を次に示します。
公開されていないパブリック ロード バランサーを使用してアクセス制限を実装する
単一の仮想ネットワークへのアクセスを制限するには、まず、 クラウド サービス用の内部ロード バランサー (クラシック) の作成を開始しましたを読み取ります。 詳細な手順については、次の手順で説明します。
Step 1 の小見出しの指示に従います。 この手順では、クラウド サービスのサービス構成 (.cscfg) ファイルを変更して、内部ロード バランサーのフロントエンド IP アドレスを含めます。 追加された XML コードは、内部 (パブリックではない) コード バランサー用の 1 つの
<LoadBalancers>
要素のみを含む<LoadBalancers>
コード ブロックです。 このブロックは、<NetworkConfiguration.
要素内の<AddressAssignments>
要素に従う必要があります。 次の項目を指定します。- 内部ロード バランサーの名前
- フロントエンド IP アドレスの種類 (
private
する必要があります) - 内部 IP アドレス
- IP アドレスが存在するサブネット
内部ロード バランサーのサブネットをロールのサブネットと同じにする必要はありません。 ただし、ロール サブネットの IP 範囲内で最後の IP アドレスを使用することをお勧めします。 これにより、内部ロード バランサー サブネットは、ネットワーク セキュリティ グループが使用するサブネット間のネットワーク トラフィック ブロックを回避できます。 このセットアップにより、バックエンド サーバー インスタンスのプライベート IP アドレスの不連続性も防止されます。
Step 2 の小見出しの指示に従います。 この手順では、クラウド サービスのサービス定義 (.csdef) ファイルを変更して、内部ロード バランサーの入力エンドポイントを含めます。 追加された XML コードは、
<Endpoints>
要素内の<InputEndpoint>
要素です。 この要素自体は、<WebRole>
または<WorkerRole>
要素内にあります。 追加されたコードは、次の項目を指定します。- 入力エンドポイントの名前
- プロトコルの種類
- バックエンド サーバー インスタンスとの通信に使用するローカル ポート番号
- 受信クライアント要求のポート番号 (ローカル ポート番号を使用することをお勧めします)
- サービス構成 (.cscfg) ファイルで指定した内部ロード バランサーの名前
サービス構成 (.cscfg) ファイルとサービス定義 (.csdef) ファイルを変更した後、プロジェクトを再デプロイします。
アクセス制限の設定を確認する
クラウド サービス (延長サポート) プロジェクトを再デプロイした後、次の手順に従ってアクセス制限を確認できます。
Azure portal で、 [リソース グループ] を検索して選択します。
リソース グループの一覧で、クラウド サービスを含むリソース グループの名前を選択します。 リソース グループの Overview ページが表示されます。 Resources タブの下に、次のリソースが表示されます。
- クラウド サービス (延長サポート)
- クラウド サービスへの唯一のアクセス権を持つ仮想ネットワーク
- パブリック IP アドレス
- パブリック ロード バランサー
- 内部ロード バランサー
Resourcesで、クラウド サービスの名前を選択します。 クラウド サービスの Overview ページで、 パブリック IP アドレス フィールドにパブリック IP アドレス リソースへのハイパーリンクが表示されていることを確認し、そのリンクを選択します。
パブリック IP アドレスの Overview ページの Essentials で、 IP アドレス フィールドに IP アドレス番号が含まれていないことを確認します。 パブリック ロード バランサーをパブリック IP アドレスに公開しないように、空の IP アドレス フィールドが設計に必要です。 パブリック ロード バランサーでは、パブリック IP アドレスをフロントエンド IP アドレスとして使用する必要がありますが、パブリック IP アドレス リソースでは、ここで実際の IP アドレスが構成されません。
前のページに戻すには、 リソース グループ 名前を選択し、内部ロード バランサーの名前を選択します。
ロード バランサーのメニュー ウィンドウで、前のセクションで構成した設定が正しく追加されたことを確認します。 これを行うには、 Settings 見出しの下に次の選択項目を指定します。
- フロントエンド IP の構成
- バックエンド プール
- 負荷分散規則
お問い合わせはこちらから
質問がある場合やヘルプが必要な場合は、サポート要求を作成するか、Azure コミュニティ サポートにお問い合わせください。 Azure フィードバック コミュニティに製品フィードバックを送信することもできます。