التشغيل السريع: إنشاء نقطة نهاية خاصة باستخدام Azure PowerShell

ابدأ باستخدام Azure Private Link عن طريق إنشاء نقطة نهاية خاصة واستخدامها للاتصال بشكل آمن بتطبيق ويب Azure App Services.

في هذا التشغيل السريع، أنشئ نقطة نهاية خاصة لتطبيق ويب Azure App Services ثم أنشئ جهازا ظاهريا (VM) وانشره لاختبار الاتصال الخاص.

يمكنك إنشاء نقاط نهاية خاصة لخدمات Azure المختلفة، مثل Azure SQL وAzure Storage.

رسم تخطيطي للموارد التي تم إنشاؤها في التشغيل السريع لنقطة النهاية الخاصة.

المتطلبات الأساسية

  • حساب Azure مع اشتراك نشط. إذا لم يكن لديك حساب Azure بالفعل، فأنشئ حسابًا مجانًا.

  • تطبيق ويب Azure مع خطة خدمة تطبيق PremiumV2-tier أو أعلى، تم توزيعه في اشتراك Azure الخاص بك.

  • Azure Cloud Shell أو Azure PowerShell.

    تعمل الخطوات الواردة في هذا التشغيل السريع على تشغيل أوامر Cmdlets Azure PowerShell بشكل تفاعلي في Azure Cloud Shell. لتشغيل الأوامر في Cloud Shell، حدد Open Cloudshell في الزاوية العلوية اليسرى من كتلة التعليمات البرمجية. حدد نسخ لنسخ التعليمات البرمجية ثم لصقها في Cloud Shell لتشغيلها. يمكنك أيضا تشغيل Cloud Shell من داخل مدخل Microsoft Azure.

    يمكنك أيضا تثبيت Azure PowerShell محليا لتشغيل cmdlets. تتطلب الخطوات الواردة في هذه المقالة إصدار الوحدة النمطية Azure PowerShell 5.4.1 أو أحدث. للعثور على الإصدار المثبت، قم بتشغيل Get-Module -ListAvailable Az. إذا كنت بحاجة إلى الترقية، فشاهد تحديث الوحدة النمطية Azure PowerShell.

    إذا قمت بتشغيل PowerShell محليا، فقم بتشغيل Connect-AzAccount للاتصال ب Azure.

إنشاء مجموعة موارد

مجموعة موارد Azure عبارة عن حاوية منطقية يتم فيها توزيع موارد Azure وإدارتها.

إنشاء مجموعة موارد باستخدام New AzResourceGroup:

$rg = @{
    Name = 'test-rg'
    Location = 'eastus2'
}
New-AzResourceGroup @rg

إنشاء شبكة ظاهرية

  1. استخدم New-AzVirtualNetwork لإنشاء شبكة ظاهرية تسمى vnet-1 مع بادئة عنوان IP 10.0.0.0/16 في مجموعة موارد test-rg وموقع eastus2 .

    $vnet = @{
        Name = 'vnet-1'
        ResourceGroupName = 'test-rg'
        Location = 'eastus2'
        AddressPrefix = '10.0.0.0/16'
    }
    $virtualNetwork = New-AzVirtualNetwork @vnet
    
  2. ينشر Azure الموارد إلى شبكة فرعية داخل شبكة ظاهرية. استخدم Add-AzVirtualNetworkSubnetConfig لإنشاء تكوين شبكة فرعية باسم subnet-1 مع بادئة العنوان 10.0.0.0/24.

    $subnet = @{
        Name = 'subnet-1'
        VirtualNetwork = $virtualNetwork
        AddressPrefix = '10.0.0.0/24'
    }
    $subnetConfig = Add-AzVirtualNetworkSubnetConfig @subnet
    
  3. ثم قم بإقران تكوين الشبكة الفرعية بالشبكة الظاهرية مع Set-AzVirtualNetwork.

    $virtualNetwork | Set-AzVirtualNetwork
    

