تكوين نقاط النهاية الخاصة لمواضيع أو مجالات Azure Event Grid المخصصة

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

توضح هذه المقالة كيفية تكوين نقاط النهاية الخاصة للمواضيع أو المجالات المخصصة.

ملاحظة

حاليا، نقاط النهاية الخاصة غير مدعومة لموضوعات النظام.

استخدم بوابة Azure

يوضح لك هذا القسم كيفية استخدام مدخل Microsoft Azure لإنشاء نقطة نهاية خاصة لموضوع أو مجال.

ملاحظة

الخطوات الموضحة في هذا القسم مخصصة في الغالب للمواضيع المخصصة. تستطيع استخدام خطوات مشابهة لإنشاء نقاط نهاية خاصة لـ المجالات.

عند إنشاء موضوع جديد

يوضح لك هذا القسم كيفية تمكين الوصول إلى الشبكة الخاصة لموضوع أو مجال في Event Grid. للحصول على إرشادات خطوة بخطوة لإنشاء موضوع جديد، راجع إنشاء موضوع مخصص.

  1. في صفحة Basics بمعالج ، حدد Next: Networking أسفل الصفحة بعد ملء الحقول المطلوبة.

    صورة توضح اختيار رابط الشبكة في أسفل الصفحة.

  2. للسماح بالوصول إلى موضوع Event Grid عبر نقطة نهاية خاصة، حدد الخيار Private access.

    صورة توضح تحديد خيار الوصول الخاص على صفحة الشبكات في معالج إنشاء موضوع.

  3. راجع القسم التالي لمعرفة خطوات إضافة نقطة نهاية خاصة.

لموضوع موجود

  1. سجّل الدخول إلى مدخل Microsoft Azure ثم انتقل إلى الموضوع أو المجال الخاص بك.

  2. قم بالتبديل إلى علامة تبويب الشبكة في صفحة موضوعك. في علامة التبويب Public access، حدد Private endpoints only.

    لقطة شاشة تعرض صفحة الوصول إلى الشبكة العامة مع تحديد خيار نقاط النهاية الخاصة فقط.

  3. قم بالتبديل إلى علامة التبويب Private endpoint connections، ثم حدد + Private endpoint على شريط الأدوات.

    لقطة شاشة تعرض تحديد + ارتباط نقطة نهاية خاصة في علامة التبويب اتصال نقطة النهاية الخاصة.

  4. في صفحة الأساسيات، اتبع الخطوات الآتية:

    1. قم بتحديد اشتراك Azure الذي تريد إنشاء نقطة نهاية خاصة فيه.

    2. حدد مجموعة موارد Azure لنقطة النهاية الخاصة.

    3. أدخل اسمالنقطة النهاية.

    4. تحديث اسمواجهة الشبكة إذا لزم الأمر.

    5. حدد المنطقة لنقطة النهاية. يجب أن تكون نقطة النهاية الخاصة بك في نفس منطقة شبكتك الظاهرية، ولكن يمكن أن تكون في منطقة مختلفة عن مورد الارتباط الخاص (في هذا المثال، موضوع Event Grid).

    6. ثم حدد زر Next: Resource > أسفل الصفحة.

      لقطة شاشة تعرض صفحة الأساسيات لمعالج إنشاء نقطة نهاية خاصة.

  5. في صفحة المورد، اتبع هذه الخطوات، وتأكد من تحديد الموضوعللمورد الفرعي الهدف، ثم حدد الزر التالي: الشبكة >الظاهرية في أسفل الصفحة.

    لقطة شاشة تعرض صفحة الموارد لمعالج إنشاء نقطة نهاية خاصة.

  6. في صفحة الشبكة الظاهرية، تحدد الشبكة الفرعية في شبكة افتراضية إذ تريد نشر نقطة النهاية الخاصة.

    1. حدد شبكة افتراضية. يتم سرد الشبكات الافتراضية فقط الموجودة في الاشتراك والموقع المحددين حاليًا في القائمة المنسدلة.

    2. حدد شبكة فرعية في الشبكة الافتراضية التي حددتها.

    3. حدد ما إذا كنت تريد تخصيص عنوان IP بشكل ثابت أو ديناميكي.

    4. حدد مجموعة أمان تطبيق موجودة أو أنشئ واحدة ثم قم بإقرانها بنقطة النهاية الخاصة.

    5. حدد الزر التالي: DNS> أسفل الصفحة.

      لقطة شاشة تعرض صفحة الشبكات لمعالج إنشاء نقطة نهاية خاصة.

  7. في صفحة DNS ، حدد ما إذا كنت تريد دمج نقطة النهاية الخاصة مع منطقة DNS خاصة، ثم حدد التالي: العلامات في أسفل الصفحة.

    لقطة شاشة تعرض صفحة DNS لمعالج إنشاء نقطة نهاية خاصة.

  8. في صفحة العلامات، أنشئ أي علامات (أسماء وقيم) تريد إقرانها بمورد نقطة النهاية الخاصة. ثم حدد زر مراجعة + إنشاء أسفل الصفحة.

  9. في مراجعة + إنشاء، راجع جميع الإعدادات وحدد إنشاء لإنشاء نقطة النهاية الخاصة.

