Share via


プライベート リンクを使用した Arc 対応 Kubernetes クラスターのプライベート接続 (プレビュー)

Azure Private Link を使用すると、プライベート エンドポイントを使用して Azure サービスを仮想ネットワークに安全に接続できます。 これは、オンプレミスの Kubernetes クラスターを Azure Arc に接続し、パブリック ネットワークを使用する代わりに、Azure ExpressRoute またはサイト間 VPN 接続経由ですべてのトラフィックを送信できることを意味します。 Azure Arc でプライベート リンク スコープ モデルを使うと、複数の Kubernetes クラスターが 1 つのプライベート エンドポイントを使って Azure Arc リソースと通信できるようになります。

このドキュメントでは、Azure Arc プライベート リンク (プレビュー) を使用する場面とその設定方法について説明します。

重要

Azure Arc Private Link 機能は、東南アジアを除く、Azure Arc 対応 Kubernetes が存在するすべてのリージョンで現在プレビュー段階です。 ベータ版、プレビュー版、または一般提供としてまだリリースされていない Azure の機能に適用される法律条項については、「Microsoft Azure プレビューの追加使用条件」を参照してください。

利点

Private Link を使用すると、次のことができます。

  • パブリック ネットワーク アクセスを開かずに Azure Arc にプライベートに接続する。
  • Arc 対応の Kubernetes クラスターからのデータが、認可されたプライベート ネットワーク経由でのみアクセスされるようにする。
  • プライベート エンドポイント経由で接続される特定の Azure Arc 対応 Kubernetes クラスターおよびその他の Azure サービス リソース (Azure Monitor など) を定義することで、プライベート ネットワークからのデータ流出を防止する。
  • ExpressRoute と Private Link を使用して、オンプレミスのプライベート ネットワークを Azure Arc に安全に接続する。
  • すべてのトラフィックを Microsoft Azure のバックボーン ネットワーク内に収める。

詳細については、Azure Private Link の主な利点を参照してください。

動作方法

Azure Arc プライベート リンク スコープにより、プライベート エンドポイント (とそれが包含されている仮想ネットワーク) が Azure リソース (この場合はAzure Arc 対応の Kubernetes クラスター) に接続されます。 Azure Monitor など、Arc 対応 Kubernetes クラスターでサポートされるいずれかの拡張機能を有効にした場合、他の Azure リソースへの接続がそれらのシナリオで必要になることがあります。 たとえば、Azure Monitor の場合、クラスターから収集されたログは Log Analytics ワークスペースに送信されます。

前に示した Arc 対応 Kubernetes クラスターから他の Azure リソースに接続するには、各サービス用のプライベート リンクを構成する必要があります。 例については、Private Link を使用した Azure Monitor への接続に関する記事を参照してください。

現在の制限

プライベート リンクのセットアップを計画するときは、これらの最新の制限事項を考慮してください。

  • 仮想ネットワークには、最大 1 つの Azure Arc プライベート リンク スコープを関連付けることができます。

  • Azure Arc 対応 Kubernetes クラスターを接続できる Azure Arc プライベート リンク スコープは 1 つだけです。

  • すべてのオンプレミス Kubernetes クラスターでは、同じ DNS フォワーダーを使用して、正しいプライベート エンドポイント情報 (FQDN レコード名とプライベート IP アドレス) を解決することで、同じプライベート エンドポイントを使用する必要があります。 詳細については、「Azure プライベート エンドポイントの DNS 構成」をご覧ください。 Azure Arc 対応 Kubernetes クラスター、Azure Arc プライベート リンク スコープ、仮想ネットワークは、同じ Azure リージョンに存在する必要があります。 プライベート エンドポイントと仮想ネットワークも同じ Azure リージョンに存在する必要がありますが、このリージョンは、Azure Arc プライベート リンク スコープと Arc 対応 Kubernetes クラスターのリージョンとは異なるリージョンにできます。

  • プレビュー期間中は、オンプレミスのネットワーク ファイアウォールを介して Microsoft Entra ID、Azure Resource Manager、Microsoft Container Registry のサービス タグへのトラフィックが許可される必要があります。

  • 使用するその他の Azure サービス (Azure Monitor など) のために、仮想ネットワーク内に独自のプライベート エンドポイントが必要となります。

    Note

    プライベート接続が有効になった Azure Arc 対応 Kubernetes クラスターでは、クラスター接続 (ひいてはカスタムの場所) 機能はサポートされません。 これは計画されていたことであり、後日追加される予定です。 Azure Arc 対応データ サービスや、これらの機能を使用する Azure Arc 対応アプリ サービスなど、Azure Arc サービスのプライベート リンクを使用したネットワーク接続も、まだサポートされていません。 プライベート リンクを介したネットワーク接続をサポートするクラスター拡張機能または Azure Arc サービスの一覧については、以下のセクションを参照してください。