نشر Azure Bastion

يستخدم Azure Bastion المستعرض للاتصال بالأجهزة الظاهرية في شبكتك الظاهرية عبر shell الآمن (SSH) أو بروتوكول سطح المكتب البعيد (RDP) باستخدام عناوين IP الخاصة بها. لا تحتاج الأجهزة الظاهرية إلى عناوين IP عامة أو برامج عميل أو تكوين خاص. لمزيد من المعلومات حول Azure Bastion، راجع Azure Bastion.

إشعار

يبدأ التسعير بالساعة من اللحظة التي يتم فيها نشر Bastion، بغض النظر عن استخدام البيانات الصادرة. لمزيد من المعلومات، راجع التسعير ووحدات SKU. إذا كنت تقوم بنشر Bastion كجزء من برنامج تعليمي أو اختبار، نوصي بحذف هذا المورد بعد الانتهاء من استخدامه.

  1. تكوين شبكة فرعية Azure Bastion لشبكتك الظاهرية. هذه الشبكة الفرعية محجوزة حصريا لموارد Azure Bastion ويجب تسميتها AzureBastionSubnet.

    $subnet = @{
        Name = 'AzureBastionSubnet'
        VirtualNetwork = $virtualNetwork
        AddressPrefix = '10.0.1.0/26'
    }
    $subnetConfig = Add-AzVirtualNetworkSubnetConfig @subnet
    
  2. تعيين التكوين.

    $virtualNetwork | Set-AzVirtualNetwork
    
  3. قم بإنشاء عنوان IP عام لـ Azure Bastion. يستخدم مضيف bastion عنوان IP العام للوصول إلى shell الآمن (SSH) وبروتوكول سطح المكتب البعيد (RDP) عبر المنفذ 443.

    $ip = @{
            ResourceGroupName = 'test-rg'
            Name = 'public-ip'
            Location = 'eastus2'
            AllocationMethod = 'Static'
            Sku = 'Standard'
            Zone = 1,2,3
    }
    New-AzPublicIpAddress @ip
    
  4. استخدم الأمر New-AzBastion لإنشاء مضيف SKU Azure Bastion قياسي جديد في AzureBastionSubnet.

    $bastion = @{
        Name = 'bastion'
        ResourceGroupName = 'test-rg'
        PublicIpAddressRgName = 'test-rg'
        PublicIpAddressName = 'public-ip'
        VirtualNetworkRgName = 'test-rg'
        VirtualNetworkName = 'vnet-1'
        Sku = 'Basic'
    }
    New-AzBastion @bastion
    

يستغرق توزيع موارد Bastion عدة دقائق.

قم بإنشاء نقطة نهاية خاصة

مطلوب خدمة Azure التي تدعم نقاط النهاية الخاصة لإعداد نقطة النهاية الخاصة والاتصال بالشبكة الظاهرية. للحصول على الأمثلة الواردة في هذه المقالة، نستخدم Azure App Services WebApp من المتطلبات الأساسية. لمزيد من المعلومات حول خدمات Azure التي تدعم نقطة نهاية خاصة، راجع توفر Azure Private Link.

يمكن أن يكون لنقطة النهاية الخاصة عنوان IP ثابت أو معين ديناميكيا.

هام

يجب أن يكون لديك تطبيق ويب لخدمات تطبيقات Azure تم نشره مسبقا لمتابعة الخطوات الواردة في هذه المقالة. لمزيد من المعلومات، راجع المتطلبات الأساسية.

في هذا القسم، ستقوم ب:

## Place the previously created webapp into a variable. ##
$webapp = Get-AzWebApp -ResourceGroupName test-rg -Name webapp-1

## Create the private endpoint connection. ## 
$pec = @{
    Name = 'connection-1'
    PrivateLinkServiceId = $webapp.ID
    GroupID = 'sites'
}
$privateEndpointConnection = New-AzPrivateLinkServiceConnection @pec

