تأمين مساحة عمل Azure التعلم الآلي باستخدام الشبكات الظاهرية
في هذه المقالة، ستتعرف على كيفية تأمين مساحة عمل Azure التعلم الآلي والموارد المقترنة بها في شبكة ظاهرية.
تلميح
هذه المقالة جزء من سلسلة حول تأمين سير عمل Azure التعلم الآلي. انظر المقالات الأخرى في هذه السلسلة:
- نظرة عامة على الشبكة الظاهرية
- تأمين بيئة التدريب
- تأمين بيئة الاستدلال
- تمكين وظائف الاستوديو
- اسم DNS مخصص
- استخدام جدار حماية
للحصول على برنامج تعليمي حول إنشاء مساحة عمل آمنة، راجع البرنامج التعليمي: إنشاء مساحة عمل آمنة أو البرنامج التعليمي: إنشاء مساحة عمل آمنة باستخدام قالب.
في هذه المقالة، ستتعرف على كيفية تمكين موارد مساحات العمل التالية في شبكة ظاهرية:
- مساحة عمل Azure Machine Learning
- حسابات تخزين Azure
- Azure التعلم الآلي datastores and datasets
- Azure Key Vault
- Azure Container Registry
المتطلبات الأساسية
اقرأ مقالة نظرة عامة على أمان الشبكة لفهم سيناريوهات الشبكة الظاهرية الشائعة وبنية الشبكة الظاهرية الشاملة.
اقرأ مقالة Azure التعلم الآلي أفضل الممارسات لأمن المؤسسة للتعرف على أفضل الممارسات.
شبكة ظاهرية وشبكة فرعية موجودة لاستخدامها مع موارد الحوسبة الخاصة بك.
تلميح
إذا كنت تخطط لاستخدام مثيلات حاوية Azure في الشبكة الظاهرية (لنشر النماذج)، فيجب أن تكون مساحة العمل والشبكة الظاهرية في نفس مجموعة الموارد. خلاف ذلك ، يمكن أن يكونوا في مجموعات مختلفة.
لنشر الموارد في شبكة ظاهرية أو شبكة فرعية، يجب أن يكون لدى حساب المستخدم أذونات للإجراءات التالية في عنصر تحكم الوصول المستند إلى دور Azure (Azure RBAC):
- "Microsoft.Network/virtualNetworks/join/action" على مورد الشبكة الظاهرية.
- "Microsoft.Network/virtualNetworks/subnets/join/action" على مورد الشبكة الفرعية.
لمزيد من المعلومات حول Azure RBAC مع الشبكات، راجع الأدوار المضمنة في الشبكة
Azure Container Registry
يجب أن يكون سجل حاوية Azure الخاص بك Premium الإصدار. لمزيد من المعلومات حول الترقية، راجع تغيير وحدات SKU.
إذا كان سجل حاويات Azure يستخدم نقطة نهاية خاصة، فيجب أن يكون في نفس الشبكة الظاهرية مثل حساب التخزين وحساب الأهداف المستخدمة للتدريب أو الاستدلال. إذا كان يستخدم نقطة نهاية خدمة، فيجب أن يكون في نفس الشبكة الظاهريةوالشبكة الفرعية مثل حساب التخزين وأهداف الحساب.
يجب أن تحتوي مساحة عمل Azure التعلم الآلي على مجموعة حوسبة Azure التعلم الآلي.
التقييدات
Azure Storage Account
إذا كنت تخطط لاستخدام استوديو Azure التعلم الآلي وكان حساب التخزين موجودا أيضا في VNet، فهناك متطلبات إضافية للتحقق من الصحة:
- إذا كان حساب التخزين يستخدم نقطة نهاية خدمة، فيجب أن تكون نقطة نهاية مساحة العمل الخاصة ونقطة نهاية خدمة التخزين في نفس الشبكة الفرعية ل VNet.
- إذا كان حساب التخزين يستخدم نقطة نهاية خاصة، فيجب أن تكون نقطة النهاية الخاصة بمساحة العمل ونقطة النهاية الخاصة بالتخزين في نفس VNet. في هذه الحالة ، يمكن أن تكون في شبكات فرعية مختلفة.
Azure Container Registry
عندما يكون ACR خلف شبكة افتراضية، لا يمكن ل Azure التعلم الآلي استخدامه لإنشاء صور Docker مباشرة. بدلا من ذلك، يتم استخدام مجموعة الحوسبة لإنشاء الصور.
هام
يجب أن تكون مجموعة الحوسبة المستخدمة لإنشاء صور Docker قادرة على الوصول إلى مستودعات الحزم المستخدمة لتدريب النماذج ونشرها. قد تحتاج إلى إضافة قواعد أمان الشبكة التي تسمح بالوصول إلى المستودعات العامة أو استخدام حزم Python الخاصة أو استخدامصور Docker المخصصة التي تتضمن الحزم بالفعل.
تحذير
إذا كان سجل حاوية Azure يستخدم نقطة نهاية خاصة أو نقطة نهاية خدمة للاتصال بالشبكة الظاهرية، فلا يمكنك استخدام هوية مدارة مع مجموعة حوسبة Azure التعلم الآلي.
Azure Monitor
تحذير
يدعم Azure Monitor استخدام Azure Private Link للاتصال ب VNet. ومع ذلك، يجب عليك استخدام وضع الارتباط الخاص المفتوح في Azure Monitor. لمزيد من المعلومات، راجع أوضاع الوصول إلى الرابط الخاص: خاص فقط مقابل مفتوح.
مطلوب اتصال عام بالإنترنت
يتطلب Azure التعلم الآلي الوصول الوارد والصادر إلى الإنترنت العام. توفر الجداول التالية نظرة عامة على الوصول المطلوب وما هو الغرض منه. البروتوكول لجميع العناصر هو TCP. بالنسبة لعلامات الخدمة التي تنتهي ب .region، استبدل region بمنطقة Azure التي تحتوي على مساحة العمل الخاصة بك. على سبيل المثال، Storage.westus:
| الاتجاه | منافذ | علامة الخدمة | الغرض |
|---|---|---|---|
| الواردة | 29876-29877 | BatchNodeManagement | إنشاء Azure التعلم الآلي وتحديث وحذف مثيل الحوسبة ومجموعة الحوسبة. |
| الواردة | 44224 | AzureMachineLearning | إنشاء مثيل حوسبة Azure التعلم الآلي وتحديثه وحذفه. |
| الصادرة | 443 | AzureMonitor | يستخدم لتسجيل المراقبة والمقاييس إلى App Insights و Azure Monitor. |
| الصادرة | 80, 443 | AzureActiveDirectory | المصادقة باستخدام Azure AD. |
| الصادرة | 443 | AzureMachineLearning | استخدام خدمات Azure التعلم الآلي. |
| الصادرة | 443 | AzureResourceManager | إنشاء موارد Azure باستخدام Azure التعلم الآلي. |
| الصادرة | 443 | التخزين.المنطقة | الوصول إلى البيانات المخزنة في حساب تخزين Azure لخدمة Azure Batch . |
| الصادرة | 443 | AzureFrontDoor.FrontEnd* غير مطلوب في Azure China. | نقطة الدخول العالمية لاستوديو Azure التعلم الآلي. |
| الصادرة | 443 | ContainerRegistry.region | الوصول إلى صور عامل الرصيف التي توفرها Microsoft. |
| الصادرة | 443 | MicrosoftContainerRegistry.region | الوصول إلى صور عامل الرصيف التي توفرها Microsoft. Setup of the Azure التعلم الآلي router for Azure Kubernetes Service. |
| الصادرة | 443 | Keyvault.region | الوصول إلى مخزن المفاتيح لخدمة Azure Batch . لا يلزم الحاجة إلا إذا تم إنشاء مساحة العمل الخاصة بك مع تمكين علامة hbi_workspace . |
تلميح
إذا كنت بحاجة إلى عناوين IP بدلا من علامات الخدمة، فاستخدم أحد الخيارات التالية:
- قم بتنزيل قائمة من نطاقات Azure IP وعلامات الخدمة.
- Use the Azure CLI az network list-service-tags commands .
- استخدم الأمر Azure PowerShell Get-AzNetworkServiceTag .
قد تتغير عناوين IP بشكل دوري.
قد تحتاج أيضا إلى السماح بحركة المرور الصادرة إلى Visual Studio Code والمواقع غير التابعة ل Microsoft لتثبيت الحزم التي يتطلبها مشروع التعلم الآلي الخاص بك. يسرد الجدول التالي المستودعات الشائعة الاستخدام للتعلم الآلي:
| اسم المضيف | الغرض |
|---|---|
| anaconda.com *.anaconda.com | تستخدم لتثبيت الحزم الافتراضية. |
| *.anaconda.org | تستخدم للحصول على بيانات الريبو. |
| pypi.org | يستخدم لسرد التبعيات من الفهرس الافتراضي، إن وجد، ولا يتم الكتابة فوق الفهرس بواسطة إعدادات المستخدم. إذا تمت الكتابة فوق الفهرس، فيجب عليك أيضا السماح ب *.pythonhosted.org. |
| cloud.r-project.org | تستخدم عند تثبيت حزم CRAN لتطوير R. |
| *pytorch.org | تستخدم من قبل بعض الأمثلة على أساس PyTorch. |
| *.tensorflow.org | تستخدم من قبل بعض الأمثلة على أساس Tensorflow. |
| update.code.visualstudio.com *.vo.msecnd.net | تستخدم لاسترداد بتات خادم VS Code، والتي يتم تثبيتها على مثيل الحوسبة من خلال برنامج نصي للإعداد. |
| raw.githubusercontent.com/microsoft/vscode-tools-for-ai/master/azureml_remote_websocket_server/* | تستخدم لاسترداد بتات خادم websocket ، والتي يتم تثبيتها على مثيل الحوسبة. يتم استخدام خادم websocket لنقل الطلبات من عميل التعليمات البرمجية Visual Studio (تطبيق سطح المكتب) إلى خادم التعليمات البرمجية Visual Studio الذي يعمل على مثيل الحوسبة. |
عند استخدام Azure Kubernetes Service (AKS) مع Azure التعلم الآلي، اسمح بحركة المرور التالية إلى AKS VNet:
- المتطلبات العامة الواردة/الصادرة ل AKS كما هو موضح في مقالة تقييد حركة مرور الخروج في Azure Kubernetes Service .
- الصادرة إلى mcr.microsoft.com.
- عند نشر نموذج إلى مجموعة AKS، استخدم الإرشادات الواردة في مقالة نشر نماذج ML إلى Azure Kubernetes Service .
للحصول على معلومات حول استخدام حل جدار حماية، راجع استخدام جدار حماية مع Azure التعلم الآلي.
تأمين مساحة العمل باستخدام نقطة النهاية الخاصة
يتيح لك Azure Private Link الاتصال بمساحة العمل الخاصة بك باستخدام نقطة نهاية خاصة. نقطة النهاية الخاصة هي مجموعة من عناوين IP الخاصة داخل شبكتك الافتراضية. يمكنك بعد ذلك تقييد الوصول إلى مساحة العمل الخاصة بك بحيث يحدث فقط عبر عناوين IP الخاصة. تساعد نقطة النهاية الخاصة على تقليل مخاطر تسرب البيانات.
لمزيد من المعلومات حول تكوين نقطة نهاية خاصة لمساحة العمل الخاصة بك، راجع كيفية تكوين نقطة نهاية خاصة.
تحذير
لا يضمن تأمين مساحة عمل مزودة بنقاط نهاية خاصة الأمان الشامل في حد ذاته. يجب اتباع الخطوات الواردة في بقية هذه المقالة، وسلسلة VNet، لتأمين المكونات الفردية للحل الخاص بك. على سبيل المثال، إذا كنت تستخدم نقطة نهاية خاصة لمساحة العمل، ولكن حساب تخزين Azure الخاص بك ليس خلف VNet، فلن تستخدم حركة المرور بين مساحة العمل والتخزين VNet للأمان.
حسابات تخزين Azure الآمنة
يدعم Azure التعلم الآلي حسابات التخزين التي تم تكوينها لاستخدام نقطة نهاية خاصة أو نقطة نهاية خدمة.
في مدخل Azure، حدد حساب تخزين Azure.
استخدم المعلومات الموجودة في استخدام نقاط النهاية الخاصة ل Azure Storage لإضافة نقاط نهاية خاصة لموارد التخزين التالية:
- BLOB
- ملف
- قائمة الانتظار - مطلوب فقط إذا كنت تخطط لاستخدام ParallelRunStep في خط أنابيب Azure التعلم الآلي.
- الجدول - مطلوب فقط إذا كنت تخطط لاستخدام ParallelRunStep في خط أنابيب Azure التعلم الآلي.
تلميح
عند تكوين حساب تخزين ليس هو التخزين الافتراضي، حدد نوع المورد الفرعي الهدف الذي يتوافق مع حساب التخزين الذي تريد إضافته.
بعد إنشاء نقاط النهاية الخاصة لموارد التخزين، حدد علامة التبويب جدران الحماية والشبكات الظاهرية ضمن الشبكات لحساب التخزين .
حدد الشبكات المحددة، ثم ضمن مثيلات الموارد، حدد
Microsoft.MachineLearningServices/Workspaceنوع المورد. حدد مساحة العمل الخاصة بك باستخدام اسم المثيل. لمزيد من المعلومات، راجع الوصول الموثوق به استنادا إلى الهوية المدارة المعينة من قبل النظام.تلميح
بدلا من ذلك، يمكنك تحديد السماح بخدمات Azure في قائمة الخدمات الموثوق بها للوصول إلى حساب التخزين هذا للسماح بالوصول من الخدمات الموثوق بها على نطاق أوسع. للحصول على مزيدٍ من المعلومات، راجع تكوين جدار حماية مساحة التخزين Azure والشبكات الظاهرية.
حدد حفظلحفظ التكوين.
تلميح
عند استخدام نقطة نهاية خاصة، يمكنك أيضا تعطيل الوصول العام. لمزيد من المعلومات، راجع عدم السماح بالوصول العام للقراءة.
Secure Azure Key Vault
يستخدم Azure التعلم الآلي مثيل Key Vault مقترن لتخزين بيانات الاعتماد التالية:
- سلسلة اتصال حساب التخزين المقترن
- كلمات المرور لمثيلات مستودع حاوية Azure
- سلاسل الاتصال بمخازن البيانات
يمكن تكوين مخزن مفاتيح Azure لاستخدام نقطة نهاية خاصة أو نقطة نهاية خدمة. لاستخدام إمكانات تجربة Azure التعلم الآلي مع Azure Key Vault خلف شبكة ظاهرية، اتبع الخطوات التالية:
تلميح
بغض النظر عما إذا كنت تستخدم نقطة نهاية خاصة أو نقطة نهاية خدمة، يجب أن يكون مخزن المفاتيح في نفس الشبكة مثل نقطة النهاية الخاصة لمساحة العمل.
للحصول على معلومات حول استخدام نقطة نهاية خاصة مع Azure Key Vault، راجع دمج Key Vault مع Azure Private Link.
تمكين تسجيل حاوية Azure (ACR)
تلميح
إذا لم تستخدم سجل حاوية Azure موجود عند إنشاء مساحة العمل، فقد لا يكون أحدها موجودا. بشكل افتراضي، لن تقوم مساحة العمل بإنشاء مثيل ACR حتى تحتاج إلى واحد. لفرض إنشاء نموذج، قم بتدريب نموذج أو نشره باستخدام مساحة العمل الخاصة بك قبل استخدام الخطوات الواردة في هذا القسم.
يمكن تكوين Azure Container Registry لاستخدام نقطة نهاية خاصة. اتبع الخطوات التالية لتكوين مساحة العمل الخاصة بك لاستخدام ACR عندما يكون في الشبكة الظاهرية:
ابحث عن اسم سجل حاوية Azure لمساحة العمل الخاصة بك، باستخدام إحدى الطرق التالية:
APPLY TO: Azure CLI ml extension
v1
v2 (معاينة)إذا قمت بتثبيت ملحق التعلم الآلي v2 ل Azure CLI، فيمكنك استخدام
az ml workspace showالأمر لإظهار معلومات مساحة العمل. لا يقوم ملحق v1 بإرجاع هذه المعلومات.az ml workspace show -w yourworkspacename -g resourcegroupname --query 'container_registry'ترجع هذه المسألة قيمة مشابهة ل
"/subscriptions/{GUID}/resourceGroups/{resourcegroupname}/providers/Microsoft.ContainerRegistry/registries/{ACRname}". الجزء الأخير من السلسلة هو اسم سجل حاوية Azure لمساحة العمل.تقييد الوصول إلى شبكتك الظاهرية باستخدام الخطوات الواردة في الاتصال بشكل خاص إلى سجل حاويات Azure. عند إضافة الشبكة الظاهرية، حدد الشبكة الظاهرية والشبكة الفرعية لموارد Azure التعلم الآلي.
قم بتكوين ACR لمساحة العمل للسماح بالوصول بواسطة الخدمات الموثوق بها.
إنشاء نظام مجموعة لحساب التعلم الآلي من Azure. يتم استخدام هذه المجموعة لإنشاء صور Docker عندما يكون ACR خلف VNet. لمزيد من المعلومات، راجع إنشاء مجموعة حوسبة.
استخدم إحدى الطرق التالية لتكوين مساحة العمل لإنشاء صور Docker باستخدام مجموعة الحوسبة.
هام
تنطبق القيود التالية عند استخدام مجموعة حوسبة لإصدارات الصور:
- يتم دعم وحدة SKU لوحدة المعالجة المركزية فقط.
- لا يمكنك استخدام مجموعة حوسبة تم تكوينها بدون عنوان IP عام.
يمكنك استخدام
az ml workspace updateالأمر لتعيين حساب بناء. الأمر هو نفسه لكل من ملحقات v1 و v2 Azure CLI للتعلم الآلي. في الأمر التالي، استبدلmyworkspaceباسم مساحة العمل الخاصة بك، ومجموعة الموارد التي تحتوي على مساحة العمل،myresourcegroupوباسمmycomputeclusterنظام مجموعة الحوسبة:az ml workspace update --name myworkspace --resource-group myresourcegroup --image-build-compute mycomputecluster
تلميح
عندما يكون ACR خلف VNet، يمكنك أيضا تعطيل الوصول العام إليه.
مخازن البيانات ومجموعات البيانات
يسرد الجدول التالي الخدمات التي تحتاج إلى تخطي التحقق من الصحة لها:
| الخدمة | تخطي التحقق من الصحة المطلوبة؟ |
|---|---|
| موقع تخزين Azure Blob | نعم |
| مشاركة ملف Azure | نعم |
| Azure Data Lake Store Gen1 | لا |
| Azure Data Lake Store Gen2 | لا |
| قاعدة بيانات Azure SQL | نعم |
| PostgreSql | نعم |
ملاحظة
يتخطى Azure Data Lake Store Gen1 وAzure Data Lake Store Gen2 التحقق من الصحة بشكل افتراضي، لذلك لن تضطر إلى القيام بأي شيء.
ينشئ نموذج التعليمات البرمجية التالي مخزن بيانات Azure Blob جديدا ويعينه skip_validation=True.
blob_datastore = Datastore.register_azure_blob_container(workspace=ws,
datastore_name=blob_datastore_name,
container_name=container_name,
account_name=account_name,
account_key=account_key,
skip_validation=True ) // Set skip_validation to true
استخدام مجموعات البيانات
بناء الجملة لتخطي التحقق من صحة مجموعة البيانات مشابه لأنواع مجموعات البيانات التالية:
- ملف محدد
- JSON
- Parquet
- SQL
- الملف
تقوم التعليمة البرمجية التالية بإنشاء مجموعة بيانات JSON جديدة ومجموعات validate=False.
json_ds = Dataset.Tabular.from_json_lines_files(path=datastore_paths,
validate=False)
الاتصال بأمان بمساحة العمل الخاصة بك
للاتصال بمساحة عمل مؤمنة خلف VNet، استخدم إحدى الطرق التالية:
بوابة الشبكة الظاهرية الخاصة من Azure - توصيل الشبكات المحلية بشبكة ظاهرية عبر اتصال خاص. يتم إجراء الاتصالات عبر الإنترنت العام. يوجد نوعان من بوابات الشبكة الظاهرية الخاصة التي يمكنك استخدامها:
- نقطة إلى موقع: يستخدم كل كمبيوتر عميل عميل عميل للاتصال ب VNet.
- من موقع إلى موقع: يقوم جهاز VPN بتوصيل VNet بشبكتك المحلية.
ExpressRoute - يربط الشبكات المحلية بالسحابة عبر اتصال خاص. يتم الاتصال باستخدام موفر الاتصال.
Azure Bastion - في هذا السيناريو، يقوم بإنشاء جهاز Azure ظاهري (يسمى أحياناً مربع الانتقال) داخل شبكة ظاهرية. ومن ثَم يمكنك الاتصال بالجهاز الظاهري باستخدام Azure Bastion. يسمح لك Bastion بالاتصال بالجهاز الظاهري باستخدام جلسة بروتوكول سطح المكتب البعيد أو SSH من مستعرض الويب المحلي لديك. ومن ثَم يمكنك استخدام مربع الانتقال كبيئة تطوير. ونظراً إلى وجوده داخل الشبكة الظاهرية، يمكنه الوصول مباشرة إلى مساحة العمل. للحصول على مثال على استخدام مربع الانتقال السريع، راجع البرنامج التعليمي: إنشاء مساحة عمل آمنة.
هام
عند استخدام بوابة VPN أو ExpressRoute ، ستحتاج إلى تخطيط كيفية عمل دقة الاسم بين مواردك المحلية وتلك الموجودة في VNet. لمزيد من المعلومات، راجع استخدام خادم DNS مخصص.
تشخيصات مساحة العمل
يمكنك تشغيل التشخيصات على مساحة العمل الخاصة بك من استوديو Azure التعلم الآلي أو Python SDK. بعد تشغيل التشخيص، تُرجع قائمة بأي مشكلات يُكشَف عنها. وتشمل هذه القائمة ارتباطات إلى الحلول الممكنة. لمزيد من المعلومات، راجع كيفية استخدام تشخيصات مساحة العمل.
الخطوات التالية
هذه المقالة جزء من سلسلة حول تأمين سير عمل Azure التعلم الآلي. انظر المقالات الأخرى في هذه السلسلة:


