Application Gateway の Private Link では、VNet とサブスクリプションにまたがるプライベート接続経由でワークロードを接続できます。 詳しくは、「Application Gateway の Private Link」を参照してください。
構成オプション
Application Gateway の Private Link は、Azure portal、Azure PowerShell、Azure CLI など、複数のオプションを使用して構成できます。
Private Link 構成のサブネットを定義する
Private Link 構成を有効にするには、Private Link IP 構成に、Application Gateway サブネットとは異なるサブネットが必要です。 Private Link は、Application Gateway が含まれていないサブネットを使用する必要があります。 サブネットのサイズ設定は、展開に必要な接続の数によって決まります。 このサブネットに割り当てられた各 IP アドレスにより、64 K の同時 TCP 接続が単一時点で Private Link 経由で確立できます。 Private Link 経由で許可される接続数を増やすには、割り当てる IP アドレスを増やします。 たとえば、n * 64K
です。ここで、n
はプロビジョニングされる IP アドレスの数です。
注
Private Link 構成あたりの IP アドレスの最大数は 8 です。 動的割り当てのみがサポートされています。
注
Application Gateway 名とプライベート リンク名は、70 文字以内にする必要があります。名前の長さの制約によるデプロイエラーを回避するには、Application Gateway 名と Private Link 構成名の両方が十分に短く保持されていることを確認します。
新しいサブネットを作成するには、以下の手順を実行します。
仮想ネットワーク サブネットの追加、変更、削除
プライベート リンクを構成する
Private Link 構成では、プライベート エンドポイントからの接続を有効にするために Application Gateway で使用されるインフラストラクチャが定義されます。 Private Link 構成を作成するときに、リスナーが適切なフロントエンド IP 構成を積極的に利用していることを確認します。 Private Link 構成を作成するには、次の手順を実行します。
Azure portal に移動します
Application Gateway を検索して選択します。
Private Link を有効にする Application Gateway の名前を選択します。
[ プライベート リンク ] を選択し、[ + 追加] を選択します。
以下の項目を構成します。
- 名前: Private Link 構成の名前。
- Private Link サブネット: サブネット IP アドレスの使用元。
- フロントエンド IP 構成: Private Link が Application Gateway でトラフィックを転送する先のフロントエンド IP アドレス。
- プライベート IP アドレスの設定: 少なくとも 1 つの IP アドレスを指定します。
[追加] を選択します。
Application Gateway の設定内で、 リソース ID を取得してメモします。 これは、別の Microsoft Entra テナント内にプライベート エンドポイントを設定する場合に必要です。
プライベート エンドポイントを構成する
プライベート エンドポイントはネットワーク インターフェイスであり、Azure Application Gateway に接続するクライアントを含む仮想ネットワークのプライベート IP アドレスを使用します。 各クライアントは、プライベート エンドポイントのプライベート IP アドレスを使用して、Application Gateway へのトラフィックをトンネリングします。 プライベート エンドポイントを作成するには、以下の手順を実行します。
- [プライベート エンドポイント接続] タブを選択します。
- [+ プライベート エンドポイント] を選択します。
- [基本] タブで、プライベート エンドポイントのリソース グループ、名前、およびリージョンを構成します。 [次へ: リソース >] を選択します。
- [ リソース ] タブで、[ 次へ: 仮想ネットワーク >] を選択します。
- [仮想ネットワーク] タブで、プライベート エンドポイント ネットワーク インターフェイスをプロビジョニングする先の仮想ネットワークとサブネットを構成します。 [次へ: DNS >] を選択します。
- [タグ] タブで、必要に応じてリソース タグを構成します。 次へ: タグ>を選択します。
- [ 次へ: 確認と作成] > 選択し、[ 作成] を選択します。
注
プライベート エンドポイント作成の [リソース] タブで [ターゲット サブリソース] を選択しようとしたときにパブリックまたはプライベート IP 構成リソースが見つからない場合は、リスナーが適切なフロントエンド IP 構成を積極的に利用していることを確認してください。 関連付けられたリスナーのないフロントエンド IP 構成は、[ターゲット サブリソース] として表示されません。
注
別のテナント内から プライベート エンドポイント をプロビジョニングする場合は、Azure Application Gateway リソース ID とフロントエンド IP 構成の 名前 をターゲット サブリソースとして使用する必要があります。 たとえば、Application Gateway に関連付けられているプライベート IP があり、プライベート IP のポータルのフロントエンド IP 構成に一覧表示されている [名前] が PrivateFrontendIp の場合、ターゲットサブリソースの値は PrivateFrontendIp になります。
注
プライベート エンドポイントを別のサブスクリプションに移動する必要がある場合は、まず、Private Link とプライベート エンドポイントの間の既存のプライベート エンドポイント接続を削除する必要があります。 これが完了したら、新しいサブスクリプションで新しいプライベート エンドポイント接続を再作成し、Private Link とプライベート エンドポイントの間の接続を確立する必要があります。
Azure PowerShell を使用して既存の Application Gateway 上に Private Link を構成するには、以下のコマンドを使用します。
# 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"
$vnet | Set-AzVirtualNetwork
# Get Application Gateway Frontend IP Name
$agw = Get-AzApplicationGateway -Name AppGW-PL-PSH -ResourceGroupName AppGW-PL-PSH-RG
# List the names
$agw.FrontendIPConfigurations | Select Name
# Add a new Private Link configuration and associate it with an existing Frontend IP
$PrivateLinkIpConfiguration = New-AzApplicationGatewayPrivateLinkIpConfiguration `
-Name "ipConfig01" `
-Subnet ($vnet | Select -ExpandProperty subnets | Where-Object {$_.Name -eq 'AppGW-PL-Subnet'}) `
-Primary
# Add the Private Link configuration to the gateway configuration
Add-AzApplicationGatewayPrivateLinkConfiguration `
-ApplicationGateway $agw `
-Name "privateLinkConfig01" `
-IpConfiguration $PrivateLinkIpConfiguration
# Associate private link configuration to 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 the change to the gateway
Set-AzApplicationGateway -ApplicationGateway $agw
# 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 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
Application Gateway 上の Private Link の構成に使用するすべての Azure PowerShell のリファレンスを以下に示します。
Azure CLI を使用して既存の Application Gateway 上に Private Link を構成するには、以下のコマンドを使用します。
# Disable Private Link Service Network Policies
# 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
# Get Application Gateway Frontend IP Name
az network application-gateway frontend-ip list \
--gateway-name AppGW-PL-CLI \
--resource-group AppGW-PL-CLI-RG
# Add a new Private Link configuration and associate it with an existing 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
# Get Private Link resource ID
az network application-gateway private-link list \
--gateway-name AppGW-PL-CLI \
--resource-group AppGW-PL-CLI-RG
# Disable Private Endpoint Network Policies
# https://learn.microsoft.com/azure/private-link/disable-private-endpoint-network-policy
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 Link Endpoint - Group ID is the same as the frontend IP configuration
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
Application Gateway 上の Private Link の構成に使用するすべての Azure PowerShell については、「Azure CLI - Private Link」のリファレンスを参照してください。
次のステップ