## Place the virtual network you created previously into a variable. ##
$vnet = Get-AzVirtualNetwork -ResourceGroupName 'test-rg' -Name 'vnet-1'

## Create the private endpoint. ##
$pe = @{
    ResourceGroupName = 'test-rg'
    Name = 'private-endpoint'
    Location = 'eastus2'
    Subnet = $vnet.Subnets[0]
    PrivateLinkServiceConnection = $privateEndpointConnection
}
New-AzPrivateEndpoint @pe

قم بتكوين منطقة خادم أسماء المجالات الخاصة

يتم استخدام منطقة DNS خاصة لحل اسم DNS لنقطة النهاية الخاصة في الشبكة الظاهرية. في هذا المثال، نستخدم معلومات DNS لتطبيق ويب Azure App Services، لمزيد من المعلومات حول تكوين DNS لنقاط النهاية الخاصة، راجع تكوين Azure Private Endpoint DNS.

في هذا القسم، ستقوم ب:

## Place the virtual network into a variable. ##
$vnet = Get-AzVirtualNetwork -ResourceGroupName 'test-rg' -Name 'vnet-1'

## Create the private DNS zone. ##
$zn = @{
    ResourceGroupName = 'test-rg'
    Name = 'privatelink.azurewebsites.net'
}
$zone = New-AzPrivateDnsZone @zn

## Create a DNS network link. ##
$lk = @{
    ResourceGroupName = 'test-rg'
    ZoneName = 'privatelink.azurewebsites.net'
    Name = 'dns-link'
    VirtualNetworkId = $vnet.Id
}
$link = New-AzPrivateDnsVirtualNetworkLink @lk

## Configure the DNS zone. ##
$cg = @{
    Name = 'privatelink.azurewebsites.net'
    PrivateDnsZoneId = $zone.ResourceId
}
$config = New-AzPrivateDnsZoneConfig @cg

## Create the DNS zone group. ##
$zg = @{
    ResourceGroupName = 'test-rg'
    PrivateEndpointName = 'private-endpoint'
    Name = 'zone-group'
    PrivateDnsZoneConfig = $config
}
New-AzPrivateDnsZoneGroup @zg

إنشاء جهاز ظاهري للاختبار

للتحقق من عنوان IP الثابت ووظيفة نقطة النهاية الخاصة، يلزم وجود جهاز ظاهري تجريبي متصل بشبكتك الظاهرية.

في هذا القسم، ستقوم ب:

## Create the credential for the virtual machine. Enter a username and password at the prompt. ##
$cred = Get-Credential

## Place the virtual network into a variable. ##
$vnet = Get-AzVirtualNetwork -Name vnet-1 -ResourceGroupName test-rg

## Create a network interface for the virtual machine. ##
$nic = @{
    Name = 'nic-1'
    ResourceGroupName = 'test-rg'
    Location = 'eastus2'
    Subnet = $vnet.Subnets[0]
}
$nicVM = New-AzNetworkInterface @nic

## Create the configuration for the virtual machine. ##
$vm1 = @{
    VMName = 'vm-1'
    VMSize = 'Standard_DS1_v2'
}
$vm2 = @{
    ComputerName = 'vm-1'
    Credential = $cred
}
$vm3 = @{
    PublisherName = 'MicrosoftWindowsServer'
    Offer = 'WindowsServer'
    Skus = '2022-Datacenter'
    Version = 'latest'
}
$vmConfig = 
New-AzVMConfig @vm1 | Set-AzVMOperatingSystem -Windows @vm2 | Set-AzVMSourceImage @vm3 | Add-AzVMNetworkInterface -Id $nicVM.Id

## Create the virtual machine. ##
New-AzVM -ResourceGroupName 'test-rg' -Location 'eastus2' -VM $vmConfig

إشعار