プライベート リンクを使って構成された Azure Arc 対応 Kubernetes クラスターでは、プライベート リンクを介したエンド ツー エンドの接続が以下の拡張機能でサポートされます。 プライベート リンクに関する特別な構成手順とサポート情報については、各クラスター拡張機能のリンク先のガイダンスを参照してください。

プライベート リンク経由で Kubernetes クラスターを Azure Arc に接続するには、次のことが実現されるようにネットワークを構成する必要があります。

  1. サイト間 VPN または ExpressRoute 回線 を使用して、オンプレミスのネットワークと Azure Virtual Network の間に接続が既に確立されている。
  2. Azure Arc プライベート リンク スコープをデプロイする。これは、プライベート エンドポイント経由で Azure Arc と通信できる Kubernetes クラスターを制御し、プライベート エンドポイントを使用してそれを Azure の仮想ネットワークに関連付けます。
  3. プライベート エンドポイント アドレスを解決するように、ローカル ネットワーク上の DNS 構成を更新する。
  4. Microsoft Entra ID、Azure Resource Manager、Microsoft Container Registry へのアクセスを許可するようにローカル ファイアウォールを構成する。
  5. Azure Arc 対応 Kubernetes クラスターを Azure Arc プライベート リンク スコープに関連付ける。
  6. Azure Arc 対応 Kubernetes クラスターの管理に用いられている他の Azure サービス (Azure Monitor など) 用のプライベート エンドポイントを必要に応じてデプロイする。 以降、ExpressRoute 回線またはサイト間 VPN 接続が既に設定されているものとして話を進めます。

ネットワーク構成

Azure Arc 対応 Kubernetes は複数の Azure サービスと統合され、クラウドの管理とガバナンスをハイブリッド Kubernetes クラスターにもたらします。 これらのサービスのほとんどでは既にプライベート エンドポイントが提供されていますが、これらのサービスによってプライベート エンドポイントが提供されるまで、インターネット経由で Microsoft Entra ID と Azure Resource Manager にアクセスできるように、ファイアウォールとルーティング規則を構成する必要があります。 また、Azure Monitor などのサービスを有効にしたり、Kubernetes クラスターで Azure Arc エージェントを初期セットアップしたりするために、Microsoft Container Registry (および Microsoft Container Registry の前駆として AzureFrontDoor.FirstParty) にアクセスしてイメージと Helm チャートをプルできるようにする必要があります。

