プライベート リンクを使用した 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 クラスター) に接続されます。 Arc 対応 Kubernetes クラスター拡張機能を有効にした場合、他の Azure リソースへの接続がそれらのシナリオで必要になることがあります。 たとえば、Azure Monitor を使用すると、クラスターから収集されたログは Log Analytics ワークスペースに送信されます。
前に示した Arc 対応 Kubernetes クラスターから他の Azure リソースに接続するには、各サービス用のプライベート リンクを構成する必要があります。 例については、Private Link を使用した Azure Monitor への接続に関する記事を参照してください。
現在の制限
プライベート リンクのセットアップを計画するときは、これらの最新の制限事項を考慮してください。
仮想ネットワークには、Azure Arc プライベート リンク スコープを 1 つだけ関連付けることができます。
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 Monitor など、使用するその他の Azure サービスでは、仮想ネットワーク内に独自のプライベート エンドポイントが必要になる場合があります。
プライベート リンクを介したネットワーク接続をサポートするクラスター拡張機能
プライベート リンクを使って構成された Azure Arc 対応 Kubernetes クラスターでは、プライベート リンクを介したエンド ツー エンドの接続が以下の拡張機能でサポートされます。
Private Link のセットアップを計画する
プライベート リンク経由で Kubernetes クラスターを Azure Arc に接続するには、次のようにネットワークを構成します。
- サイト間 VPN または ExpressRoute 回線 を使用して、オンプレミスのネットワークと Azure Virtual Network の間に接続が既に確立されている。
- Azure Arc プライベート リンク スコープをデプロイする。これは、プライベート エンドポイント経由で Azure Arc と通信できる Kubernetes クラスターを制御し、プライベート エンドポイントを使用してそれを Azure の仮想ネットワークに関連付けます。
- プライベート エンドポイント アドレスを解決するように、ローカル ネットワーク上の DNS 構成を更新する。
- Microsoft Entra ID、Azure Resource Manager、Microsoft Container Registry へのアクセスを許可するようにローカル ファイアウォールを構成する。
- Azure Arc 対応 Kubernetes クラスターを Azure Arc プライベート リンク スコープに関連付ける。
- Azure Monitor などの Azure Arc 対応 Kubernetes クラスターに使用される他の Azure サービス用のプライベート エンドポイントを必要に応じてデプロイする。
この記事の残りの部分では、ExpressRoute 回線またはサイト間 VPN 接続が既に設定されていることを前提としています。
ネットワーク構成
Azure Arc 対応 Kubernetes は複数の Azure サービスと統合され、クラウドの管理とガバナンスをハイブリッド Kubernetes クラスターにもたらします。 これらのサービスのほとんどでは、既にプライベート エンドポイントが提供されています。 ただし、これらのサービスでプライベート エンドポイントが提供されるまでは、インターネット経由で Microsoft Entra ID と Azure Resource Manager にアクセスできるようにファイアウォールとルーティング規則を構成する必要があります。 また、Kubernetes クラスターへの Azure Arc エージェントの初期セットアップやサービス (Azure Monitor など) を実現するイメージと Helm チャートをプルするための Microsoft Container Registry (とその前段階としての AzureFrontDoor.FirstParty) へのアクセスを許可する必要があります。
この構成を有効にする方法は、次の 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 です。 ファイアウォール規則を構成する方法については、ネットワーク管理者とネットワーク ファイアウォール ベンダーにお問い合わせください。
Azure Arc プライベート リンク スコープを作成する
Azure portal にサインインします。
Azure Arc プライベート リンク スコープを検索します。 または、Azure portal の [Azure Arc プライベート リンク スコープ] ページに直接移動できます。
[作成] を選択します
サブスクリプションとリソース グループを選択します。 プレビュー期間中は、仮想ネットワークと Azure Arc 対応 Kubernetes クラスターが、Azure Arc プライベート リンク スコープと同じサブスクリプションにある必要があります。
Azure Arc プライベート リンク スコープに名前を指定します。
この Azure Arc プライベート リンク スコープに関連付けられているすべての Arc 対応 Kubernetes クラスターに、プライベート エンドポイントを介してサービスにデータを送信することを要求するには、[公衆ネットワーク アクセスを許可する] を選択します。 そうした場合、この Azure Arc プライベート リンク スコープに関連付けられている Kubernetes クラスターでは、プライベート ネットワークとパブリック ネットワークの両方を介してサービスと通信できます。 この設定は、スコープの作成後に必要に応じて変更できます。
[Review + create](レビュー + 作成) を選択します。
検証が完了したら、[作成] を選択します。
プライベート エンドポイントの作成
Azure Arc プライベート リンク スコープを作成したら、プライベート エンドポイントを使用して 1 つ以上の仮想ネットワークに接続する必要があります。 プライベート エンドポイントによって、仮想ネットワーク アドレス空間のプライベート IP で Azure Arc サービスへのアクセスが公開されます。
仮想ネットワークでプライベート エンドポイントを使用すると、Azure Arc 対応 Kubernetes クラスターのエンドポイントのパブリック IP を使用するのではなく、ネットワークのプールのプライベート IP を介してそれらのエンドポイントに接続することができます。 これにより、要求されていない送信トラフィックに対して VNet を開くことなく、Azure Arc 対応 Kubernetes クラスターを使用し続けることができます。 プライベート エンドポイントからリソースへのトラフィックは、パブリック ネットワークにはルーティングされず、Microsoft Azure を経由します。
Azure portal で、作成した Azure Arc プライベート リンク スコープ リソースに移動します。
リソース メニューの [構成] で、[プライベート エンドポイント接続] を選びます。
[追加] を選択して、エンドポイント作成プロセスを開始します。 Private Link センターで開始された接続を承認するには、その接続を選択し、[承認] を選択します。
サブスクリプションとリソース グループを選択し、エンドポイントの名前を入力します。 仮想ネットワークと同じリージョンを選びます。
次へ:リソース を選択します。
[リソース] ページで、これらの値がまだ選択されていない場合は、次のようにします。
- Azure Arc プライベート リンク スコープ リソースを含むサブスクリプションを選択します。
- [リソースの種類] の場合は、
Microsoft.HybridCompute/privateLinkScopes
を選択します。 - [リソース] の場合は、前に作成した Azure Arc プライベート リンク スコープを選択します。
- [次へ: 仮想ネットワーク] を選択します。
[仮想ネットワーク] ページ:
- Azure Arc 対応 Kubernetes クラスターの接続元となる仮想ネットワークとサブネットを選択します。
- [次: DNS] を選びます。
[DNS] ページ:
[プライベート DNS ゾーンと統合する] に、 [はい] を選択します。 新しいプライベート DNS ゾーンが作成されます。
または、DNS レコードを手動で管理する場合は、[いいえ] を選択し、このプライベート エンドポイントとプライベート スコープ構成を含め、プライベート リンクの設定を完了させます。 次に、「Azure プライベート エンドポイントのプライベート DNS ゾーンの値」の手順に従って、DNS を構成します。 プライベート リンクの設定の準備で、空のレコードを作成しないようにしてください。 作成する DNS レコードによって、既存の設定がオーバーライドされ、Arc 対応 Kubernetes クラスターとの接続が影響を受ける可能性があります。
[Review + create](レビュー + 作成) を選択します。
検証をパスします。
[作成] を選択します
オンプレミスの DNS 転送を構成する
オンプレミスの Kubernetes クラスターでは、プライベート リンクの DNS レコードをプライベート エンドポイントの IP アドレスに解決できる必要があります。 構成手順は、DNS レコードを維持するために Azure プライベート DNS ゾーンを使用するか、オンプレミスで独自の DNS サーバーを使用するかによって異なります。
Azure 統合プライベート DNS ゾーンを使用した DNS 構成
プライベート エンドポイントの作成時に、[プライベート DNS ゾーンと統合する] で [はい] を選択した場合、オンプレミスの Kubernetes クラスターでは、プライベート エンドポイントのアドレスを正しく解決するために、組み込みの Azure DNS サーバーに DNS クエリを転送できる必要があります。 Azure に DNS フォワーダー (専用の VM または DNS プロキシが有効になっている Azure Firewall インスタンス) が必要です。その後、プライベート エンドポイントの IP アドレスを解決するためにクエリを Azure に転送するように、オンプレミスの DNS サーバーを構成できます。
プライベート エンドポイントのドキュメントでは、DNS フォワーダーを使用してオンプレミスのワークロードを構成するためのガイダンスを提供しています。
DNS サーバーの手動構成
プライベート エンドポイントの作成時に Azure プライベート DNS ゾーンの使用をオプトアウトした場合は、オンプレミスの DNS サーバーに必要な DNS レコードを作成する必要があります。
- Azure ポータルにアクセスします。
- 仮想ネットワークと Azure Arc プライベート リンク スコープに関連付けられているプライベート エンドポイント リソースに移動します。
- 左側のペインで [DNS 構成] を選択すると、DNS サーバーに設定する必要がある DNS レコードと対応する IP アドレスの一覧が表示されます。 FQDN と IP アドレスは、プライベート エンドポイントに対して選択したリージョンとサブネットで使用可能な IP アドレスに基づいて変更されます。
- 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 で次の手順を使用してプライベート リンクを構成します。
- Azure portal で、Azure Arc プライベート リンク スコープ リソースに移動します。
- リソース メニューで、[設定] の下にある [Azure Arc リソース] を選択します。 その後、 [追加] を選択します。
- プライベート リンク スコープと同じサブスクリプションおよびリージョン内にある Azure Arc 対応 Kubernetes クラスターがすべて表示されます。 プライベート リンク スコープに関連付ける Kubernetes クラスターごとにチェックボックスをオンにします。 完了したら、[選択] を選んで変更を保存します。
トラブルシューティング
問題が発生した場合は、次の推奨事項を参考にしてください。
オンプレミスの 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 のサービス タグをローカルのネットワーク ファイアウォールに追加したことを確認します。
次のステップ
- Azure プライベート エンドポイントについて学習します。
- Azure プライベート エンドポイント接続に関する問題のトラブルシューティング方法について学習します。
- Azure Monitor のプライベート リンクを構成する方法について学習します。