عند إنشاء نقطة نهاية خاصة، لا بد من الموافقة على الاتصال. إذا كان المورد الذي تقوم بإنشاء نقطة نهاية خاصة له موجودًا في دليلك، يمكنك الموافقة على طلب الاتصال بشرط أن تكون لديك أذونات كافية. لو كنت تتصل بمورد Azure في دليل آخر، فلا بد أن تنتظر حتى يوافق مالك هذا المورد على طلب الاتصال الخاص بك.

يوجد أربع حالات توفير:

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

كيفية إدارة اتصال نقطة نهاية خاصة

توضح الأقسام الآتية كيفية قبول اتصال نقطة نهاية خاصة أو رفضه.

  1. تسجيل الدخول إلى ⁧ 1⁩مدخل Microsoft Azure⁧2 ⁩.
  2. في شريط البحث، اكتب مواضيع شبكة الأحداث أو مجالات شبكة الأحداث.
  3. حدد الموضوع أو المجال الذي تريد إدارته.
  4. حدد علامة التبويب Networking
  5. لو كانت هناك أي اتصالات معلقة، فسترى اتصالاً مدرجًا مع معلق في حالة التوفير.

من أجل الموافقة على نقطة نهاية خاصة

بإمكانك الموافقة على نقطة نهاية خاصة في حالة معلقة. للموافقة، تتبع الخطوات الآتية:

ملاحظة

الخطوات الموضحة في هذا القسم خاصة بالمواضيع. تستطيع استخدام خطوات مشابهة للموافقة على نقاط النهاية الخاصة لـ المجالات.

  1. حدد نقطة النهاية الخاصة التي ترغب في الموافقة عليها، وحدد موافقة على شريط الأدوات.

    نقطة نهاية خاصة - حالة معلقة

  2. في مربع الحوار الموافقة على الاتصال، أدخل تعليقاً (اختيارياً) وحدد نعم.

    نقطة نهاية خاصة - موافقة

  3. قم بالتأكد من أنك ترى حالة نقطة النهاية على أنها تم الموافقة عليها.

    نقطة نهاية خاصة - حالة تمت الموافقة عليها

لرفض نقطة نهاية خاصة

تستطيع رفض نقطة نهاية خاصة في حالة التعليق أو الحالة المعتمدة. للرفض، تتبع الخطوات الآتية:

ملاحظة

الخطوات الموضحة في هذا القسم خاصة بالموضوعات. تستطيع استخدام خطوات مشابهة لرفض نقاط النهاية الخاصة لـ المجالات.

  1. حدد نقطة النهاية الخاصة التي تريد في رفضها، وحدد رفض على شريط الأدوات.

    لقطة شاشة تعرض

  2. في مربع الحوار رفض الاتصال، أدخل تعليقاً (اختيارياً) وحدد نعم.

    نقطة نهاية خاصة - رفض

  3. تأكد من أنك ترى حالة نقطة النهاية على أنها مرفوضة.

    نقطة نهاية خاصة - حالة مرفوضة

    ملاحظة

    لا يمكنك الموافقة على نقطة نهاية خاصة في بوابة Azure فور رفضها.

استخدام Azure CLI

لإنشاء نقطة نهاية خاصة، استخدم طريقة إنشاء نقطة نهاية خاصة لشبكة az كما هو موضح في المثال الآتي:

az network private-endpoint create \
    --resource-group <RESOURECE GROUP NAME> \
    --name <PRIVATE ENDPOINT NAME> \
    --vnet-name <VIRTUAL NETWORK NAME> \
    --subnet <SUBNET NAME> \
    --private-connection-resource-id "/subscriptions/<SUBSCRIPTION ID>/resourceGroups/<RESOURCE GROUP NAME>/providers/Microsoft.EventGrid/topics/<TOPIC NAME>" \
    --connection-name <PRIVATE LINK SERVICE CONNECTION NAME> \
    --location <LOCATION> \
    --group-ids topic

للحصول على أوصاف المعلمات المستخدمة في المثال، راجع وثائق إنشاء نقطة نهاية خاصة لشبكة az . بعض النقاط التي لا بد من ملاحظتها في هذا المثال هي:

  • بالنسبة إلى private-connection-resource-id، حدد معرف المورد للموضوع أو المجال. المثال السابق يستخدم النوع: الموضوع.
  • لـ group-ids، حدد topic أو domain. في المثال السابق، تم استخدام topic.

لحذف نقطة نهاية خاصة، استخدم طريقة حذف نقطة نهاية خاصة لشبكة az كما هو موضح في المثال التالي:

az network private-endpoint delete --resource-group <RESOURECE GROUP NAME> --name <PRIVATE ENDPOINT NAME>

ملاحظة

الخطوات الموضحة في هذا القسم خاصة بالموضوعات. تستطيع استخدام خطوات مشابهة لإنشاء نقاط نهاية خاصة لـ المجالات.

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

قم بتحديث ملحق Azure Event Grid لـ CLI عن طريق تشغيل الأمر الآتي:

az extension update -n eventgrid

إذا لم يتم تثبيت الامتداد، فقم بتشغيل الأمر الآتي لتثبيته:

az extension add -n eventgrid

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

لإنشاء نقطة نهاية خاصة، استخدم طريقة إنشاء نقطة نهاية خاصة لشبكة az كما هو موضح في المثال الآتي:

az network private-endpoint create \
    --resource-group <RESOURECE GROUP NAME> \
    --name <PRIVATE ENDPOINT NAME> \
    --vnet-name <VIRTUAL NETWORK NAME> \
    --subnet <SUBNET NAME> \
    --private-connection-resource-id "/subscriptions/<SUBSCRIPTION ID>/resourceGroups/<RESOURCE GROUP NAME>/providers/Microsoft.EventGrid/topics/<TOPIC NAME>" \
    --connection-name <PRIVATE LINK SERVICE CONNECTION NAME> \
    --location <LOCATION> \
    --group-ids topic

للحصول على أوصاف المعلمات المستخدمة في المثال، راجع وثائق إنشاء نقطة نهاية خاصة لشبكة az . بعض النقاط التي لا بد من ملاحظتها في هذا المثال هي:

  • بالنسبة إلى private-connection-resource-id، حدد معرف المورد للموضوع أو المجال. المثال السابق يستخدم النوع: الموضوع.
  • لـ group-ids، حدد topic أو domain. في المثال السابق، تم استخدام topic.

لحذف نقطة نهاية خاصة، استخدم طريقة حذف نقطة نهاية خاصة لشبكة az كما هو موضح في المثال التالي:

az network private-endpoint delete --resource-group <RESOURECE GROUP NAME> --name <PRIVATE ENDPOINT NAME>

ملاحظة

الخطوات الموضحة في هذا القسم خاصة بالموضوعات. تستطيع استخدام خطوات مشابهة لإنشاء نقاط نهاية خاصة لـ المجالات.

عينة نصية

فيما يلي نموذج لبرنامج نصي يقوم بإنشاء موارد Azure الآتية:

  • مجموعة الموارد
  • شبكة ظاهرية
  • الشبكة الفرعية في الشبكة الظاهرية
  • موضوع Azure Event Grid
  • نقطة نهاية خاصة للموضوع

ملاحظة

الخطوات الموضحة في هذا القسم خاصة بالموضوعات. تستطيع استخدام خطوات مشابهة لإنشاء نقاط نهاية خاصة للمجالات.