これを実現する方法は 2 つあります。

  • インターネットに送信されるすべてのトラフィックを Azure VPN または ExpressRoute 回線経由でルーティングするようにネットワークが構成されている場合は、Azure のサブネットに関連付けられたネットワーク セキュリティ グループ (NSG) を構成し、サービス タグを使用して Microsoft Entra ID、Azure Resource Manager、Azure Front Door、Microsoft Container Registry への送信 TCP 443 (HTTPS) アクセスを許可できます。 NSG ルールは次のようになります。

    設定 Microsoft Entra ID ルール Azure Resource Manager ルール AzureFrontDoorFirstParty ルール Microsoft Container Registry ルール
    ソース Virtual Network Virtual Network Virtual Network Virtual Network
    ソース ポート範囲 * * * *
    到着地 サービス タグ サービス タグ サービス タグ サービス タグ
    宛先サービス タグ AzureActiveDirectory AzureResourceManager AzureFrontDoor.FirstParty MicrosoftContainerRegistry
    宛先ポート範囲 443 443 443 443
    プロトコル TCP TCP TCP TCP
    アクション 許可 Allow 許可 (受信と送信の両方) 許可
    Priority 150 (インターネット アクセスをブロックするルールよりも低い必要があります) 151 (インターネット アクセスをブロックするルールよりも低い必要があります) 152 (インターネット アクセスをブロックするルールよりも低い必要があります) 153 (インターネット アクセスをブロックするルールよりも低い必要があります)
    名前 AllowAADOutboundAccess AllowAzOutboundAccess AllowAzureFrontDoorFirstPartyAccess AllowMCROutboundAccess
  • ローカル ネットワーク上のファイアウォールを構成して、Microsoft Entra ID、Azure Resource Manager、Microsoft Container Registry への送信 TCP 443 (HTTPS) アクセス、およびダウンロード可能なサービス タグ ファイルを使用した AzureFrontDoor.FirstParty への受信および送信アクセスを許可します。 この JSON ファイルには、Microsoft Entra ID、Azure Resource Manager、AzureFrontDoor.FirstParty、Microsoft Container Registry によって使用されるすべてのパブリック IP アドレスの範囲が含まれており、毎月更新されて変更が反映されます。 Microsoft Entra、Azure Resource Manager、Microsoft Container Registry、Azure Front Door の各サービス タグは、それぞれ AzureActiveDirectory、AzureResourceManager、MicrosoftContainerRegistry、AzureFrontDoor.FirstParty です。 ファイアウォール規則を構成する方法については、ネットワーク管理者とネットワーク ファイアウォール ベンダーにお問い合わせください。

  1. Azure portal にサインインします。

  2. Azure portal で [リソースの作成] に移動して、「Azure Arc プライベート リンク スコープ」を検索します。 または、ポータルの [Azure Arc プライベート リンク スコープ] ページに直接移動できます。

  3. [作成] を選択します

  4. サブスクリプションとリソース グループを選択します。 プレビュー期間中は、仮想ネットワークと Azure Arc 対応 Kubernetes クラスターが、Azure Arc プライベート リンク スコープと同じサブスクリプションにある必要があります。

  5. Azure Arc プライベート リンク スコープに名前を指定します。

  6. 必要に応じて、この Azure Arc プライベート リンク スコープに関連付けられているすべての Arc 対応 Kubernetes クラスターに、プライベート エンドポイントを介してサービスにデータを送信することを要求できます。 [パブリック ネットワーク アクセスを有効にする] を選択した場合、この Azure Arc プライベート リンク スコープに関連付けられている Kubernetes クラスターでは、プライベート ネットワークとパブリック ネットワークの両方を介してサービスと通信できます。 この設定は、スコープの作成後に必要に応じて変更できます。

  7. [確認および作成] を選択します。

    Screenshot of the Azure Arc Private Link Scope creation screen in the Azure portal.

  8. 検証が完了したら、[作成] を選択します。

プライベート エンドポイントの作成

Azure Arc プライベート リンク スコープを作成したら、プライベート エンドポイントを使用して 1 つ以上の仮想ネットワークに接続する必要があります。 プライベート エンドポイントによって、仮想ネットワーク アドレス空間のプライベート IP で Azure Arc サービスへのアクセスが公開されます。

