Azure Application Gateway Private Link を使用すると、仮想ネットワーク (VNet) とサブスクリプションにまたがるワークロードから、Application Gateway へのセキュリティで保護されたプライベート接続を確立できます。 この機能は、トラフィックをパブリック インターネットに公開することなくプライベート接続を提供します。 詳しくは、「Application Gateway の Private Link」を参照してください。
構成オプション
Application Gateway Private Link は、複数の方法を使用して構成できます。
- Azure portal
- Azure PowerShell
- Azure CLI
[前提条件]
Private Link を構成する前に、次のことを確認してください。
- 既存のアプリケーションゲートウェイ
- Private Link 専用サブネットを持つ仮想ネットワーク (Application Gateway サブネットとは別)
- Private Link リソースを作成および構成するための適切なアクセス許可
Private Link 構成のサブネットに関する考慮事項
Private Link 構成を有効にするには、Application Gateway サブネットとは別の専用サブネットが必要です。 このサブネットは Private Link IP 構成専用に使用され、Application Gateway インスタンスを含めることはできません。
- このサブネットに割り当てられた各 IP アドレスは、Private Link 経由で最大 65,536 の同時 TCP 接続をサポートします
- 必要な IP アドレスを計算するには:
n × 65,536 接続。ここで、 n はプロビジョニングされた IP アドレスの数です
- Private Link 構成あたり最大 8 つの IP アドレス
- 動的 IP アドレスの割り当てのみがサポートされます
- サブネットで Private Link サービス ネットワーク ポリシーが無効になっている 必要があります
Von Bedeutung
デプロイエラーを回避するために、Application Gateway 名と Private Link 構成名の組み合わせの長さは 70 文字を超えないようにする必要があります。
Private Link 用の専用サブネットを作成するには、「 仮想ネットワーク サブネットの追加、変更、または削除」を参照してください。
注
クライアント アプリケーションがプライベート IP 経由で App Gateway に接続し、4 分を超える > アイドル タイムアウトが必要で、クライアント アプリケーションが TCP キープアライブ パケットを送信しない場合は、 appgw-idle-timeout@microsoft.com に連絡して Application Gateway からキープアライブの開始を要求します。
Private Link サブネットでネットワーク ポリシーを無効にする
Private Link 接続を許可するには、Private Link IP 構成用に指定されたサブネットで Private Link サービス ネットワーク ポリシーを無効にする 必要があります。
ネットワーク ポリシーを無効にするには、次の手順に従います。
-
Azure Portal に移動します。
-
[仮想ネットワーク] を検索して選択します。
- Private Link サブネットを含む仮想ネットワークを選択します。
- 左側のナビゲーション ウィンドウで、[サブネット] を選択 します。
- Private Link に指定されたサブネットを選択します。
- [ プライベート リンク サービス ネットワーク ポリシー] で、[ 無効] を選択します。
-
[保存] をクリックして変更を適用します。
- 変更が有効になるまで、数分待ちます。
-
[Private link service network policies]\(プライベート リンク サービスのネットワーク ポリシー\) 設定が [無効] になっていることを確認します。
Private Link 構成では、プライベート エンドポイントから Application Gateway への接続を有効にするインフラストラクチャを定義します。 Private Link 構成を作成する前に、リスナーがターゲット フロントエンド IP 構成を使用するようにアクティブに構成されていることを確認します。
Private Link 構成を作成するには、次の手順に従います。
-
Application Gateway を検索して選択します。
- Application Gateway インスタンスを選択します。
- 左側のナビゲーション ウィンドウで、[ プライベート リンク] を選択し、[ + 追加] を選択します。
- 次の設定を構成します。
-
名前: Private Link 構成の名前を入力します
-
プライベート リンク サブネット: Private Link IP アドレスの専用サブネットを選択します
-
フロントエンド IP 構成: Private Link がトラフィックを転送するフロントエンド IP 構成を選択します
-
プライベート IP アドレスの設定: 少なくとも 1 つの IP アドレスを構成する
- [ 追加] を選択して構成を作成します。
- Application Gateway の設定から、 リソース ID をコピーして保存します。 この識別子は、異なる Microsoft Entra テナントからプライベート エンドポイントを設定するときに必要です。
プライベート エンドポイントは、仮想ネットワークのプライベート IP アドレスを使用して Azure Application Gateway に安全に接続するネットワーク インターフェイスです。 クライアントは、プライベート エンドポイントのプライベート IP アドレスを使用して、セキュリティで保護されたトンネル経由で Application Gateway への接続を確立します。
プライベート エンドポイントを作成するには、次の手順に従います。
- Application Gateway ポータルで、[ プライベート エンドポイント接続 ] タブを選択します。
-
[+ プライベート エンドポイント] を選択します。
- [基本] タブで、次の 操作 を行います。
- プライベート エンドポイントのリソース グループ、名前、リージョンを構成する
-
[次へ: リソース >] を選択する
- [リソース] タブで、次の 手順 を実行します。
- ターゲット リソースの設定を確認する
-
[次へ: 仮想ネットワーク >] を選択する
- [ 仮想ネットワーク ] タブで、次の手順を実行します。
- プライベート エンドポイント ネットワーク インターフェイスが作成される仮想ネットワークとサブネットを選択します
-
[次へ: DNS >] を選択する
- [DNS] タブで、 次 の手順を実行します。
- 必要に応じて DNS 設定を構成する
-
次へ: タグ>を選択する
- [タグ] タブで、次の 手順 を実行します。
- 必要に応じてリソース タグを追加する
-
次へ: [確認 + 作成]> を選択します
- 構成を確認してから、[作成] を選択します。
Von Bedeutung
プライベート エンドポイントの作成の [リソース] タブでターゲット サブリソースを選択しようとしたときにパブリックまたはプライベート IP 構成リソースが見つからない場合は、リスナーが優先されるフロントエンド IP 構成をアクティブに使用していることを確認します。 関連付けられたリスナーのないフロントエンド IP 構成を ターゲット サブリソースとして表示することはできません。
注
別の Microsoft Entra テナントからプライベート エンドポイントをプロビジョニングする場合は、Azure Application Gateway リソース ID を使用し、フロントエンド IP 構成名をターゲット サブリソースとして指定する必要があります。
たとえば、プライベート IP 構成の名前がポータルで PrivateFrontendIp されている場合は、ターゲット のサブリソース値として PrivateFrontendIp を使用します。
既存の Application Gateway で Private Link を構成するには、次の PowerShell コマンドを使用します。
# Disable Private Link Service Network Policies
# https://learn.microsoft.com/azure/private-link/disable-private-endpoint-network-policy
$net =@{
Name = 'AppGW-PL-PSH'
ResourceGroupName = 'AppGW-PL-PSH-RG'
}
$vnet = Get-AzVirtualNetwork @net
($vnet | Select -ExpandProperty subnets | Where-Object {$_.Name -eq 'AppGW-PL-Subnet'}).PrivateLinkServiceNetworkPolicies = "Disabled"
# Apply the network policy changes
$vnet | Set-AzVirtualNetwork
# Get Application Gateway Frontend IP Name
$agw = Get-AzApplicationGateway -Name AppGW-PL-PSH -ResourceGroupName AppGW-PL-PSH-RG
# List the available Frontend IP configuration Names
$agw.FrontendIPConfigurations | Select Name
# Create Private Link IP configuration
$PrivateLinkIpConfiguration = New-AzApplicationGatewayPrivateLinkIpConfiguration `
-Name "ipConfig01" `
-Subnet ($vnet | Select -ExpandProperty subnets | Where-Object {$_.Name -eq 'AppGW-PL-Subnet'}) `
-Primary
# Add Private Link configuration to Application Gateway
Add-AzApplicationGatewayPrivateLinkConfiguration `
-ApplicationGateway $agw `
-Name "privateLinkConfig01" `
-IpConfiguration $PrivateLinkIpConfiguration
# Associate Private Link configuration with Frontend IP
$agwPip = ($agw | Select -ExpandProperty FrontendIpConfigurations| Where-Object {$_.Name -eq 'appGwPublicFrontendIp'}).PublicIPAddress.Id
$privateLinkConfiguration = ($agw | Select -ExpandProperty PrivateLinkConfigurations | Where-Object {$_.Name -eq 'privateLinkConfig01'}).Id
Set-AzApplicationGatewayFrontendIPConfig -ApplicationGateway $agw -Name "appGwPublicFrontendIp" -PublicIPAddressId $agwPip -PrivateLinkConfigurationId $privateLinkConfiguration
# Apply changes to Application Gateway
Set-AzApplicationGateway -ApplicationGateway $agw
# Configure Private Endpoint network (in the client/consumer virtual network)
# Disable Private Endpoint Network Policies
# https://learn.microsoft.com/azure/private-link/disable-private-endpoint-network-policy
$net =@{
Name = 'AppGW-PL-Endpoint-PSH-VNET'
ResourceGroupName = 'AppGW-PL-Endpoint-PSH-RG'
}
$vnet_plendpoint = Get-AzVirtualNetwork @net
($vnet_plendpoint | Select -ExpandProperty subnets | Where-Object {$_.Name -eq 'MySubnet'}).PrivateEndpointNetworkPolicies = "Disabled"
$vnet_plendpoint | Set-AzVirtualNetwork
# Create Private Link Endpoint - Group ID is the same as the frontend IP configuration
$privateEndpointConnection = New-AzPrivateLinkServiceConnection -Name "AppGW-PL-Connection" -PrivateLinkServiceId $agw.Id -GroupID "appGwPublicFrontendIp"
## Create the Private Endpoint
New-AzPrivateEndpoint -Name "AppGWPrivateEndpoint" -ResourceGroupName $vnet_plendpoint.ResourceGroupName -Location $vnet_plendpoint.Location -Subnet ($vnet_plendpoint | Select -ExpandProperty subnets | Where-Object {$_.Name -eq 'MySubnet'}) -PrivateLinkServiceConnection $privateEndpointConnection
PowerShell コマンドレット リファレンス
Application Gateway Private Link 構成を管理するには、次の Azure PowerShell コマンドレットを使用できます。
既存の Application Gateway で Private Link を構成するには、次の Azure CLI コマンドを使用します。
# Disable Private Link Service Network Policies on the Private Link subnet
# Reference: https://learn.microsoft.com/azure/private-link/disable-private-endpoint-network-policy
az network vnet subnet update \
--name AppGW-PL-Subnet \
--vnet-name AppGW-PL-CLI-VNET \
--resource-group AppGW-PL-CLI-RG \
--disable-private-link-service-network-policies true
# List available Frontend IP configurations
az network application-gateway frontend-ip list \
--gateway-name AppGW-PL-CLI \
--resource-group AppGW-PL-CLI-RG
# Create Private Link configuration and associate with Frontend IP
az network application-gateway private-link add \
--frontend-ip appGwPublicFrontendIp \
--name privateLinkConfig01 \
--subnet /subscriptions/XXXXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXX/resourceGroups/AppGW-PL-CLI-RG/providers/Microsoft.Network/virtualNetworks/AppGW-PL-CLI-VNET/subnets/AppGW-PL-Subnet \
--gateway-name AppGW-PL-CLI \
--resource-group AppGW-PL-CLI-RG
# Verify Private Link configuration
az network application-gateway private-link list \
--gateway-name AppGW-PL-CLI \
--resource-group AppGW-PL-CLI-RG
# Configure Private Endpoint network (in the client/consumer virtual network)
# Disable Private Endpoint Network Policies
az network vnet subnet update \
--name MySubnet \
--vnet-name AppGW-PL-Endpoint-CLI-VNET \
--resource-group AppGW-PL-Endpoint-CLI-RG \
--disable-private-endpoint-network-policies true
# Create Private Endpoint
# Note: Group ID must match the Frontend IP configuration name
az network private-endpoint create \
--name AppGWPrivateEndpoint \
--resource-group AppGW-PL-Endpoint-CLI-RG \
--vnet-name AppGW-PL-Endpoint-CLI-VNET \
--subnet MySubnet \
--group-id appGwPublicFrontendIp \
--private-connection-resource-id /subscriptions/XXXXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXX/resourceGroups/AppGW-PL-CLI-RG/providers/Microsoft.Network/applicationGateways/AppGW-PL-CLI \
--connection-name AppGW-PL-Connection
注
プライベート エンドポイントを別のサブスクリプションに移動するには、Private Link とプライベート エンドポイントの間の既存の接続を削除する必要があります。 削除後、ターゲット サブスクリプションに新しいプライベート エンドポイント接続を作成して、接続を再確立します。
注意事項
プライベート リンクの構成では、有効または無効にすると、一時的にトラフィックの中断 (1 分未満) が発生します。 変更は、メンテナンス期間中またはトラフィックの少ない期間中に行うことをお勧めします。 この間、要求時に接続タイムアウトまたは 4XX http 状態コードが返されることがあります。 プライベート エンドポイントの追加/削除/承認/拒否は、トラフィックの中断を引き起こしません。
Azure CLI リファレンス
Application Gateway Private Link の構成に関する包括的な Azure CLI コマンド リファレンスについては、「 Azure CLI - Application Gateway Private Link」を参照してください。
次のステップ
Azure Private Link と関連サービスの詳細については、以下を参照してください。