subscriptionID="<AZURE SUBSCRIPTION ID>"
resourceGroupName="<RESOURCE GROUP NAME>"
location="<LOCATION>"
vNetName="<VIRTUAL NETWORK NAME>"
subNetName="<SUBNET NAME>"
topicName = "<TOPIC NAME>"
connectionName="<ENDPOINT CONNECTION NAME>"
endpointName=<ENDPOINT NAME>

# resource ID of the topic. replace <SUBSCRIPTION ID>, <RESOURCE GROUP NAME>, and <TOPIC NAME> 
# topicResourceID="/subscriptions/<SUBSCRIPTION ID>/resourceGroups/<RESOURCE GROUP NAME>/providers/Microsoft.EventGrid/topics/<TOPIC NAME>"

# select subscription
az account set --subscription $subscriptionID

# create resource group
az group create --name $resourceGroupName --location $location

# create vnet 
az network vnet create \
    --resource-group $resourceGroupName \
    --name $vNetName \
    --address-prefix 10.0.0.0/16

# create subnet
az network vnet subnet create \
    --resource-group $resourceGroupName \
    --vnet-name $vNetName \
    --name $subNetName \
    --address-prefixes 10.0.0.0/24

# disable private endpoint network policies for the subnet
az network vnet subnet update \
    --resource-group $resourceGroupName \
    --vnet-name $vNetName \
    --name $subNetName \
    --disable-private-endpoint-network-policies true

# create event grid topic. update <LOCATION>
az eventgrid topic create \
    --resource-group $resourceGroupName \
    --name $topicName \
    --location $location

# verify that the topic was created.
az eventgrid topic show \
    --resource-group $resourceGroupName \
    --name $topicName

# create private endpoint for the topic you created
az network private-endpoint create \
    --resource-group $resourceGroupName \
    --name $endpointName \
    --vnet-name $vNetName \
    --subnet $subNetName \
    --private-connection-resource-id $topicResourceID \
    --connection-name $connectionName \
    --location $location \
    --group-ids topic

# get topic 
az eventgrid topic show \
    --resource-group $resourceGroupName \
    --name $topicName

الموافقة على نقطة نهاية خاصة

يوضح لك نموذج قصاصة برمجية CLI الآتي كيفية الموافقة على اتصال نقطة نهاية خاصة.

az eventgrid topic private-endpoint-connection approve \
    --resource-group $resourceGroupName \
    --topic-name $topicName \
    --name  $endpointName \
    --description "connection approved"

ارفض نقطة نهاية خاصة

يوضح لك قصاصة برمجية CLI النموذجي الآتي كيفية رفض اتصال نقطة نهاية خاصة.

az eventgrid topic private-endpoint-connection reject \
    --resource-group $resourceGroupName \
    --topic-name $topicName \
    --name $endpointName \
    --description "Connection rejected"

قم بتعطيل الوصول إلى الشبكة العامة

افتراضياً، يتم تمكين الوصول إلى الشبكة العامة لموضوع أو مجال "شبكة الأحداث". للسماح بالوصول عبر نقاط النهاية الخاصة فقط، قم بتعطيل الوصول إلى الشبكة العامة عن طريق تشغيل الأمر الآتي:

az eventgrid topic update \
    --resource-group $resourceGroupName \
    --name $topicName \
    --public-network-access disabled

استخدام PowerShell

هذا القسم يوضح لك كيفية إنشاء نقطة نهاية خاصة لموضوع أو مجال باستخدام PowerShell. إليك نموذج نص برمجي مع تعليقات.


# name of an Azure resource group to be created
$resourceGroupName = "contosorg"

# location where you want the resources to be created
$location ="eastus"

# name of the VNet to be created
$vnetName = "contosovnet"

# name of the subnet to be created in the VNet
$subnetName = "example-privatelinksubnet"

# name of the Event Grid topic to be created
$egridTopicName = "contosotopic"

# name of the private link service connection to be created
$privateLinkServiceConnectionName = "spegridplsconn"

# name of the private endpoint connection to be created
$privateEndpointConnectionName = "spegridpe11"

#

# create resource group
New-AzResourceGroup -Name $resourceGroupName -Location $location

# create virtual network
$virtualNetwork = New-AzVirtualNetwork `
                    -ResourceGroupName $resourceGroupName `
                    -Location $location `
                    -Name $vnetName  `
                    -AddressPrefix 10.0.0.0/16