仮想ネットワークでプライベート エンドポイントを使用すると、Azure Arc 対応 Kubernetes クラスターのエンドポイントのパブリック IP を使用するのではなく、ネットワークのプールのプライベート IP を介してそれらのエンドポイントに接続することができます。 これにより、要求されていない送信トラフィックに対して VNet を開くことなく、Azure Arc 対応 Kubernetes クラスターを使用し続けることができます。 プライベート エンドポイントからリソースへのトラフィックは、パブリック ネットワークにはルーティングされず、Microsoft Azure を経由します。

  1. スコープ リソースで、左側のリソース メニューの [プライベート エンドポイント接続] を選択します。 [追加] を選択して、エンドポイント作成プロセスを開始します。 Private Link センターで開始された接続を承認するには、その接続を選択し、[承認] を選択します。

    Screenshot of the Private Endpoint connections screen in the Azure portal.

  2. サブスクリプション、リソース グループ、エンドポイントの名前と、使用したいリージョンを選択します。 これは仮想ネットワークと同じリージョンにする必要があります。

  3. [Next:リソース] を選択します。

  4. [リソース] ページで、次の操作を行います。

    1. Azure Arc プライベート リンク スコープ リソースを含むサブスクリプションを選択します。
    2. [リソースの種類] には、Microsoft.HybridCompute/privateLinkScopes を選択します。
    3. [リソース] ドロップダウンから、前に作成した Azure Arc プライベート リンク スコープを選択します。
    4. [Next:構成] を選択します。
  5. [構成] ページで、次の手順を実行します。

    1. Azure Arc 対応 Kubernetes クラスターの接続元となる仮想ネットワークとサブネットを選択します。

    2. [プライベート DNS ゾーンと統合する] に、 [はい] を選択します。 新しいプライベート DNS ゾーンが作成されます。 実際の DNS ゾーンは、下のスクリーンショットに示されているものとは異なる場合があります。

      Screenshot of the Configuration step to create a private endpoint in the Azure portal.

      Note

      [いいえ] を選択して DNS レコードを手動で管理する場合は、最初に、このプライベート エンドポイントとプライベート スコープ構成を含め、プライベート リンクの設定を完了させます。 次に、「Azure プライベート エンドポイントの DNS 構成」の手順に従って、DNS を構成します。 プライベート リンクの設定の準備で、空のレコードを作成しないようにしてください。 作成する DNS レコードによって、既存の設定がオーバーライドされ、Arc 対応 Kubernetes クラスターとの接続が影響を受ける可能性があります。

    3. [Review + create](レビュー + 作成) を選択します。

    4. 検証をパスします。

    5. [作成] を選択します

オンプレミスの DNS 転送を構成する

オンプレミスの Kubernetes クラスターでは、プライベート リンクの DNS レコードをプライベート エンドポイントの IP アドレスに解決できる必要があります。 これを構成する方法は、Azure のプライベート DNS ゾーンを使用して DNS レコードを管理しているか、オンプレミスで独自の DNS サーバーを使用しているか、また、構成しているクラスターの数によって異なります。

Azure 統合プライベート DNS ゾーンを使用した DNS 構成

プライベート エンドポイントの作成時に Azure Arc 対応 Kubernetes クラスターのプライベート DNS ゾーンを設定した場合、オンプレミスの Kubernetes クラスターでは、プライベート エンドポイントのアドレスを正しく解決するために、組み込みの Azure DNS サーバーに DNS クエリを転送できる必要があります。 Azure に DNS フォワーダー (専用の VM または DNS プロキシが有効になっている Azure Firewall インスタンス) が必要です。その後、プライベート エンドポイントの IP アドレスを解決するためにクエリを Azure に転送するように、オンプレミスの DNS サーバーを構成できます。

プライベート エンドポイントのドキュメントでは、DNS フォワーダーを使用してオンプレミスのワークロードを構成するためのガイダンスを提供しています。

DNS サーバーの手動構成

