AKS クラスター プールとクラスター上の HDInsight からのネットワーク トラフィックを制御する
大事な
AKS 上の Azure HDInsight は、2025 年 1 月 31 日に廃止されました。 このお知らせ を通じて、について詳しく学びましょう。
ワークロードの突然の終了を回避するには、ワークロードを Microsoft Fabric または同等の Azure 製品 に移行する必要があります。
大事な
この機能は現在プレビュー段階です。 Microsoft Azure プレビューの 追加使用条件 には、ベータ版、プレビュー版、または一般公開されていない Azure 機能に適用される、より多くの法的条件が含まれています。 この特定のプレビューの詳細については、AKS プレビュー情報 Azure HDInsightを参照してください。 ご質問や機能の提案については、AskHDInsight に詳細を記載した要求を送信し、Azure HDInsight Community をフォローして最新の更新情報を受け取ってください。
AKS 上の HDInsight は、Azure Kubernetes Service (AKS) 上で実行されるマネージド サービスとしてのプラットフォーム (PaaS) です。 AKS 上の HDInsight を使用すると、コンテナーの管理と監視のオーバーヘッドなしで、Apache Spark™、Apache Flink®️、Trino などの一般的な Open-Source Analytics ワークロードをデプロイできます。
既定では、AKS クラスター上の HDInsight では、ノードのネットワーク インターフェイスから宛先に到達できる場合、クラスターから任意の宛先への送信ネットワーク接続が許可されます。 つまり、クラスター リソースは、インターネットまたは仮想ネットワーク上の任意のパブリックまたはプライベート IP アドレス、ドメイン名、または URL にアクセスできます。
ただし、一部のシナリオでは、セキュリティ上のコンプライアンス上の理由から、クラスターからのエグレス トラフィックを制御または制限したい場合があります。
たとえば、次のようなことをしてみてください。
クラスターが悪意のあるサービスや不要なサービスにアクセスできないようにします。
送信トラフィックにネットワーク ポリシーまたはファイアウォール規則を適用します。
トラブルシューティングまたはコンプライアンスの目的で、クラスターからのエグレス トラフィックを監視または監査します。
エグレス トラフィックを制御する方法とツール
AKS クラスター上の HDInsight からエグレス トラフィックがどのように流れるかを管理するためのさまざまなオプションとツールがあります。 これらの一部はクラスター プール レベルで設定できます。その他の設定はクラスター レベルで行うことができます。
ロードバランサーを使ったアウトバウンド接続。 このエグレス パスを使用してクラスター プールをデプロイすると、パブリック IP アドレスがプロビジョニングされ、ロード バランサー リソースに割り当てられます。 カスタム仮想ネットワーク (VNET) は必要ありません。ただし、強くお勧めします。 カスタム VNET 上で Azure Firewall またはネットワーク セキュリティ グループ (NSG) を使用して、ネットワークから出るトラフィックを管理できます。
ユーザー定義ルーティングのアウトバウンド。 このエグレス パスを使用してクラスター プールをデプロイすると、ユーザーは Azure Firewall/NAT ゲートウェイとカスタム ルート テーブルを使用して、サブネット レベルでエグレス トラフィックを管理できます。 このオプションは、カスタム VNET を使用する場合にのみ使用できます。
プライベート AKS を有効にします。 クラスター プールでプライベート AKS を有効にすると、AKS API サーバーに内部 IP アドレスが割り当てられ、パブリックにアクセスできなくなります。 AKS ノード プール (クラスター) 上の AKS API サーバーと HDInsight の間のネットワーク トラフィックは、プライベート ネットワーク上にとどまります。
プライベート イングレス クラスター。 プライベート イングレス オプションを有効にしてクラスターをデプロイすると、パブリック IP は作成されません。また、クラスターには同じ VNET 内のクライアントからのみアクセスできます。 あなたは、AKS の公開依存機能であるパブリック HDInsight へのアウトバウンド接続を確立するために、NAT ゲートウェイやファイアウォールで提供される NAT など、独自の NAT ソリューションを提供する必要があります。
以降のセクションでは、各メソッドについて詳しく説明します。
ロード バランサーを使用したアウトバウンド
ロード バランサーは、AKS で割り当てられたパブリック IP 上の HDInsight 経由のエグレスに使用されます。 クラスター プールでロード バランサーのアウトバウンド タイプを構成すると、AKS 上の HDInsight によって作成されたロード バランサーからエグレスが予想されます。
ロード バランサー構成を使用して送信を構成するには、Azure portal を使用します。
この構成を選択すると、AKS 上の HDInsight は、ロード バランサー リソースに割り当てるクラスター エグレス & 用にプロビジョニングされたパブリック IP アドレスの作成を自動的に完了します。
AKS 上の HDInsight によって作成されたパブリック IP であり、AKS によって管理されるリソースです。つまり、AKS はそのパブリック IP のライフサイクルを管理し、パブリック IP リソースに対してユーザーアクションを直接必要としません。
クラスターが作成されると、特定のイングレス パブリック IP も作成されます。
クラスターへの要求の送信を許可するには、トラフィック 許可リストをする必要があります。 また、NSG で特定の ルールを構成して、粒度の粗い制御を行うこともできます。
ユーザー定義ルーティングでのアウトバウンド
手記
userDefinedRouting
送信の種類は高度なネットワーク シナリオであり、開始する前に適切なネットワーク構成が必要です。
クラスター プールの作成後に送信の種類を変更することはサポートされていません。
userDefinedRouting が設定されている場合、AKS 上の HDInsight はエグレス パスを自動的に構成しません。 エグレスセットアップはユーザーが行う必要があります。
AKS クラスター上の HDInsight を、以前に構成されたサブネットを持つ既存の仮想ネットワークにデプロイし、明示的なエグレスを確立する必要があります。
このアーキテクチャでは、ファイアウォール、ゲートウェイ、プロキシなどのアプライアンスにエグレス トラフィックを明示的に送信する必要があるため、Standard ロード バランサーまたはアプライアンスに割り当てられたパブリック IP でネットワーク アドレス変換 (NAT) を処理できます。
AKS 上の HDInsight では、上記のセクションで説明されているロード バランサータイプのクラスターとは異なり、送信パブリック IP アドレスやアウトバウンドルールは構成されません。 あなたの UDR がエグレス トラフィックの唯一のソースです。
受信トラフィックの場合は、プライベート クラスターを選択する要件 (AKS コントロール プレーン/API サーバー上のトラフィックをセキュリティで保護するため) に基づいて選択し、パブリックまたは内部のロード バランサー ベースのトラフィックを使用するために、各クラスター図形で使用可能なプライベート イングレス オプションを選択する必要があります。
userDefinedRouting
を使用した送信のためのクラスター プール作成
AKS クラスター プールで HDInsight を使用し、エグレス パスとして userDefinedRouting (UDR) を選択した場合、標準ロード バランサーはプロビジョニングされません。
userDefinedRouting
機能するには、送信リソースのファイアウォール規則を設定する必要があります。
大事な
UDR エグレス パスには、0.0.0.0/0 のルートと、ルート テーブル内のファイアウォールまたは NVA の次ホップ先が必要です。 ルート テーブルには、インターネットに対する既定の 0.0.0.0/0 が既に設定されています。 Azure には SNAT のパブリック IP アドレスが必要であるため、このルートを追加するだけでは送信インターネット接続を取得できません。 AKS では、インターネットを指す 0.0.0.0/0 ルートではなく、ゲートウェイや NVA などを指す 0.0.0.0/0 ルートを作成していないことを確認します。UDR を使用する場合、受信要求のロード バランサーパブリック IP アドレスは、loadbalancer 型のサービスを構成した場合にのみ作成されます。 UDR エグレス パスを使用する場合、AKS 上の HDInsight は送信要求のパブリック IP アドレスを作成しません。
次の手順では、AKS サービス上の HDInsight からバックエンド Azure リソースまたはその他のネットワーク リソースへの送信トラフィックを Azure Firewall でロックダウンする方法について説明します。 この構成は、データ流出や悪意のあるプログラム移植のリスクを防ぐのに役立ちます。
Azure Firewall を使用すると、送信トラフィックをより細かいレベルで制御し、Microsoft サイバー セキュリティからのリアルタイムの脅威インテリジェンスに基づいてトラフィックをフィルター処理できます。 サブスクリプションと仮想ネットワーク全体で、アプリケーションとネットワークの接続ポリシーを一元的に作成、適用、ログに記録できます。
ファイアウォール規則の設定と送信接続のテストの例を次に示します。
ファイアウォール規則を構成し、送信接続を確認する方法の例を次に示します。
必要なファイアウォール サブネットを作成する
統合仮想ネットワークにファイアウォールをデプロイするには、AzureFirewallSubnet または選択した名前という名前のサブネットが必要です。
ファイアウォールをデプロイし、その IP を取得する
Azure portal メニューまたは [ホーム] ページで、[リソース 作成] を選択します。
検索ボックスにファイアウォールを入力し、Enter キー を押。
[ファイアウォール 選択し、[の作成]選択します。
ファイアウォールの作成 ページで、次の表に示すようにファイアウォールを構成します。
設定 価値 リソース グループ 統合仮想ネットワークと同じリソース グループ。 名前 選択した名前 地域 統合仮想ネットワークと同じリージョン。 ファイアウォール ポリシー [新規追加] を選択して作成します。 仮想ネットワーク 統合仮想ネットワークを選択します。 パブリック IP アドレス 既存のアドレスを選択するか、[新規追加] を選択してアドレスを作成します。 レビュー + 作成をクリックします。
「再作成」(Create again) を選択します。 このプロセスのデプロイには数分かかります。
デプロイが完了したら、リソース グループに移動し、ファイアウォールを選択します。
ファイアウォールの [の概要] ページで、プライベート IP アドレスをコピーします。 プライベート IP アドレスは、仮想ネットワークのルーティング規則で次ホップ アドレスとして使用されます。
すべてのトラフィックをファイアウォールにルーティングする
仮想ネットワークを作成すると、Azure によって各サブネットの既定のルート テーブルが自動的に作成され、システム の既定のルートがテーブルに追加されます。 この手順では、すべてのトラフィックをファイアウォールにルーティングするユーザー定義ルート テーブルを作成し、統合仮想ネットワーク内の App Service サブネットに関連付けます。
Azure portal メニューで、[すべてのサービス] 選択するか、任意のページから [すべてのサービス を検索して選択します。
[ネットワーク] で、[ルート テーブル] を選択します。
[を選択してを追加します]
次の例のようにルート テーブルを構成します。
作成したファイアウォールと同じリージョンを選択してください。
を選択してレビューし、を作成します。
を選択してを作成します。
デプロイが完了したら、[リソースに移動]を選択します。
左側のナビゲーションから[ルート] > [追加]を選択します。
次の表に示すように、新しいルートを構成します。
設定 価値 宛先の種類 IP アドレス 宛先 IP アドレス/CIDR 範囲 0.0.0.0/0 次ホップの種類 仮想アプライアンス ネクストホップ アドレス コピーしたファイアウォールのプライベート IP アドレス 左側のナビゲーションから、[サブネット] [関連付け] > [] を選択します。
仮想ネットワークで、統合仮想ネットワークを選択します。
サブネットで、使用する AKS サブネット上の HDInsight を選択します。
[OK]を選択します。
ファイアウォール ポリシーを構成する
AKS サブネット上の HDInsight からの送信トラフィックは、統合された仮想ネットワークを介してファイアウォールにルーティングされるようになりました。 送信トラフィックを制御するには、ファイアウォール ポリシーにアプリケーション規則を追加します。
ファイアウォールの概要ページに移動し、そのファイアウォール ポリシーを選択します。
ファイアウォール ポリシー ページの左側のナビゲーションから、ネットワークとアプリケーションの規則を追加します。 たとえば、[ネットワーク ルール] > [ルール コレクションの追加] を選択します。
ルールで、送信元アドレスとしてサブネットを持つネットワーク規則を追加し、FQDN 宛先を指定します。 同様に、アプリケーション ルールを追加します。
- ここに示された の送信トラフィックルールをに追加する必要があります。 クラスターが機能するために必要なトラフィックを許可するためのアプリケーション規則とネットワーク規則を追加する方法については、このドキュメント を参照してください。この規則 はトラフィックを許可します。 (clusterPool の作成後に AKS ApiServer を追加する必要があるのは、clusterPool の作成後にのみ AKS ApiServer を取得できるためです)。
- また、クラスターがアクセスするために、同じサブネット内の依存リソースに プライベート エンドポイントを追加することもできます (ストレージなど)。
[を選択し、を追加]します。
パブリック IP が作成されているかどうかを確認する
ファイアウォール規則を設定すると、クラスター プールの作成時にサブネットを選択できます。
クラスター プールが作成されると、MC グループでパブリック IP が作成されていないことを確認できます。
大事な
Outbound with userDefinedRouting
エグレス パスを使用してクラスター プールのセットアップでクラスターを作成する前に、クラスター プールに一致する AKS クラスター (仮想ネットワーク、ルート テーブル、NSG (使用されている場合) など、ルーティングの定義に使用されるネットワーク リソースに対する Network Contributor
ロール) を付与する必要があります。 ロール を割り当てる方法の詳細については、こちらを参照してください
手記
UDR エグレス パスとプライベート イングレス クラスターを使用してクラスター プールをデプロイすると、AKS 上の HDInsight によってプライベート DNS ゾーンが自動的に作成され、エントリがマップされ、クラスターにアクセスするための FQDN が解決されます。
プライベート AKS を使用したクラスター プールの作成
プライベート AKS では、コントロール プレーンまたは API サーバーには、RFC1918 - プライベート インターネット ドキュメントのアドレス割り当てで定義されている内部 IP アドレスがあります。 プライベート AKS のこのオプションを使用すると、API サーバーと AKS ワークロード クラスター上の HDInsight 間のネットワーク トラフィックがプライベート ネットワークのみに残ることを確認できます。
プライベート AKS クラスターをプロビジョニングすると、AKS は既定でプライベート DNS ゾーンを持つプライベート FQDN と、Azure パブリック DNS の対応する A レコードを持つ追加のパブリック FQDN を作成します。 エージェント ノードは、プライベート DNS ゾーンのレコードを引き続き使用して、API サーバーとの通信用にプライベート エンドポイントのプライベート IP アドレスを解決します。
AKS 上の HDInsight では、プライベート イングレスのために、AKS で作成されたマネージド グループ上の HDInsight のプライベート DNS ゾーンにレコードが自動的に挿入されます。
プライベート イングレスを使用するクラスター
AKS で HDInsight を使用してクラスターを作成すると、誰でもアクセスできるパブリック FQDN と IP アドレスが含まれます。 プライベート イングレス機能を使用すると、クライアントと AKS クラスター上の HDInsight の間でデータを送受信できるのはプライベート ネットワークのみであることを確認できます。
手記
この機能を使用すると、AKS 上の HDInsight によって、イングレス用のプライベート DNS ゾーンに A レコードが自動的に作成されます。
この機能により、クラスターへのパブリック インターネット アクセスが禁止されます。 クラスターは、内部ロード バランサーとプライベート IP を取得します。 AKS 上の HDInsight では、クラスター プールが作成したプライベート DNS ゾーンを使用して、クラスター仮想ネットワークを接続し、名前解決を行います。
各プライベート クラスターには、パブリック FQDN とプライベート FQDN の 2 つの FQDN が含まれています。
公開FQDN: {clusterName}.{clusterPoolName}.{subscriptionId}.{region}.hdinsightaks.net
パブリック FQDN はサブドメインを持つ CNAME にのみ解決できるため、FQDN を最終的に解決してプライベート IP アドレスを修正するには、適切な Private DNS zone setting
で使用する必要があります。
プライベート DNS ゾーンは、プライベート FQDN を IP (privatelink.{clusterPoolName}.{subscriptionId})
に解決できる必要があります。
手記
AKS 上の HDInsight は、クラスター プールの仮想ネットワークにプライベート DNS ゾーンを作成します。 クライアント アプリケーションが同じ仮想ネットワーク内にある場合は、プライベート DNS ゾーンをもう一度構成する必要はありません。 別の仮想ネットワークでクライアント アプリケーションを使用している場合は、仮想ネットワーク ピアリングを使用し、クラスター プール仮想ネットワーク内のプライベート DNS ゾーンにバインドするか、仮想ネットワーク内のプライベート エンドポイントとプライベート DNS ゾーンを使用して、A レコードをプライベート エンドポイントのプライベート IP に追加する必要があります。
プライベート FQDN: {clusterName}.privatelink.{clusterPoolName}.{subscriptionId}.{region}.hdinsightaks.net
プライベート FQDN は、プライベート イングレスのみが有効になっているクラスターに割り当てられます。 プライベート DNS ゾーンにある Aレコードで、クラスターのプライベート IP に解決されます。
参考
AKS 上の HDInsight 上のプライベート クラスターを使用して、分析ワークロードをセキュリティで保護する方法について説明します。
AKS 上の HDInsight で送信トラフィックを する - AKS 上の Azure HDInsight
Azure Kubernetes Service (AKS) クラスターの送信ネットワークと FQDN 規則 - Azure Kubernetes Service。