# create subnet with endpoint network policy disabled
$subnetConfig = Add-AzVirtualNetworkSubnetConfig `
                    -Name $subnetName `
                    -AddressPrefix 10.0.0.0/24 `
                    -PrivateEndpointNetworkPoliciesFlag "Disabled" `
                    -VirtualNetwork $virtualNetwork

# update virtual network
$virtualNetwork | Set-AzVirtualNetwork

# get virtual network (optional)
$virtualNetwork = Get-AzVirtualNetwork `
                    -ResourceGroupName $resourceGroupName `
                    -Name $vnetName 

# create an Event Grid topic with public network access disabled. 
$topic = New-AzEventGridTopic -ResourceGroupName $resourceGroupName -Name $egridTopicName -Location $location -PublicNetworkAccess disabled

# create a private link service connection to the Event Grid topic. 
# For topics, set GroupId to 'topic'. For domains, it's 'domain'
$privateEndpointConnection = New-AzPrivateLinkServiceConnection `
                                -Name "privateLinkServiceConnectionName" `
                                -PrivateLinkServiceId $topic.id `
                                -GroupId "topic"

# get subnet info
$subnet = $virtualNetwork | Select -ExpandProperty subnets `
                             | Where-Object  {$_.Name -eq $subnetName }  

# now, you are ready to create a private endpoint 
$privateEndpoint = New-AzPrivateEndpoint -ResourceGroupName $resourceGroupName  `
                                        -Name privateEndpointConnectionName   `
                                        -Location $location `
                                        -Subnet  $subnet   `
                                        -PrivateLinkServiceConnection $privateEndpointConnection

# verify that the endpoint is created
Get-AzPrivateEndpoint -ResourceGroupName $resourceGroupName  -Name privateEndpointConnectionName  

الموافقة على اتصال نقطة نهاية خاصة

يوضح لك قصاصة برمجية PowerShell النموذجي الآتي كيفية الموافقة على نقطة نهاية خاصة.

ملاحظة

الخطوات الموضحة في هذا القسم خاصة بالموضوعات. تستطيع استخدام خطوات مشابهة للموافقة على نقاط النهاية الخاصة لـ المجالات.


# list all private endpoints for the topic
$topic = Get-AzEventGridTopic -ResourceGroup <RESOURCE GROUP NAME> - Name <TOPIC NAME>
$endpointList = Get-AzPrivateEndpointConnection -PrivateLinkResourceId $topic.Id

# filter the private endpoints using a name
 $pseEndpoint = $endpointList | Where-Object {     $_.Name.StartsWith('<MYENDPOINTNAME>') }

# approve the endpoint connection
Approve-AzPrivateEndpointConnection -ResourceId $pseEndpoint.Id

# get the endpoint connection to verify that it's approved
Get-AzPrivateEndpointConnection -ResourceId $pseEndpoint.Id

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

يوضح لك المثال الآتي كيفية رفض نقطة نهاية خاصة باستخدام PowerShell. بإمكانك الحصول على GUID لنقطة النهاية الخاصة من نتيجة أمر GET السابق.

ملاحظة

الخطوات الموضحة في هذا القسم خاصة بالموضوعات. تستطيع استخدام خطوات مشابهة لرفض نقاط النهاية الخاصة لـ المجالات.

# list all private endpoints for the topic
$topic = Get-AzEventGridTopic -ResourceGroup <RESOURCE GROUP NAME> - Name <TOPIC NAME>
$endpointList = Get-AzPrivateEndpointConnection -PrivateLinkResourceId $topic.Id


# filter the private endpoints using a name
 $pseEndpoint = $endpointList | Where-Object {     $_.Name.StartsWith('<MYENDPOINT>') }

# deny or reject the private endpoint connection
Deny-AzPrivateEndpointConnection -ResourceId $pseEndpoint.Id

# get the endpoint connection to verify that it's rejected
Get-AzPrivateEndpointConnection -ResourceId $pseEndpoint.Id

يمكنك الموافقة على الاتصال حتى بعد رفضه خلال API. إذا كنت تستخدم مدخل Microsoft Azure، فلا يمكنك الموافقة على نقطة نهاية قد تم رفضها.

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