プライベート エンドポイントの作成時に Azure プライベート DNS ゾーンの使用をオプトアウトした場合は、オンプレミスの DNS サーバーに必要な DNS レコードを作成する必要があります。

  1. Azure portal に移動します。

  2. 仮想ネットワークと Azure Arc プライベート リンク スコープに関連付けられているプライベート エンドポイント リソースに移動します。

  3. 左側のペインで [DNS 構成] を選択すると、DNS サーバーに設定する必要がある DNS レコードと対応する IP アドレスの一覧が表示されます。 FQDN と IP アドレスは、プライベート エンドポイントに対して選択したリージョンとサブネットで使用可能な IP アドレスに基づいて変更されます。

    Screenshot showing manual DNS server configuration in the Azure portal.

  4. DNS サーバー ベンダーのガイダンスに従って、ポータルのテーブルと一致させるために必要な DNS ゾーンと A レコードを追加します。 ネットワークに適切にスコープ設定された DNS サーバーを選択してください。 この DNS サーバーを使用するすべての Kubernetes クラスターでは、プライベート エンドポイントの IP アドレスを解決するようになります。これらは、Azure Arc プライベート リンク スコープに関連付けられている必要があります。そうしないと、接続が拒否されます。

Note

Azure Arc 対応 Kubernetes クラスターに対するプライベート リンクの構成は、connectedk8s CLI 拡張機能のバージョン 1.3.0 以降でサポートされますが、Azure CLI のバージョンは 2.3.0 より後のバージョンが必要になります。 connectedk8s CLI 拡張機能で 1.3.0 より後のバージョンを使用している場合は、2.3.0 より後の Azure CLI バージョンを実行している場合にのみ、検査を行ってクラスターを Azure Arc に正常に接続するための妥当性検査が導入されています。

プライベート リンクは、既存の Azure Arc 対応 Kubernetes クラスターに対して、または、Kubernetes クラスターを Azure Arc に初めてオンボードするときに、次のコマンドを使用して構成できます。

az connectedk8s connect -g <resource-group-name> -n <connected-cluster-name> -l <location> --enable-private-link true --private-link-scope-resource-id <pls-arm-id>
パラメーター名 説明
--enable-private-link プライベート リンク機能を有効または無効にするためのプロパティ。 プライベート リンクでの接続を有効にするには "True" に設定します。
--private-link-scope-resource-id 前に作成したプライベート リンク スコープ リソースの ID。 例: /subscriptions//resourceGroups//providers/Microsoft.HybridCompute/privateLinkScopes/

Azure Arc プライベート リンク スコープを構成する前にセットアップされた Azure Arc 対応 Kubernetes クラスターの場合は、Azure portal から次の手順を使用してプライベート リンクを構成できます。

  1. Azure portal で、Azure Arc プライベート リンク スコープ リソースに移動します。

  2. 左側のペインで、[Azure Arc リソース] を選択し、[追加] を選択します。

  3. プライベート リンク スコープに関連付ける Kubernetes クラスターを一覧から選択し、[選択] を選択して変更を保存します。

    Note

    この一覧に表示されるのは、プライベート リンク スコープと同じサブスクリプションおよびリージョン内にある Azure Arc 対応 Kubernetes クラスターのみです。

    Screenshot of the list of Kubernetes clusters for the Azure Arc Private Link Scope.

トラブルシューティング

問題が発生した場合は、次の推奨事項を参考にしてください。

  • オンプレミスの DNS サーバーを調べて、それが Azure DNS に転送されているか、プライベート リンク ゾーンに適切な A レコードが構成されていることを確認します。 次の参照コマンドでは、Azure 仮想ネットワーク内のプライベート IP アドレスが返される必要があります。 パブリック IP アドレスを解決する場合は、マシンまたはサーバーとネットワークの DNS 構成を再確認します。

    nslookup gbl.his.arc.azure.com
    nslookup agentserviceapi.guestconfiguration.azure.com
    nslookup dp.kubernetesconfiguration.azure.com
    
  • Kubernetes クラスターのオンボードで問題が発生した場合は、Microsoft Entra ID、Azure Resource Manager、AzureFrontDoor.FirstParty、Microsoft Container Registry のサービス タグをローカルのネットワーク ファイアウォールに追加したことを確認します。

次のステップ