يسمح لك Application Gateway Private Link بتوصيل أحمال العمل الخاصة بك عبر اتصال خاص يمتد عبر VNets والاشتراكات. لمزيد من المعلومات، راجع رابط خاص لبوابة التطبيق.
خيارات الإعداد
يمكن تكوين الارتباط الخاص لبوابة التطبيق عبر خيارات متعددة، مثل، على سبيل المثال لا الحصر، مدخل Azure وAzure PowerShell وAzure CLI.
لتمكين تكوين الارتباط الخاص، يلزم وجود شبكة فرعية مختلفة عن الشبكة الفرعية لبوابة التطبيق لتكوين IP للارتباط الخاص. يجب أن يستخدم Private Link شبكة فرعية لا تحتوي على أي بوابات تطبيق. يتم تحديد حجم الشبكة الفرعية من خلال عدد الاتصالات المطلوبة للتوزيع الخاص بك. يضمن كل عنوان IP مخصص لهذه الشبكة الفرعية اتصالات TCP المتزامنة 64 كيلوبايت التي يمكن إنشاؤها عبر Private Link في نقطة زمنية واحدة. تخصيص المزيد من عناوين IP للسماح بمزيد من الاتصالات عبر Private Link. على سبيل المثال: n * 64K؛ أين n عدد عناوين IP التي يتم توفيرها.
إشعار
الحد الأقصى لعدد عناوين IP لكل تكوين ارتباط خاص هو ثمانية. يتم دعم التخصيص الديناميكي فقط.
يحدد تكوين الارتباط الخاص البنية الأساسية المستخدمة من قبل بوابة التطبيق لتمكين الاتصالات من نقاط النهاية الخاصة. أثناء إنشاء تكوين Private Link، تأكد من أن وحدة الاستماع تستخدم بشكل نشط تكوين IP للواجهة الأمامية المحترمة. أكمل الخطوات التالية لإنشاء تكوين الارتباط الخاص:
حدد اسم بوابة التطبيق التي تريد تمكين الارتباط الخاص بها.
تحديد ارتباط خاص
تكوين العناصر التالية:
الاسم: اسم تكوين الارتباط الخاص.
الشبكة الفرعية للارتباط الخاص: يجب استهلاك عناوين IP للشبكة الفرعية منها.
تكوين IP للواجهة الأمامية: عنوان IP للواجهة الأمامية الذي يجب أن يقوم الارتباط الخاص بإعادة توجيه حركة المرور إليه على بوابة التطبيق.
إعدادات عنوان IP الخاص: حدد عنوان IP واحدا على الأقل
حدد إضافة.
ضمن جزء خصائص Application Gateways، احصل على معرف المورد وقم بتدوينه، وهذا مطلوب إذا كنت تقوم بإعداد نقطة نهاية خاصة داخل مستأجر Microsoft Entra مختلف.
تكوين نقطة النهاية الخاصة
نقطة النهاية الخاصة هي واجهة شبكة تستخدم عنوان IP خاصا من الشبكة الظاهرية التي تحتوي على عملاء يرغبون في الاتصال ببوابة التطبيق الخاصة بك. يستخدم كل عميل عنوان IP الخاص لنقطة النهاية الخاصة لحركة مرور النفق إلى بوابة التطبيق. لإنشاء نقطة نهاية خاصة، أكمل الخطوات التالية:
ثم حدد علامة التبويب Private endpoint connections.
حدد إنشاء.
في علامة التبويب Basics، قم بتكوين مجموعة موارد واسم ومنطقة لنقطة النهاية الخاصة. حدد التالي.
في علامة التبويب Resource ، حدد Next.
في علامة التبويب Virtual Network ، قم بتكوين شبكة ظاهرية وشبكة فرعية حيث يجب توفير واجهة شبكة نقطة النهاية الخاصة. تكوين ما إذا كان يجب أن يكون لنقطة النهاية الخاصة عنوان IP ديناميكي أو ثابت. حدد التالي.
في علامة التبويب Tags ، قم بتكوين علامات الموارد اختياريا. حدد التالي.
حدد إنشاء.
إشعار
إذا كان مورد تكوين IP العام أو الخاص مفقودا عند محاولة تحديد مورد فرعي الهدف في علامة التبويب Resource لإنشاء نقطة النهاية الخاصة، فيرجى التأكد من أن وحدة الاستماع تستخدم بنشاط تكوين IP للواجهة الأمامية المحترمة. لن يتم عرض تكوينات IP الأمامية بدون وحدة استماع مقترنة كمورد فرعي الهدف.
إشعار
إذا كنت تقوم بتوفير نقطة نهاية خاصة من داخل مستأجر آخر، فستحتاج إلى استخدام معرف مورد بوابة تطبيق Azure واسم تكوين IP للواجهة الأمامية كمورد فرعي مستهدف. على سبيل المثال، إذا كان لدي IP خاص مقترن ب Application Gateway والاسم المدرج في تكوين IP للواجهة الأمامية لمدخل IP الخاص هو PrivateFrontendIp، فإن قيمة المورد الفرعي الهدف ستكون: PrivateFrontendIp.
إشعار
إذا كان عليك نقل نقطة نهاية خاصة إلى اشتراك آخر، يجب أولا حذف اتصال نقطة النهاية الخاصة الموجود بين الارتباط الخاص ونقطة النهاية الخاصة. بمجرد اكتمال ذلك، يجب إعادة إنشاء اتصال نقطة نهاية خاصة جديد في الاشتراك الجديد لإنشاء اتصال بين Private Link ونقطة النهاية الخاصة.
لتكوين ارتباط خاص على بوابة تطبيق موجودة عبر Azure 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"
$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
فيما يلي قائمة بجميع مراجع Azure PowerShell لتكوين الارتباط الخاص على بوابة التطبيق:
لتكوين ارتباط خاص على بوابة تطبيق موجودة عبر Azure CLI، استخدم الأوامر التالية:
# 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