تمكنك نقاط تقديم خدمة الشبكة الظاهرية من تقييد الوصول إلى الشبكة إلى بعض موارد خدمة Azure إلى شبكة فرعية لشبكة ظاهرية. يمكنك أيضًا إزالة وصول الإنترنت إلى الموارد. توفر نقاط تقديم الخدمة اتصالاً مباشرًا من الشبكة الظاهرية بخدمات Azure المدعومة، مما يسمح لك باستخدام مساحة العنوان الخاصة بالشبكة الظاهرية للوصول إلى خدمات Azure. تظل دائمًا نسبة استخدام الشبكة الموجهة إلى موارد Azure من خلال نقاط نهاية الخدمة على شبكة Microsoft Azure الأساسية.
في هذا البرنامج التعليمي، تتعلم كيفية:
- إنشاء شبكة افتراضية باستخدام شبكة فرعية
- إضافة شبكة فرعية لتمكين نقطة نهاية خدمة
- إنشاء مورد Azure والسماح للشبكة بالوصول إليه من شبكة فرعية فقط
- توزيع جهاز ظاهري (VM) على كل شبكة فرعية
- تأكيد الوصول إلى مورد من شبكة فرعية
- تأكيد رفض الوصول إلى مورد من شبكة فرعية والإنترنت
المتطلبات الأساسية
في حال لم يكن لديك اشتراك Azure، فأنشئ حساباً مجانيّاً قبل البدء.
Azure Cloud Shell
Azure يستضيف Azure Cloud Shell، بيئة تفاعلية يمكن استخدامها من خلال المستعرض. يمكنك استخدام Bash أو PowerShell مع Cloud Shell للعمل مع خدمات Azure. يمكنك استخدام أوامر Cloud Shell المثبتة مسبقًا لتشغيل التعليمات البرمجية في هذه المقالة دون الحاجة إلى تثبيت أي شيء على البيئة المحلية.
لبدء Azure Cloud Shell:
| خيار |
مثال/ رابط |
| انقر فوق جربه في الزاوية العلوية اليسرى من التعليمة البرمجية أو كتلة الأمر. تحديد جربه لا يقوم بنسخ التعليمة البرمجية أو الأمر تلقائيًا إلى Cloud Shell. |
|
| انتقل إلى https://shell.azure.com، أو حدد زر تشغيل Cloud Shell لفتح Cloud Shell في المتصفح لديك. |
|
|
حدد زر Cloud Shell على شريط القوائم في أعلى اليمين في مدخل Microsoft Azure. |
|
لاستخدام Azure Cloud Shell:
ابدأ تشغيل Cloud Shell.
حدد الزر نسخ على كتلة التعليمات البرمجية (أو كتلة الأوامر) لنسخ التعليمات البرمجية أو الأمر.
ألصق التعليمة البرمجية أو الأمر في جلسة Cloud Shell بتحديد Ctrl+Shift+Vعلى Windows وLunix، أو بتحديد Cmd+Shift+Vعلى macOS.
حدد Enter لتشغيل التعليمات البرمجية أو الأمر.
إذا اخترت تثبيت PowerShell واستخدامه محليًا، فهذه المقالة تتطلب إصدار الوحدة النمطية 1.0.0 من Azure PowerShell، أو إصدارًا أحدث. بادر بتشغيل Get-Module -ListAvailable Az للعثور على الإصدار المثبت. إذا كنت بحاجة إلى الترقية، فراجع تثبيت الوحدة النمطية Azure PowerShell. في حالة تشغيل PowerShell محليًا، فأنت بحاجة أيضًا إلى تشغيل Connect-AzAccount لإنشاء اتصال مع Azure.
إذا لم يكن لديك حساب Azure، فأنشئ حساباً مجانياً قبل أن تبدأ.
- تتطلب هذه المقالة الإصدار 2.0.28 أو إصدارًا أحدث من واجهة سطر الأوامر من Azure. إذا كنت تستخدم Azure Cloud Shell، يتم تثبيت أحدث إصدار بالفعل.
إنشاء مجموعة موارد
قم بتسجيل الدخول إلى بوابة Azure.
في مربع البحث في أعلى المدخل، أدخل «Resource group». حدد "Resource groups" في نتائج البحث.
حدد + إنشاء.
في تبويب الأساسيات في إنشاء مجموعة موارد، أدخل، أو اختر المعلومات التالية:
| الإعداد |
القيمة |
|
تفاصيل المشروع |
|
| الاشتراك |
حدد Subscription الخاص بك. |
| مجموعة الموارد |
أدخل test-rg. |
| المنطقة |
حدد شرق الولايات المتحدة 2. |
حدد "Review + create".
حدد إنشاء.
إنشاء شبكة ظاهرية
في مربع البحث أعلى البوابة، أدخل Virtual network. حدد الشبكات الظاهرية في نتائج البحث.
حدد + إنشاء.
في علامة التبويب Basics في Create virtual network، أدخل المعلومات التالية أو حددها:
| الإعداد |
القيمة |
|
تفاصيل المشروع |
|
| الاشتراك |
حدد Subscription الخاص بك. |
| مجموعة الموارد |
حدد test-rg. |
|
تفاصيل المثيل |
|
| الاسم |
أدخل vnet-1. |
| المنطقة |
حدد شرق الولايات المتحدة 2. |
حدد التالي للمتابعة إلى علامة التبويب الأمان .
حدد التالي للمتابعة إلى علامة التبويب عناوين IP.
في مربع مساحة العنوان في الشبكات الفرعية، حدد الشبكة الفرعية الافتراضية.
في الشبكة الفرعية التحريرية، أدخل، أو اختر المعلومات التالية:
| الإعداد |
القيمة |
|
تفاصيل الشبكة الفرعية |
|
| قالب الشبكة الفرعية |
اترك الافتراضي الافتراضي. |
| الاسم |
أدخل subnet-1. |
| عنوان البدء |
اترك الإعداد الافتراضي 10.0.0.0. |
| حجم الشبكة الفرعية |
اترك القيمة الافتراضية ل /24 (256 عنوانا) . |
حدد حفظ.
حدد Review + create في أسفل الشاشة، وعند اجتياز التحقق من الصحة، حدد Create.
نشر Azure Bastion
يستخدم Azure Bastion المستعرض للاتصال بالأجهزة الظاهرية في شبكتك الظاهرية عبر shell الآمن (SSH) أو بروتوكول سطح المكتب البعيد (RDP) باستخدام عناوين IP الخاصة بها. لا تحتاج الأجهزة الظاهرية إلى عناوين IP عامة أو برامج عميل أو تكوين خاص. لمزيد من المعلومات حول Azure Bastion، راجع Azure Bastion.
إشعار
يبدأ التسعير بالساعة من اللحظة التي يتم فيها نشر Bastion، بغض النظر عن استخدام البيانات الصادرة. لمزيد من المعلومات، راجع التسعير ووحدات SKU. إذا كنت تقوم بنشر Bastion كجزء من برنامج تعليمي أو اختبار، نوصي بحذف هذا المورد بعد الانتهاء من استخدامه.
في مربع البحث أعلى المدخل، أدخل Bastion. اختر الباستيونز في نتائج البحث.
حدد + إنشاء.
في تبويب الأساسيات في إنشاء حصن، أدخل، أو اختر المعلومات التالية:
| الإعداد |
القيمة |
|
تفاصيل المشروع |
|
| الاشتراك |
حدد Subscription الخاص بك. |
| مجموعة الموارد |
حدد test-rg. |
|
تفاصيل المثيل |
|
| الاسم |
أدخل bastion. |
| المنطقة |
حدد شرق الولايات المتحدة 2. |
| المستوى |
اختر المطور. |
|
تكوين الشبكات الظاهرية |
|
| الشبكة الظاهرية |
حدد vnet-1. |
حدد "Review + create".
حدد إنشاء.
تمكين نقطة نهاية خدمة
يتم تمكين نقاط تقديم الخدمة لكل خدمة، لكل شبكة فرعية.
في مربع البحث في أعلى صفحة المدخل، ابحث عن الشبكة الظاهرية. حدد الشبكات الظاهرية في نتائج البحث.
في الشبكات الظاهرية، حدد vnet-1.
في قسم Settings في vnet-1، حدد Subnets.
حدد + الشبكة الفرعية.
في صفحة إضافة شبكة فرعية، أدخل المعلومات التالية أو حددها:
| الإعداد |
القيمة |
| الاسم |
الشبكة الفرعية الخاصة |
| نطاق عنوان الشبكة الفرعية |
اترك الإعداد الافتراضي 10.0.2.0/24. |
|
نقاط نهاية الخدمة |
|
| الخدمات |
اختر Microsoft.Storage |
حدد حفظ.
إنشاء شبكة ظاهرية
قبل إنشاء شبكة ظاهرية، يجب عليك إنشاء مجموعة موارد للشبكة الظاهرية، وجميع الموارد الأخرى التي تم إنشاؤها في هذه المقالة. قم بإنشاء مجموعة موارد باستخدام New-AzResourceGroup. ينشئ المثال التالي مجموعة موارد تسمى test-rg:
$rg = @{
ResourceGroupName = "test-rg"
Location = "westus2"
}
New-AzResourceGroup @rg
أنشئ شبكة افتراضية باستخدام New-AzVirtualNetwork. ينشئ المثال التالي شبكة ظاهرية تسمى vnet-1 مع بادئة العنوان 10.0.0.0/16.
$vnet = @{
ResourceGroupName = "test-rg"
Location = "westus2"
Name = "vnet-1"
AddressPrefix = "10.0.0.0/16"
}
$virtualNetwork = New-AzVirtualNetwork @vnet
إنشاء تكوين شبكة فرعية باستخدام New-AzVirtualNetworkSubnetConfig. ينشئ المثال التالي تكوين شبكة فرعية لشبكة فرعية تسمى subnet-public:
$subpub = @{
Name = "subnet-public"
AddressPrefix = "10.0.0.0/24"
VirtualNetwork = $virtualNetwork
}
$subnetConfigPublic = Add-AzVirtualNetworkSubnetConfig @subpub
قم بإنشاء الشبكة الفرعية في الشبكة الظاهرية عن طريق كتابة تكوين الشبكة الفرعية في الشبكة الظاهرية باستخدام Set-AzVirtualNetwork:
$virtualNetwork | Set-AzVirtualNetwork
إنشاء شبكة فرعية أخرى في الشبكة الظاهرية. في هذا المثال، يتم إنشاء شبكة فرعية تسمى subnet-private مع نقطة نهاية خدمة ل Microsoft.Storage:
$subpriv = @{
Name = "subnet-private"
AddressPrefix = "10.0.2.0/24"
VirtualNetwork = $virtualNetwork
ServiceEndpoint = "Microsoft.Storage"
}
$subnetConfigPrivate = Add-AzVirtualNetworkSubnetConfig @subpriv
$virtualNetwork | Set-AzVirtualNetwork
نشر Azure Bastion
يستخدم Azure Bastion المستعرض للاتصال بالأجهزة الظاهرية في شبكتك الظاهرية عبر Secure Shell (SSH) أو بروتوكول سطح المكتب البعيد (RDP) باستخدام عناوين IP الخاصة بها. لا تحتاج الأجهزة الظاهرية إلى عناوين IP عامة أو برامج عميل أو تكوين خاص. لمزيد من المعلومات عن باستيون، راجع ما هو أزور باستيون؟
يبدأ التسعير بالساعة من اللحظة التي يتم فيها نشر Bastion، بغض النظر عن استخدام البيانات الصادرة. لمزيد من المعلومات، راجع التسعير ووحدات SKU. إذا كنت تقوم بنشر Bastion كجزء من برنامج تعليمي أو اختبار، نوصي بحذف هذا المورد بعد الانتهاء من استخدامه.
تكوين شبكة فرعية Bastion لشبكتك الظاهرية. هذه الشبكة الفرعية محجوزة حصريا لموارد Bastion ويجب تسميتها AzureBastionSubnet.
$subnet = @{
Name = 'AzureBastionSubnet'
VirtualNetwork = $virtualNetwork
AddressPrefix = '10.0.1.0/26'
}
$subnetConfig = Add-AzVirtualNetworkSubnetConfig @subnet
تعيين التكوين:
$virtualNetwork | Set-AzVirtualNetwork
إنشاء عنوان IP عام ل Bastion. يستخدم مضيف Bastion عنوان IP العام للوصول إلى SSH وRDP عبر المنفذ 443.
$ip = @{
ResourceGroupName = 'test-rg'
Name = 'public-ip'
Location = 'westus2'
AllocationMethod = 'Static'
Sku = 'Standard'
Zone = 1,2,3
}
New-AzPublicIpAddress @ip
استخدم أمر New-AzBastion لإنشاء مضيف جديد لوحدة SKU الأساسية في AzureBastionSubnet:
$bastion = @{
Name = 'bastion'
ResourceGroupName = 'test-rg'
PublicIpAddressRgName = 'test-rg'
PublicIpAddressName = 'public-ip'
VirtualNetworkRgName = 'test-rg'
VirtualNetworkName = 'vnet-1'
Sku = 'Basic'
}
New-AzBastion @bastion -AsJob
يستغرق نشر موارد Bastion حوالي 10 دقائق. يمكنك إنشاء أجهزة ظاهرية في القسم التالي أثناء توزيع Bastion على شبكتك الظاهرية.
إنشاء شبكة ظاهرية
قبل إنشاء شبكة ظاهرية، يجب عليك إنشاء مجموعة موارد للشبكة الظاهرية، وجميع الموارد الأخرى التي تم إنشاؤها في هذه المقالة. أنشئ مجموعة موارد باستخدام إنشاء مجموعة az. ينشئ المثال التالي مجموعة موارد تسمى test-rg في موقع westus2 .
az group create \
--name test-rg \
--location westus2
قم بإنشاء شبكة ظاهرية بشبكة فرعية واحدة باستخدام الأمر az network vnet create.
az network vnet create \
--name vnet-1 \
--resource-group test-rg \
--address-prefix 10.0.0.0/16 \
--subnet-name subnet-public \
--subnet-prefix 10.0.0.0/24
يمكنك تمكين نقاط تقديم الخدمة فقط للخدمات التي تدعم نقاط تقديم الخدمة. اعرض الخدمات المجهزة بنقطة تقديم الخدمة المتوفرة في موقع Azure باستخدام az network vnet list-endpoint-services. يقوم المثال التالي بإرجاع قائمة بالخدمات الممكنة لنقطة نهاية الخدمة المتوفرة في منطقة westus2 . ستزداد قائمة الخدمات التي يتم عرضها بمرور الوقت كلما تم تمكين المزيد من خدمات Azure لنقطة تقديم الخدمة.
az network vnet list-endpoint-services \
--location westus2 \
--out table
إنشاء شبكة فرعية أخرى في الشبكة الظاهرية باستخدام az network vnet subnet create. في هذا المثال، يتم إنشاء نقطة نهاية خدمة للشبكة Microsoft.Storage الفرعية:
az network vnet subnet create \
--vnet-name vnet-1 \
--resource-group test-rg \
--name subnet-private \
--address-prefix 10.0.1.0/24 \
--service-endpoints Microsoft.Storage
إنشاء شبكة فرعية لباسشن باستخدام شبكة z، شبكة vnet subnet.
az network vnet subnet create \
--vnet-name vnet-1 \
--resource-group test-rg \
--name AzureBastionSubnet \
--address-prefix 10.0.2.0/26
إنشاء عنوان IP عام لمضيف Azure Bastion باستخدام az network public-ip create.
az network public-ip create \
--resource-group test-rg \
--name public-ip-bastion \
--sku Standard \
--location westus2
إنشاء مضيف Azure Bastion باستخدام az network bastion create.
az network bastion create \
--resource-group test-rg \
--name bastion \
--vnet-name vnet-1 \
--public-ip-address public-ip-bastion \
--location westus2 \
--sku Basic \
--no-wait
تقييد وصول شبكة فرعية إلى الشبكة
بشكل افتراضي، يمكن لجميع مثيلات الجهاز الظاهري في الشبكة الفرعية الاتصال بأي موارد. يمكنك تقييد الاتصال من وإلى كافة الموارد في شبكة فرعية عن طريق إنشاء مجموعة أمان شبكة اتصال وربطها بالشبكة الفرعية.
في مربع البحث في أعلى صفحة المدخل، ابحث عن مجموعة أمان الشبكة. حدد "Network security group" في نتائج البحث.
في مجموعات أمان الشبكة، حدد + إنشاء.
في علامة التبويب "Basics""Create network security group"، أدخل أو حدد المعلومات التالية:
| الإعداد |
القيمة |
|
تفاصيل المشروع |
|
| الاشتراك |
حدد Subscription الخاص بك. |
| مجموعة الموارد |
حدد test-rg. |
|
تفاصيل المثيل |
|
| الاسم |
أدخل nsg-storage. |
| المنطقة |
حدد شرق الولايات المتحدة 2. |
حدد Review + create، ثم حدد Create.
إنشاء مجموعة أمان شبكة باستخدام New-AzNetworkSecurityGroup. ينشئ المثال التالي مجموعة أمان شبكة تسمى nsg-private.
$nsgpriv = @{
ResourceGroupName = 'test-rg'
Location = 'westus2'
Name = 'nsg-private'
}
$nsg = New-AzNetworkSecurityGroup @nsgpriv
إنشاء مجموعة أمان الشبكة باستخدام az network nsg create. ينشئ المثال التالي مجموعة أمان شبكة تسمى nsg-private.
az network nsg create \
--resource-group test-rg \
--name nsg-private
إنشاء قواعد مجموعة أمان الشبكة الصادرة (NSG)
في مربع البحث في أعلى صفحة المدخل، ابحث عن مجموعة أمان الشبكة. حدد "Network security group" في نتائج البحث.
حدد nsg-storage.
حدد "Outbound security rules" في "Settings".
حدد + إضافة.
أنشئ قاعدة تسمح بالاتصال الصادر بخدمة Azure Storage. أدخل المعلومات التالية أو حددها في إضافة قاعدة أمان صادرة:
| الإعداد |
القيمة |
| المصدر |
حدد علامة الخدمة. |
| علامة خدمة المصدر |
حدد VirtualNetwork. |
| نطاقات منافذ المصادر |
اترك الإعداد الافتراضي الخاص بـ *. |
| الوجهة |
حدد علامة الخدمة. |
| علامة خدمة الوجهة |
اختار التخزين . |
| الخدمة |
اترك الإعداد الافتراضي مخصص. |
| نطاقات المنفذ الوجهات |
أدخل 445. |
| البروتوكول |
حدد "Any". |
| الإجراء |
حدد السماح. |
| أولوية |
اترك القيمة الافتراضية 100. |
| الاسم |
أدخل allow-storage-all. |
حدد + إضافة.
إنشاء قاعدة أمان صادرة أخرى تمنع الاتصال بالإنترنت. تتجاوز هذه القاعدة قاعدة افتراضية في كل مجموعات أمان الشبكة تسمح بالاتصال بالإنترنت الصادر. أكمل الخطوات السابقة بالقيم التالية في إضافة قاعدة أمان صادرة:
| الإعداد |
القيمة |
| المصدر |
حدد علامة الخدمة. |
| علامة خدمة المصدر |
حدد VirtualNetwork. |
| نطاقات منافذ المصادر |
اترك الإعداد الافتراضي الخاص بـ *. |
| الوجهة |
حدد علامة الخدمة. |
| علامة خدمة الوجهة |
حدد Internet. |
| الخدمة |
اترك الإعداد الافتراضي مخصص. |
| نطاقات المنفذ الوجهات |
أدخل *. |
| البروتوكول |
حدد "Any". |
| الإجراء |
حدد Deny. |
| أولوية |
اترك القيمة الافتراضية 110. |
| الاسم |
أدخل deny-internet-all. |
حدد إضافة.
في مربع البحث في أعلى صفحة المدخل، ابحث عن مجموعة أمان الشبكة. حدد "Network security group" في نتائج البحث.
حدد nsg-storage.
حدد الشبكات الفرعية في الإعدادات.
حدد + مساعد .
في Associate subnet، حدد vnet-1 في Virtual network. حدد subnet-private في الشبكة الفرعية.
حدد موافق.
قم بإنشاء قاعدة مجموعة أمان الشبكة باستخدام New-AzNetworkSecurityRuleConfig. تسمح القاعدة التالية بالوصول الصادر إلى عناوين IP العامة المعينة لخدمة Azure Storage:
$r1 = @{
Name = "Allow-Storage-All"
Access = "Allow"
DestinationAddressPrefix = "Storage"
DestinationPortRange = "*"
Direction = "Outbound"
Priority = 100
Protocol = "*"
SourceAddressPrefix = "VirtualNetwork"
SourcePortRange = "*"
}
$rule1 = New-AzNetworkSecurityRuleConfig @r1
تمنع القاعدة التالية الوصول إلى جميع عناوين IP العامة. تتجاوز القاعدة السابقة هذه القاعدة، نظراً لأولويتها العليا، والتي تسمح بالوصول إلى عناوين IP العامة لـ Azure Storage.
$r2 = @{
Name = "Deny-Internet-All"
Access = "Deny"
DestinationAddressPrefix = "Internet"
DestinationPortRange = "*"
Direction = "Outbound"
Priority = 110
Protocol = "*"
SourceAddressPrefix = "VirtualNetwork"
SourcePortRange = "*"
}
$rule2 = New-AzNetworkSecurityRuleConfig @r2
استخدم Get-AzNetworkSecurityGroup لاسترداد كائن مجموعة أمان الشبكة إلى متغير. استخدم Set-AzNetworkSecurityRuleConfig لإضافة القواعد إلى مجموعة أمان الشبكة.
# Retrieve the existing network security group
$nsgpriv = @{
ResourceGroupName = 'test-rg'
Name = 'nsg-private'
}
$nsg = Get-AzNetworkSecurityGroup @nsgpriv
# Add the new rules to the security group
$nsg.SecurityRules += $rule1
$nsg.SecurityRules += $rule2
# Update the network security group with the new rules
Set-AzNetworkSecurityGroup -NetworkSecurityGroup $nsg
قم بإقران مجموعة أمان الشبكة بالشبكة الفرعية الخاصة بالشبكة الفرعية مع Set-AzVirtualNetworkSubnetConfig ثم اكتب تكوين الشبكة الفرعية إلى الشبكة الظاهرية. يربط المثال التالي مجموعة أمان الشبكة nsg-private بالشبكة الفرعية الخاصة بالشبكة الفرعية:
$subnet = @{
VirtualNetwork = $VirtualNetwork
Name = "subnet-private"
AddressPrefix = "10.0.2.0/24"
ServiceEndpoint = "Microsoft.Storage"
NetworkSecurityGroup = $nsg
}
Set-AzVirtualNetworkSubnetConfig @subnet
$virtualNetwork | Set-AzVirtualNetwork
أنشئ قواعد أمان باستخدام az network nsg rule create. تسمح القاعدة التالية بالوصول الصادر إلى عناوين IP العامة المعينة لخدمة Azure Storage:
az network nsg rule create \
--resource-group test-rg \
--nsg-name nsg-private \
--name Allow-Storage-All \
--access Allow \
--protocol "*" \
--direction Outbound \
--priority 100 \
--source-address-prefix "VirtualNetwork" \
--source-port-range "*" \
--destination-address-prefix "Storage" \
--destination-port-range "*"
تحتوي كل مجموعة أمان شبكة على العديد من قواعد الأمان الافتراضية. تمنع القاعدة التالية قاعدة أمان افتراضية تسمح بالوصول الصادر إلى كل عناوين IP العامة. يرفض الخيار destination-address-prefix "Internet" الوصول الصادر إلى كل عناوين IP العامة. تتجاوز القاعدة السابقة هذه القاعدة، نظراً لأولويتها العليا، والتي تسمح بالوصول إلى عناوين IP العامة لـ Azure Storage.
az network nsg rule create \
--resource-group test-rg \
--nsg-name nsg-private \
--name Deny-Internet-All \
--access Deny \
--protocol "*" \
--direction Outbound \
--priority 110 \
--source-address-prefix "VirtualNetwork" \
--source-port-range "*" \
--destination-address-prefix "Internet" \
--destination-port-range "*"
تسمح القاعدة التالية بنسبة استخدام الشبكة SSH الواردة إلى الشبكة الفرعية من أي مكان. تتجاوز القاعدة قاعدة أمان افتراضية تمنع جميع زيارات الشبكة الواردة من الإنترنت. يتم السماح لـSSH بالوصول إلى الشبكة الفرعية بحيث يمكن اختبار الاتصال في خطوة لاحقة.
az network nsg rule create \
--resource-group test-rg \
--nsg-name nsg-private \
--name Allow-SSH-All \
--access Allow \
--protocol Tcp \
--direction Inbound \
--priority 120 \
--source-address-prefix "*" \
--source-port-range "*" \
--destination-address-prefix "VirtualNetwork" \
--destination-port-range "22"
إقران مجموعة أمان الشبكة بالشبكة الفرعية الخاصة بالشبكة الفرعية مع تحديث الشبكة الفرعية لشبكة az network vnet. يربط المثال التالي مجموعة أمان الشبكة nsg-private بالشبكة الفرعية الخاصة بالشبكة الفرعية:
az network vnet subnet update \
--vnet-name vnet-1 \
--name subnet-private \
--resource-group test-rg \
--network-security-group nsg-private
تقييد وصول الشبكة إلى مورد
تختلف الخطوات المطلوبة لتقييد وصول الشبكة إلى الموارد التي تم إنشاؤها من خلال خدمات Azure، والتي تم تمكينها لنقاط نهاية الخدمة عبر الخدمات. راجع الوثائق الخاصة بالخدمات الفردية للحصول على خطوات محددة لكل خدمة. يتضمن الجزء المتبقي من هذا البرنامج التعليمي خطوات لتقييد وصول الشبكة لحساب Azure Storage، كمثال.
إنشاء حساب تخزين
في مربع البحث أعلى المدخل، أدخل Storage account. حدّد Storage accounts في نتائج البحث.
حدد + إنشاء.
في علامة التبويب Basics في Create a storage account، أدخل المعلومات التالية أو حددها:
| الإعداد |
القيمة |
|
تفاصيل المشروع |
|
| الاشتراك |
حدد اشتراك Azure الخاص بك. |
| مجموعة الموارد |
حدد test-rg. |
|
تفاصيل المثيل |
|
| اسم حساب التخزين |
أدخل اسمًا فريدًا. يستخدم هذا الدرس التخزين1. إذا كان الاسم غير متوفر، فأدخِل اسمًا فريدًا. |
| الموقع |
حدد (US) Eeast US 2 |
| الأداء |
اترك Standardالافتراضي. |
| التكرار |
حدد التخزين المتكرر محليًا (LRS). |
حدد "Review".
حدد إنشاء.
قم بإنشاء حساب تخزين في Azure باستخدام New-AzStorageAccount. استبدل <replace-with-your-unique-storage-account-name> باسم فريد عبر جميع مواقع Azure بعدد احرف يتراوح بين 3-24 حرفاً في الطول، باستخدام الأرقام والأحرف الصغيرة فقط.
$storageAcctName = '<replace-with-your-unique-storage-account-name>'
$storage = @{
Location = 'westus2'
Name = $storageAcctName
ResourceGroupName = 'test-rg'
SkuName = 'Standard_LRS'
Kind = 'StorageV2'
}
New-AzStorageAccount @storage
بعد إنشاء حساب التخزين، قم باسترداد مفتاح حساب التخزين إلى متغير باستخدام Get-AzStorageAccountKey:
$storagekey = @{
ResourceGroupName = 'test-rg'
AccountName = $storageAcctName
}
$storageAcctKey = (Get-AzStorageAccountKey @storagekey).Value[0]
يتم استخدام المفتاح لإنشاء مشاركة ملف في خطوة لاحقة. أدخل $storageAcctKey القيمة ولاحظها. يمكنك إدخاله يدويا في خطوة لاحقة عند تعيين مشاركة الملف إلى محرك أقراص في جهاز ظاهري.
تختلف الخطوات الضرورية لتقييد الوصول إلى الشبكة إلى الموارد التي تم إنشاؤها من خلال خدمات Azure الممكنة لنقاط تقديم الخدمة عبر الخدمات. راجع الوثائق الخاصة بالخدمات الفردية للحصول على خطوات محددة لكل خدمة. يتضمن الجزء المتبقي من هذه المقالة خطوات لتقييد الوصول إلى الشبكة لحساب Azure Storage، كمثال.
إنشاء حساب تخزين
قم بإنشاء حساب Azure Sorage باستخدام az storage account create. استبدل <replace-with-your-unique-storage-account-name> باسم فريد عبر جميع مواقع Azure بعدد احرف يتراوح بين 3-24 حرفاً في الطول، باستخدام الأرقام والأحرف الصغيرة فقط.
storageAcctName="<replace-with-your-unique-storage-account-name>"
az storage account create \
--name $storageAcctName \
--resource-group test-rg \
--sku Standard_LRS \
--kind StorageV2
بعد إنشاء حساب التخزين، استرد سلسلة الاتصال لحساب التخزين إلى متغير باستخدام az storage account show-connection-string. يتم استخدام سلسلة الاتصال لإنشاء مشاركة ملف في خطوة لاحقة.
saConnectionString=$(az storage account show-connection-string \
--name $storageAcctName \
--resource-group test-rg \
--query 'connectionString' \
--out tsv)
هام
توصي Microsoft باستخدام تدفق المصادقة الأكثر أمانا المتوفر. يتطلب تدفق المصادقة الموضح في هذا الإجراء درجة عالية جدا من الثقة في التطبيق، ويحمل مخاطر غير موجودة في تدفقات أخرى. يجب عليك استخدام هذا التدفق فقط عندما لا تكون التدفقات الأخرى الأكثر أمانا، مثل الهويات المدارة، قابلة للتطبيق.
لمزيد من المعلومات حول الاتصال بحساب تخزين باستخدام هوية مدارة، راجع استخدام هوية مدارة للوصول إلى Azure Storage.
إنشاء مشاركة ملف في حساب التخزين
في مربع البحث أعلى المدخل، أدخل Storage account. حدّد Storage accounts في نتائج البحث.
في حسابات التخزين، حدد حساب التخزين الذي أنشأته في الخطوة السابقة.
في Data storage، حدد File shares.
اختر + File share.
أدخل المعلومات التالية أو حددها في مشاركة ملف جديد:
| الإعداد |
القيمة |
| الاسم |
أدخل file-share. |
| المستوى |
اترك الإعداد الافتراضي للمعاملات المحسنة. |
حدد Next: Backup.
إلغاء تحديد تمكين النسخ الاحتياطي.
حدد Review + create، ثم حدد Create.
قم بإنشاء سياق لحساب التخزين والمفتاح الخاص بك باستخدام New-AzStorageContext. يُلخص السياق اسم حساب التخزين ومفتاح الحساب:
$storagecontext = @{
StorageAccountName = $storageAcctName
StorageAccountKey = $storageAcctKey
}
$storageContext = New-AzStorageContext @storagecontext
إنشاء مشاركة ملف باستخدام New-AzStorageShare:
$fs = @{
Name = "file-share"
Context = $storageContext
}
$share = New-AzStorageShare @fs
قم بإنشاء مشاركة ملف في حساب التخزين باستخدام az storage share create. في خطوة لاحقة، يتم إدخال مشاركة الملفات هذه لتأكيد وصول الشبكة إليها.
az storage share create \
--name file-share \
--quota 2048 \
--connection-string $saConnectionString > /dev/null
تقييد وصول الشبكة إلى شبكة فرعية
بشكل افتراضي، تقبل حسابات التخزين اتصالات الشبكة من العملاء في أي شبكة، بما في ذلك الإنترنت. يمكنك تقييد الوصول إلى الشبكة من الإنترنت، وجميع الشبكات الفرعية الأخرى في جميع الشبكات الظاهرية (باستثناء الشبكة الفرعية الخاصة بالشبكة الفرعية في الشبكة الظاهرية vnet-1 .)
لتقييد الوصول إلى الشبكة إلى شبكة فرعية:
في مربع البحث أعلى المدخل، أدخل Storage account. حدّد Storage accounts في نتائج البحث.
حدد حساب التخزين.
في Security + networking، حدد Networking.
في علامة التبويب Firewalls and virtual networks ، حدد Enabled من الشبكات الظاهرية المحددة وعناوين IP في الوصول إلى الشبكة العامة.
في الشبكات الظاهرية، حدد + إضافة شبكة ظاهرية موجودة.
في إضافة شبكات، أدخل المعلومات التالية أو حددها:
| الإعداد |
القيمة |
| الاشتراك |
حدد Subscription الخاص بك. |
| الشبكات الظاهرية |
حدد vnet-1. |
| الشبكات الفرعية |
حدد subnet-private. |
حدد إضافة.
حدد Save لحفظ تكوينات الشبكة الظاهرية.
بشكل افتراضي، تقبل حسابات التخزين اتصالات الشبكة من العملاء في أي شبكة. لتقييد الوصول إلى الشبكات المحددة، قم بتغيير الإجراء الافتراضي إلى Deny باستخدام Update-AzStorageAccountNetworkRuleSet. بمجرد رفض الوصول إلى الشبكة، لا يمكن الوصول إلى حساب التخزين من أي شبكة.
$storagerule = @{
ResourceGroupName = "test-rg"
Name = $storageAcctName
DefaultAction = "Deny"
}
Update-AzStorageAccountNetworkRuleSet @storagerule
قم باسترداد الشبكة الظاهرية التي تم إنشاؤها باستخدام Get-AzVirtualNetwork، ثم استرداد كائن الشبكة الفرعية الخاصة إلى متغير باستخدام Get-AzVirtualNetworkSubnetConfig:
$subnetpriv = @{
ResourceGroupName = "test-rg"
Name = "vnet-1"
}
$privateSubnet = Get-AzVirtualNetwork @subnetpriv | Get-AzVirtualNetworkSubnetConfig -Name "subnet-private"
السماح بالوصول إلى الشبكة إلى حساب التخزين من الشبكة الفرعية الخاصة بالشبكة الفرعية باستخدام Add-AzStorageAccountNetworkRule.
$storagenetrule = @{
ResourceGroupName = "test-rg"
Name = $storageAcctName
VirtualNetworkResourceId = $privateSubnet.Id
}
Add-AzStorageAccountNetworkRule @storagenetrule
بشكل افتراضي، تقبل حسابات التخزين اتصالات الشبكة من العملاء في أي شبكة. لتقييد الوصول إلى الشبكات المحددة، قم بتغيير الإجراء الافتراضي إلى Deny باستخدام az storage account update. بمجرد رفض الوصول إلى الشبكة، لا يمكن الوصول إلى حساب التخزين من أي شبكة.
az storage account update \
--name $storageAcctName \
--resource-group test-rg \
--default-action Deny
السماح بالوصول إلى الشبكة إلى حساب التخزين من الشبكة الفرعية الخاصة بالشبكة الفرعية مع إضافة قاعدة شبكة حساب تخزين az.
az storage account network-rule add \
--resource-group test-rg \
--account-name $storageAcctName \
--vnet-name vnet-1 \
--subnet subnet-private
توزيع الأجهزة الظاهرية إلى الشبكات الفرعية
لاختبار الوصول إلى الشبكة إلى حساب تخزين، انشر جهازا ظاهريا على كل شبكة فرعية.
أنشئ الجهاز الظاهري الأول
في مربع البحث الموجود أعلى المدخل، أدخل Virtual machine. حدد "Virtual machines" في نتائج البحث.
حدد + إنشاء ثم + جهاز Azure الظاهري.
في إنشاء آلة افتراضية ، أدخل، أو اختر المعلومات التالية في تبويب الأساسيات :
| الإعداد |
القيمة |
|
تفاصيل المشروع |
|
| الاشتراك |
حدد Subscription الخاص بك. |
| مجموعة الموارد |
حدد test-rg. |
|
تفاصيل المثيل |
|
| اسم الجهاز الظاهري |
أدخل vm-1. |
| المنطقة |
حدد (US) Eeast US 2 |
| خيارات التوفر |
حدد No infrastructure redundancy required. |
| نوع الأمان |
حدد قياسي. |
| الصورة |
حدد Ubuntu Server 24.04 LTS - x64 Gen2. |
| بنية الجهاز الظاهري |
اترك الإعداد الافتراضي x64. |
| الحجم |
تحديد الحجم. |
|
حساب المسؤول |
|
| نوع المصادقة |
حدد المفتاح العمومي SSH. |
| اسم مستخدم |
أدخل username. |
| مصدر المفتاح العام SSH |
حدد إنشاء زوج مفاتيح جديد. |
| اسم زوج المفاتيح |
هنا يدخل vm-1-key. |
|
قواعد المنفذ الوارد |
|
| المنافذ العامة الواردة |
حدد لا شيء. |
حدد Next: Disks ثم Next: Networking.
في تبويب الشبكات، أدخل، أو اختر المعلومات التالية:
| الإعداد |
القيمة |
|
واجهة الشبكة |
|
| الشبكة الظاهرية |
حدد vnet-1. |
| الشبكة الفرعية |
حدد subnet-1 (10.0.0.0/24). |
| عنوان IP عام |
حدد لا شيء. |
| مجموعة أمن الشبكات لواجهة الشبكة (NIC) |
حدد خيارات متقدمة. |
| تكوين مجموعة أمان الشبكة |
حدد إنشاء جديد.
في الاسم، أدخل nsg-1.
حدد موافق. |
اترك بقية الخيارات في الإعدادات الافتراضية وحدد Review + create.
حدد إنشاء.
إشعار
لا تحتاج الأجهزة الظاهرية في شبكة ظاهرية مع مضيف معقل إلى عناوين IP عامة. يوفر Bastion عنوان IP العام، وتستخدم الأجهزة الظاهرية عناوين IP الخاصة للاتصال داخل الشبكة. يمكنك إزالة عناوين IP العامة من أي أجهزة ظاهرية في الشبكات الظاهرية المستضافة الأساسية. لمزيد من المعلومات، راجع فصل عنوان IP عام من جهاز Azure الظاهري.
إشعار
يوفر Azure عنوان IP افتراضيا للوصول الصادر للأجهزة الظاهرية التي لم يتم تعيين عنوان IP عام لها أو الموجودة في تجمع الواجهة الخلفية لموازن تحميل Azure الأساسي الداخلي. توفر آلية IP للوصول الصادر الافتراضي عنوان IP صادر غير قابل للتكوين.
يتم تعطيل عنوان IP الافتراضي للوصول الصادر عند حدوث أحد الأحداث التالية:
- يتم تعيين عنوان IP عام إلى الجهاز الظاهري.
- يتم وضع الجهاز الظاهري في تجمع الواجهة الخلفية لموازن التحميل القياسي، مع قواعد صادرة أو بدونها.
-
يتم تعيين مورد Azure NAT Gateway إلى الشبكة الفرعية للجهاز الظاهري.
لا تتمتع الأجهزة الظاهرية التي تقوم بإنشائها باستخدام مجموعات مقياس الجهاز الظاهري في وضع التنسيق المرن بالوصول الصادر الافتراضي.
لمزيد من المعلومات حول الاتصالات الصادرة في Azure، راجع الوصول الصادر الافتراضي في Azure واستخدام ترجمة عنوان الشبكة المصدر (SNAT) للاتصالات الصادرة.
إنشاء الجهاز الظاهري الثاني
إنشاء جهاز ظاهري ثان يكرر الخطوات الواردة في القسم السابق. استبدل القيم التالية في إنشاء جهاز ظاهري:
| الإعداد |
القيمة |
| اسم الجهاز الظاهري |
أدخل vm-private. |
| مصدر المفتاح العام SSH |
حدد إنشاء زوج مفاتيح جديد. |
| اسم زوج المفاتيح |
هنا يأتي دور vm-private-key. |
| الشبكة الفرعية |
حدد subnet-private. |
| عنوان IP عام |
حدد لا شيء. |
| مجموعة أمن الشبكات لواجهة الشبكة (NIC) |
حدد لا شيء. |
تحذير
لا تنتقل إلى الخطوة التالية حتى يتم إكمال التوزيع.
أنشئ الجهاز الظاهري الأول
إنشاء جهاز ظاهري في الشبكة الفرعية العامة للشبكة الفرعية باستخدام New-AzVM.
$cred = New-Object System.Management.Automation.PSCredential("azureuser", (ConvertTo-SecureString " " -AsPlainText -Force))
$vm1 = @{
ResourceGroupName = "test-rg"
Location = "westus2"
VirtualNetworkName = "vnet-1"
SubnetName = "subnet-public"
Name = "vm-public"
Image = "Ubuntu2204"
Credential = $cred
PublicIpAddressName = ""
GenerateSshKey = $true
SshKeyName = "vm-public-key"
}
New-AzVm @vm1
إنشاء الجهاز الظاهري الثاني
إنشاء جهاز ظاهري في الشبكة الفرعية الخاصة بالشبكة الفرعية:
$vm2 = @{
ResourceGroupName = "test-rg"
Location = "westus2"
VirtualNetworkName = "vnet-1"
SubnetName = "subnet-private"
Name = "vm-private"
Image = "Ubuntu2204"
Credential = $cred
PublicIpAddressName = ""
GenerateSshKey = $true
SshKeyName = "vm-private-key"
}
New-AzVm @vm2
يستغرق Azure بضع دقائق لإنشاء أي جهاز ظاهري. لا تستمر إلى الخطوة التالية حتى ينتهي Azure من إنشاء الجهاز الظاهري وإرجاع الإخراج إلى PowerShell.
لاختبار الوصول إلى شبكة اتصال إلى حساب تخزين، بادر بتوزيع جهاز ظاهري إلى كل شبكة فرعية.
أنشئ الجهاز الظاهري الأول
إنشاء جهاز ظاهري في الشبكة الفرعية العامة للشبكة الفرعية باستخدام az vm create. إذا لم تكن مفاتيح SSH موجودة بالفعل في موقع مفتاح افتراضي، يقوم الأمر بإنشائها. لاستخدام مجموعة محددة من المفاتيح، استخدم الخيار --ssh-key-value.
az vm create \
--resource-group test-rg \
--name vm-public \
--image Ubuntu2204 \
--vnet-name vnet-1 \
--subnet subnet-public \
--admin-username azureuser \
--generate-ssh-keys
ويستغرق إنشاء جهاز ظاهري بضع دقائق. بعد إنشاء الجهاز الظاهري، يعرض Azure CLI معلومات مشابهة للمثال التالي:
{
"fqdns": "",
"id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.Compute/virtualMachines/vm-public",
"location": "westus2",
"macAddress": "00-0D-3A-23-9A-49",
"powerState": "VM running",
"privateIpAddress": "10.0.0.4",
"publicIpAddress": "203.0.113.24",
"resourceGroup": "test-rg"
}
إنشاء الجهاز الظاهري الثاني
az vm create \
--resource-group test-rg \
--name vm-private \
--image Ubuntu2204 \
--vnet-name vnet-1 \
--subnet subnet-private \
--admin-username azureuser \
--generate-ssh-keys
ويستغرق إنشاء جهاز ظاهري بضع دقائق.
تأكيد حق الوصول إلى حساب التخزين
يتم استخدام الجهاز الظاهري الذي قمت بإنشائه سابقا الذي تم تعيينه إلى الشبكة الفرعية الخاصة بالشبكة الفرعية لتأكيد الوصول إلى حساب التخزين. يتم استخدام الجهاز الظاهري الذي قمت بإنشائه في القسم السابق الذي تم تعيينه للشبكة الفرعية 1 للتأكد من حظر الوصول إلى حساب التخزين.
الحصول على مفتاح الوصول إلى حساب التخزين
في مربع البحث أعلى المدخل، أدخل Storage account. حدّد Storage accounts في نتائج البحث.
في حسابات التخزين، حدد حساب التخزين الخاص بك.
في Security + networking، حدد Access keys.
انسخ قيمة key1. قد تحتاج إلى تحديد الزر إظهار لعرض المفتاح.
في مربع البحث الموجود أعلى المدخل، أدخل Virtual machine. حدد "Virtual machines" في نتائج البحث.
حدد vm-private.
حدد Bastion في Operations.
اختر المفتاح الخاص SSH من الملف المحليلنوع المصادقة.
أدخل اسم المستخدم الذي حددته عند إنشاء الجهاز الافتراضي.
اختر ملف المفتاح الخاص vm-private-key الذي قمت بتحميله.
حدد اتصال.
استخدم الأوامر التالية لتركيب مشاركة ملفات Azure.
sudo mkdir /mnt/file-share
sudo mount -t cifs //<storage-account-name>.file.core.windows.net/file-share /mnt/file-share -o vers=3.0,username=<storage-account-name>,password=<storage-account-key>,dir_mode=0777,file_mode=0777,serverino
تتلقى الرسالة $ بدون أخطاء. تم تحميل مشاركة ملف Azure بنجاح إلى /mnt/file-share.
تأكد من التركيب بتشغيل الأمر التالي:
df -h /mnt/file-share
يجب أن ترى مخرجات مماثلة لما يلي:
Filesystem Size Used Avail Use% Mounted on
//<storage-account-name>.file.core.windows.net/file-share 5.0G 0 5.0G 0% /mnt/file-share
أغلق اتصال Bastion إلى vm-private.
في مربع البحث الموجود أعلى المدخل، أدخل Virtual machine. حدد "Virtual machines" في نتائج البحث.
حدد vm-private.
حدد Bastion في Operations.
اختر المفتاح الخاص SSH من الملف المحليلنوع المصادقة.
أدخل اسم المستخدم الذي حددته عند إنشاء الجهاز الافتراضي.
اختر ملف المفتاح الخاص SSH من جهازك المحلي.
حدد اتصال.
استخدم الأوامر التالية لتركيب مشاركة ملفات Azure.
sudo mkdir /mnt/file-share
sudo mount -t cifs //<storage-account-name>.file.core.windows.net/file-share /mnt/file-share -o vers=3.0,username=<storage-account-name>,password=<storage-account-key>,dir_mode=0777,file_mode=0777,serverino
تتلقى الرسالة $ بدون أخطاء. تم تحميل مشاركة ملف Azure بنجاح إلى /mnt/file-share.
تأكد من أن الجهاز الظاهري ليس لديه اتصال صادر بأي عناوين IP عامة أخرى:
ping bing.com -c 4
لا تتلقى أي ردود، لأن مجموعة أمان الشبكة المقترنة بالشبكة الفرعية الخاصة بالشبكة الفرعية لا تسمح بالوصول الصادر إلى عناوين IP العامة بخلاف العناوين المعينة لخدمة Azure Storage.
أغلق اتصال Bastion إلى vm-private.
في مربع البحث الموجود أعلى المدخل، أدخل Virtual machine. حدد "Virtual machines" في نتائج البحث.
حدد vm-private.
حدد Bastion في Operations.
اختر المفتاح الخاص SSH من الملف المحليلنوع المصادقة.
أدخل اسم المستخدم الذي حددته عند إنشاء الجهاز الافتراضي.
اختر ملف المفتاح الخاص SSH من جهازك المحلي. المفتاح الافتراضي الذي يولده يقع --generate-ssh-keys عند ~/.ssh/id_rsa.
حدد اتصال.
إنشاء مجلد لنقطة تركيب:
sudo mkdir /mnt/file-share
قم بإدخال مشاركة ملف Azure في الدليل الذي أنشأته. قبل تشغيل الأمر التالي، استبدل <storage-account-name> باسم الحساب واستبدل <storage-account-key> بالمفتاح الذي استرددته في إنشاء حساب تخزين.
sudo mount -t cifs //<storage-account-name>.file.core.windows.net/my-file-share /mnt/file-share -o vers=3.0,username=<storage-account-name>,password=<storage-account-key>,dir_mode=0777,file_mode=0777,serverino
تتلقى الرسالة $ بدون أخطاء. تم تحميل مشاركة ملف Azure بنجاح إلى /mnt/file-share.
تأكد من أن الجهاز الظاهري ليس لديه اتصال صادر بأي عناوين IP عامة أخرى:
ping bing.com -c 4
لا تتلقى أي ردود، لأن مجموعة أمان الشبكة المقترنة بالشبكة الفرعية الخاصة بالشبكة الفرعية لا تسمح بالوصول الصادر إلى عناوين IP العامة بخلاف العناوين المعينة لخدمة Azure Storage.
أغلق اتصال Bastion إلى vm-private.
تأكد من رفض الوصول إلى حساب التخزين
من vm-1
في مربع البحث الموجود أعلى المدخل، أدخل Virtual machine. حدد "Virtual machines" في نتائج البحث.
حدد vm-1.
حدد Bastion في Operations.
اختر المفتاح الخاص SSH من الملف المحليلنوع المصادقة.
أدخل اسم المستخدم الذي حددته عند إنشاء الجهاز الافتراضي.
اختر ملف المفتاح الخاص الخاص بمفتاح vm-1 الذي قمت بتحميله.
حدد اتصال.
كرر الأمر السابق لمحاولة تركيب مشاركة الملفات في حساب التخزين. قد تحتاج إلى نسخ مفتاح الوصول إلى حساب التخزين مرة أخرى لهذا الإجراء:
sudo mkdir /mnt/file-share
sudo mount -t cifs //<storage-account-name>.file.core.windows.net/file-share /mnt/file-share -o vers=3.0,username=<storage-account-name>,password=<storage-account-key>,dir_mode=0777,file_mode=0777,serverino
يتم رفض الوصول وتتلقى خطأ mount error(13): Permission denied . يفشل التركيب لأن vm-1 في subnet-1، الذي لا يحتوي على نقطة نهاية خدمة ل Azure Storage.
أغلق اتصال Bastion إلى vm-1.
من جهاز محلي
في مربع البحث أعلى المدخل، أدخل Storage account. حدّد Storage accounts في نتائج البحث.
في حسابات التخزين، حدد حساب التخزين الخاص بك.
في Data storage، حدد File shares.
حدد file-share.
حدد استعراض في القائمة اليسرى.
قد تتلقى رسالة الخطأ التالية:
إشعار
تم رفض الوصول لأن الكمبيوتر الخاص بك ليس في الشبكة الفرعية الخاصة بالشبكة الفرعية للشبكة الظاهرية vnet-1 .
من vm-public
في مربع البحث الموجود أعلى المدخل، أدخل Virtual machine. حدد "Virtual machines" في نتائج البحث.
اختر VM-public.
حدد Bastion في Operations.
اختر المفتاح الخاص SSH من الملف المحليلنوع المصادقة.
أدخل اسم المستخدم الذي حددته عند إنشاء الجهاز الافتراضي.
اختر ملف المفتاح الخاص SSH من جهازك المحلي.
حدد اتصال.
حاول تركيب مشاركة ملفات Azure. استبدل <storage-account-name> باسم الحساب والمفتاح <storage-account-key> الذي استرجعته في إنشاء حساب تخزين:
sudo mkdir /mnt/file-share
sudo mount -t cifs //<storage-account-name>.file.core.windows.net/file-share /mnt/file-share -o vers=3.0,username=<storage-account-name>,password=<storage-account-key>,dir_mode=0777,file_mode=0777,serverino
يتم رفض الوصول وتتلقى خطأ mount error(13): Permission denied . يفشل التركيب لأن vm-public في subnet-public، والذي لا يحتوي على نقطة نهاية خدمة ل Azure Storage.
أغلق اتصال Bastion مع vm-public.
من جهاز الكمبيوتر الخاص بك، حاول عرض مشاركات الملفات في حساب التخزين باستخدام الأمر التالي:
$storage = @{
ShareName = "file-share"
Context = $storageContext
}
Get-AzStorageFile @storage
تم رفض الوصول. تتلقى إخراجا مشابها للمثال التالي.
Get-AzStorageFile : The remote server returned an error: (403) Forbidden. HTTP Status Code: 403 - HTTP Error Message: This request isn't authorized to perform this operation
الكمبيوتر الخاص بك ليس في الشبكة الفرعية الخاصة بالشبكة الظاهرية vnet-1 .
في مربع البحث الموجود أعلى المدخل، أدخل Virtual machine. حدد "Virtual machines" في نتائج البحث.
اختر VM-public.
حدد Bastion في Operations.
اختر المفتاح الخاص SSH من الملف المحليلنوع المصادقة.
أدخل اسم المستخدم الذي حددته عند إنشاء الجهاز الافتراضي.
اختر ملف المفتاح الخاص SSH من جهازك المحلي. المفتاح الافتراضي الذي يولده يقع --generate-ssh-keys عند ~/.ssh/id_rsa.
حدد اتصال.
إنشاء دليل لنقطة تركيب:
sudo mkdir /mnt/file-share
حاول إدخال مشاركة ملف Azure في الدليل الذي أنشأته. قبل تشغيل الأمر التالي، استبدل <storage-account-name> باسم الحساب واستبدل <storage-account-key> بالمفتاح الذي استرددته في إنشاء حساب تخزين:
sudo mount -t cifs //<storage-account-name>.file.core.windows.net/file-share /mnt/file-share -o vers=3.0,username=<storage-account-name>,password=<storage-account-key>,dir_mode=0777,file_mode=0777,serverino
تم رفض الوصول، وتتلقى خطأ mount error(13): Permission denied ، لأنه يتم نشر vm-public VM داخل الشبكة الفرعية للشبكة الفرعية العامة .
لا تحتوي الشبكة الفرعية العامة للشبكة الفرعية على نقطة نهاية خدمة ممكنة ل Azure Storage، ويسمح حساب التخزين فقط بالوصول إلى الشبكة من الشبكة الفرعية الخاصة بالشبكة الفرعية، وليس الشبكة الفرعية العامة للشبكة الفرعية.
أغلق اتصال Bastion مع vm-public.
من جهاز الكمبيوتر الخاص بك، حاول أن تعرض المشاركات في حساب التخزين الخاص بك باستخدام az storage share list. استبدل <account-name> و<account-key> باسم حساب التخزين ومفتاحه من إنشاء حساب تخزين:
az storage share list \
--account-name <account-name> \
--account-key <account-key>
تم رفض الوصول وتتلقى هذا الطلب غير مصرح به لتنفيذ خطأ العملية هذا، لأن الكمبيوتر الخاص بك ليس في الشبكة الفرعية الخاصة بالشبكة الظاهرية vnet-1.
عند الانتهاء من استخدام الموارد التي قمت بإنشائها، يمكنك حذف مجموعة الموارد وجميع مواردها.
في مدخل Azure، ابحث عن مجموعة المواردوحددها.
في صفحة Resource groups ، حدد مجموعة موارد test-rg .
في صفحة test-rg ، حدد Delete resource group.
أدخل test-rg في Enter resource group name لتأكيد الحذف، ثم حدد Delete.
عند عدم الحاجة إليها، يمكنك استخدام Remove-AzResourceGroup لإزالة مجموعة الموارد وجميع الموارد ذات الصلة:
$cleanup = @{
Name = "test-rg"
}
Remove-AzResourceGroup @cleanup -Force
تنظيف الموارد
عندما لم تعد هناك حاجة، استخدم حذف المجموعة من الألف إلى الياء لإزالة مجموعة الموارد وجميع الموارد التي تحتوي عليها.
az group delete \
--name test-rg \
--yes \
--no-wait
الخطوات التالية
في هذا البرنامج التعليمي:
لقد قمت بتمكين نقطة نهاية خدمة لشبكة فرعية لشبكة ظاهرية.
تعلمت أنه يمكنك تمكين نقاط نهاية الخدمة للموارد التي تم توزيعها من خدمات Azure المتعددة.
أنشأت حساب Azure Storage وقمت بتقييد وصول شبكة الاتصال إلى حساب التخزين للموارد فقط ضمن شبكة فرعية لشبكة ظاهرية.
لمعرفة المزيد حول نقاط نهاية الخدمة، راجع Service endpoints overview وManage subnets.
إذا كان لديك شبكات ظاهرية متعددة في حسابك، فقد ترغب في إنشاء اتصال بينها بحيث يمكن للموارد الاتصال ببعضها البعض. لمعرفة كيفية توصيل الشبكات الافتراضية، تقدم إلى البرنامج التعليمي التالي.