لا تحتاج الأجهزة الظاهرية في شبكة ظاهرية مع مضيف معقل إلى عناوين IP عامة. يوفر Bastion عنوان IP العام، وتستخدم الأجهزة الظاهرية عناوين IP الخاصة للاتصال داخل الشبكة. يمكنك إزالة عناوين IP العامة من أي أجهزة ظاهرية في الشبكات الظاهرية المستضافة الأساسية. لمزيد من المعلومات، راجع فصل عنوان IP عام من جهاز Azure الظاهري.

إشعار

يوفر Azure عنوان IP افتراضيا للوصول الصادر للأجهزة الظاهرية التي لم يتم تعيين عنوان IP عام لها أو الموجودة في تجمع الواجهة الخلفية لموازن تحميل Azure الأساسي الداخلي. توفر آلية IP للوصول الصادر الافتراضي عنوان IP صادر غير قابل للتكوين.

يتم تعطيل عنوان IP الافتراضي للوصول الصادر عند حدوث أحد الأحداث التالية:

  • يتم تعيين عنوان IP عام إلى الجهاز الظاهري.
  • يتم وضع الجهاز الظاهري في تجمع الواجهة الخلفية لموازن التحميل القياسي، مع قواعد صادرة أو بدونها.
  • يتم تعيين مورد Azure NAT Gateway إلى الشبكة الفرعية للجهاز الظاهري.

لا تتمتع الأجهزة الظاهرية التي تقوم بإنشائها باستخدام مجموعات مقياس الجهاز الظاهري في وضع التنسيق المرن بالوصول الصادر الافتراضي.

لمزيد من المعلومات حول الاتصالات الصادرة في Azure، راجع الوصول الصادر الافتراضي في Azure واستخدام ترجمة عنوان الشبكة المصدر (SNAT) للاتصالات الصادرة.

اختبر الاتصال بنقطة النهاية الخاصة

استخدم الجهاز الظاهري الذي قمت بإنشائه سابقا للاتصال بتطبيق الويب عبر نقطة النهاية الخاصة.

  1. في مربع البحث الموجود أعلى المدخل، أدخل Virtual machine. حدد "Virtual machines".

  2. حدد vm-1.

  3. في صفحة النظرة العامة ل vm-1، حدد Connect، ثم حدد علامة التبويب Bastion .

  4. حدد "Use Bastion".

  5. أدخل اسم المستخدم وكلمة المرور اللذين استخدمتهما عند إنشاء الجهاز الظاهري.

  6. حدد اتصال.

  7. بعد الاتصال، افتح PowerShell على الخادم.

  8. أدخل nslookup webapp-1.azurewebsites.net. تتلقى رسالة مشابهة للمثال التالي:

    Server:  UnKnown
    Address:  168.63.129.16
    
    Non-authoritative answer:
    Name:    webapp-1.privatelink.azurewebsites.net
    Address:  10.0.0.10
    Aliases:  webapp-1.azurewebsites.net
    

    يتم إرجاع عنوان IP خاص 10.0.0.10 لاسم تطبيق الويب إذا اخترت عنوان IP ثابت في الخطوات السابقة. هذا العنوان موجود في الشبكة الفرعية للشبكة الظاهرية التي تم إنشاؤها مسبقًا.

  9. في اتصال bastion إلى vm-1، افتح مستعرض الويب.

  10. أدخل عنوان URL لتطبيق الويب الخاص بك، https://webapp-1.azurewebsites.net.

    إذا لم يتم نشر تطبيق الويب الخاص بك، فستحصل على صفحة تطبيق الويب الافتراضية التالية:

    لقطة شاشة لصفحة تطبيق الويب الافتراضية على المستعرض.

تنظيف الموارد

عند عدم الحاجة، يمكنك استخدام الأمر Remove-AzResourceGroup لإزالة مجموعة الموارد والشبكة الظاهرية والموارد المتبقية.

Remove-AzResourceGroup -Name 'test-rg'

الخطوات التالية

لمزيد من المعلومات حول الخدمات التي تدعم نقطة نهاية خاصة، راجع: