الاتصال إلى التخزين باستخدام الوصول إلى البيانات المستندة إلى الهوية

في هذه المقالة، ستتعرف على كيفية الاتصال بخدمات التخزين على Azure باستخدام الوصول إلى البيانات المستندة إلى الهوية ومخازن بيانات Azure التعلم الآلي عبر Azure التعلم الآلي SDK ل Python.

عادة ما تستخدم مخازن البيانات المصادقة المستندة إلى بيانات الاعتماد للتأكد من أن لديك الإذن بالوصول إلى خدمة التخزين. يحتفظون بمعلومات الاتصال، مثل معرف الاشتراك وتفويض الرمز المميز، في مخزن المفاتيح المرتبط بمساحة العمل. عند إنشاء مخزن بيانات يستخدم الوصول إلى البيانات المستندة إلى الهوية، يتم استخدام حساب Azure الخاص بك (الرمز المميز ل Azure Active Directory) لتأكيد حصولك على إذن للوصول إلى خدمة التخزين. في سيناريو الوصول إلى البيانات المستندة إلى الهوية ، لا يتم حفظ بيانات اعتماد المصادقة. يتم تخزين معلومات حساب التخزين فقط في مخزن البيانات.

لإنشاء مخازن بيانات مع الوصول إلى البيانات المستندة إلى الهوية عبر واجهة مستخدم استوديو Azure التعلم الآلي، راجع الاتصال إلى البيانات باستخدام استوديو Azure التعلم الآلي.

لإنشاء مخازن بيانات تستخدم المصادقة المستندة إلى بيانات الاعتماد، مثل مفاتيح الوصول أو أساسيات الخدمة، راجع الاتصال إلى خدمات التخزين على Azure.

الوصول إلى البيانات المستندة إلى الهوية في Azure التعلم الآلي

هناك سيناريوهان يمكنك فيهما تطبيق الوصول إلى البيانات المستندة إلى الهوية في Azure التعلم الآلي. تعد هذه السيناريوهات مناسبة تماما للوصول المستند إلى الهوية عندما تعمل مع بيانات سرية وتحتاج إلى إدارة أكثر دقة للوصول إلى البيانات:

تحذير

الوصول إلى البيانات المستند إلى الهوية غير مدعوم لتجارب التعلم الآلي التلقائية.

  • الوصول إلى خدمات التخزين
  • تدريب نماذج التعلم الآلي باستخدام البيانات الخاصة

الوصول إلى خدمات التخزين

يمكنك الاتصال بخدمات التخزين عبر الوصول إلى البيانات المستندة إلى الهوية باستخدام مخازن بيانات Azure التعلم الآلي أو مجموعات بيانات Azure التعلم الآلي.

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

عند استخدام الوصول إلى البيانات المستند إلى الهوية، يطالبك Azure التعلم الآلي بالرمز المميز ل Azure Active Directory لمصادقة الوصول إلى البيانات بدلا من الاحتفاظ ببيانات الاعتماد الخاصة بك في مخزن البيانات. يسمح هذا النهج بإدارة الوصول إلى البيانات على مستوى التخزين ويحافظ على سرية بيانات الاعتماد.

ينطبق نفس السلوك عندما:

ملاحظة

تتضمن بيانات الاعتماد المخزنة عبر المصادقة المستندة إلى بيانات الاعتماد معرفات الاشتراك والرموز المميزة لتوقيع الوصول المشترك (SAS) ومفتاح الوصول إلى التخزين والمعلومات الأساسية للخدمة، مثل معرفات العميل ومعرفات المستأجرين.

تدريب نموذجي على البيانات الخاصة

تتضمن بعض سيناريوهات التعلم الآلي نماذج تدريب مع بيانات خاصة. في مثل هذه الحالات ، يحتاج علماء البيانات إلى تشغيل سير عمل التدريب دون التعرض لبيانات الإدخال السرية. في هذا السيناريو، يتم استخدام هوية مدارة لحساب التدريب لمصادقة الوصول إلى البيانات. يسمح هذا النهج لمسؤولي التخزين بمنح Storage Blob Data Reader حق الوصول إلى الهوية المدارة التي يستخدمها حساب التدريب لتشغيل مهمة التدريب. لا يحتاج علماء البيانات الفرديون إلى منحهم حق الوصول. لمزيد من المعلومات، راجع إعداد الهوية المدارة على مجموعة حوسبة.

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

إنشاء مخازن البيانات وتسجيلها

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

راجع العمل مع الشبكات الافتراضية للحصول على تفاصيل حول كيفية الاتصال بتخزين البيانات خلف الشبكات الظاهرية.

في التعليمة البرمجية التالية ، لاحظ عدم وجود معلمات مصادقة مثل sas_token، ، account_keysubscription_id، وأصل client_idالخدمة . يشير هذا الإغفال إلى أن Azure التعلم الآلي سيستخدم الوصول إلى البيانات المستندة إلى الهوية للمصادقة. عادة ما يحدث إنشاء مخازن البيانات بشكل تفاعلي في دفتر ملاحظات أو عبر الاستوديو. لذلك يتم استخدام الرمز المميز Azure Active Directory الخاص بك لمصادقة الوصول إلى البيانات.

ملاحظة

يجب أن تتكون أسماء مخزن البيانات فقط من أحرف صغيرة وأرقام وشرطة سفلية.

Azure blob container

لتسجيل حاوية Azure blob كمخزن بيانات، استخدم register_azure_blob_container().

تقوم التعليمة البرمجية التالية بإنشاء credentialless_blob مخزن البيانات وتسجيله في ws مساحة العمل وتعيينه إلى المتغير blob_datastore . يصل my_container_name مخزن البيانات هذا إلى حاوية blob الموجودة في حساب التخزين my-account-name .

# Create blob datastore without credentials.
blob_datastore = Datastore.register_azure_blob_container(workspace=ws,
                                                      datastore_name='credentialless_blob',
                                                      container_name='my_container_name',
                                                      account_name='my_account_name')

Azure Data Lake Storage Gen1

استخدم register_azure_data_lake() لتسجيل مخزن بيانات يتصل ب Gen1 Azure Data Lake Storage.

تقوم التعليمة البرمجية التالية بإنشاء credentialless_adls1 مخزن البيانات وتسجيله في workspace مساحة العمل وتعيينه إلى المتغير adls_dstore . يصل مخزن البيانات هذا إلى adls_storage حساب Azure Data Lake Storage.

# Create Azure Data Lake Storage Gen1 datastore without credentials.
adls_dstore = Datastore.register_azure_data_lake(workspace = workspace,
                                                 datastore_name='credentialless_adls1',
                                                 store_name='adls_storage')

Azure Data Lake Storage Gen2

استخدم register_azure_data_lake_gen2() لتسجيل مخزن بيانات يتصل Azure Data Lake Storage Gen2.

تقوم التعليمة البرمجية التالية بإنشاء credentialless_adls2 مخزن البيانات وتسجيله في ws مساحة العمل وتعيينه إلى المتغير adls2_dstore . يصل مخزن البيانات هذا إلى نظام tabular الملفات في حساب التخزين myadls2 .

# Create Azure Data Lake Storage Gen2 datastore without credentials.
adls2_dstore = Datastore.register_azure_data_lake_gen2(workspace=ws, 
                                                       datastore_name='credentialless_adls2', 
                                                       filesystem='tabular', 
                                                       account_name='myadls2')

Azure SQL Database

بالنسبة لقاعدة بيانات Azure SQL، استخدم register_azure_sql_database() لتسجيل مخزن بيانات يتصل بتخزين قاعدة بيانات Azure SQL.

تقوم التعليمة credentialless_sqldb البرمجية التالية بإنشاء مخزن البيانات وتسجيله في ws مساحة العمل وتعيينه إلى المتغير، sqldb_dstore. يصل مخزن البيانات هذا إلى قاعدة البيانات mydb في myserver خادم قاعدة بيانات SQL.

# Create a sqldatabase datastore without credentials
                                                       
sqldb_dstore = Datastore.register_azure_sql_database(workspace=ws,
                                                       datastore_name='credentialless_sqldb',
                                                       server_name='myserver',
                                                       database_name='mydb')                                                       
                                                   

أذونات الوصول إلى مساحة التخزين

للمساعدة في ضمان اتصالك الآمن بخدمة التخزين على Azure، يتطلب Azure التعلم الآلي أن يكون لديك إذن للوصول إلى وحدة تخزين البيانات المقابلة.

تحذير

الوصول عبر المستأجرين إلى حسابات التخزين غير مدعوم. إذا كانت هناك حاجة إلى الوصول عبر المستأجر للسيناريو الخاص بك، فيرجى التواصل مع الاسم المستعار لفريق دعم بيانات AzureML للحصول على المساعدة في amldatasupport@microsoft.com حل التعليمات البرمجية المخصصة.

يدعم الوصول إلى البيانات المستند إلى الهوية الاتصالات بخدمات التخزين التالية فقط .

  • Azure Blob Storage
  • Azure Data Lake Storage Gen1
  • Azure Data Lake Storage Gen2
  • قاعدة بيانات Azure SQL

للوصول إلى خدمات التخزين هذه، يجب أن يكون لديك على الأقل حق الوصول إلى Storage Blob Data Reader إلى حساب التخزين. يمكن لمالكي حسابات التخزين فقط تغيير مستوى وصولك عبر مدخل Azure.

إذا كنت تفضل عدم استخدام هوية المستخدم الخاصة بك (Azure Active Directory)، فلديك أيضا خيار منح إذن هوية نظام مدار (MSI) لمساحة عمل لإنشاء مخزن البيانات. للقيام بذلك، يجب أن يكون لديك أذونات المالك لحساب التخزين وإضافة المعلمة grant_workspace_access= True إلى طريقة تسجيل البيانات.

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

العمل مع الشبكات الافتراضية

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

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

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

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

  • إذا كانت مساحة التخزين الخاصة بك هي ADLS Gen 2 أو Blob ولديها إعدادات شبكة افتراضية، فيمكن للعملاء استخدام إما هوية المستخدم أو MSI لمساحة العمل وفقا لإعدادات مخزن البيانات المحددة أثناء الإنشاء.

  • إذا كان إعداد الشبكة الظاهرية هو السماح لخدمات Azure في قائمة الخدمات الموثوق بها بالوصول إلى حساب التخزين هذا، استخدام Workspace MSI.

استخدام البيانات في التخزين

نوصي باستخدام Azure التعلم الآلي مجموعات البيانات عند التفاعل مع بياناتك المخزنة مع Azure التعلم الآلي.

هام

مجموعات البيانات التي تستخدم الوصول إلى البيانات المستند إلى الهوية غير مدعومة لتجارب التعلم الآلي التلقائية.

تقوم مجموعات البيانات بتجميع بياناتك في كائن قابل للاستهلاك يتم تقييمه بشكل كسول لمهام التعلم الآلي مثل التدريب. أيضا ، باستخدام مجموعات البيانات ، يمكنك تنزيل أو تحميل ملفات من أي تنسيق من خدمات تخزين Azure مثل Azure Blob Storage Azure Data Lake Storage إلى هدف حوسبة.

لإنشاء مجموعة بيانات، يمكنك الرجوع إلى المسارات من مخازن البيانات التي تستخدم أيضا الوصول إلى البيانات المستندة إلى الهوية .

  • إذا كان نوع حساب التخزين الأساسي هو Blob أو ADLS Gen 2، فإن هوية المستخدم الخاصة بك تحتاج إلى دور Blob Reader.
  • إذا كانت مساحة التخزين الأساسية الخاصة بك هي ADLS Gen 1، فيمكن تعيين الأذونات اللازمة عبر قائمة التحكم في الوصول (ACL) الخاصة بالتخزين.

في المثال التالي، blob_datastore موجود بالفعل ويستخدم الوصول إلى البيانات المستندة إلى الهوية.

blob_dataset = Dataset.Tabular.from_delimited_files(blob_datastore,'test.csv') 

خيار آخر هو تخطي إنشاء مخزن البيانات وإنشاء مجموعات بيانات مباشرة من عناوين URL للتخزين. تدعم هذه الوظيفة حاليا نقاط Azure و Azure Data Lake Storage Gen1 و Gen2 فقط. للإنشاء استنادا إلى عنوان URL للتخزين، يلزم فقط المصادقة على هوية المستخدم.

blob_dset = Dataset.File.from_files('https://myblob.blob.core.windows.net/may/keras-mnist-fashion/')

عند إرسال مهمة تدريب تستهلك مجموعة بيانات تم إنشاؤها باستخدام الوصول إلى البيانات المستند إلى الهوية، يتم استخدام الهوية المدارة لحساب التدريب لمصادقة الوصول إلى البيانات. لا يتم استخدام الرمز المميز ل Azure Active Directory. بالنسبة لهذا السيناريو، تأكد من منح الهوية المدارة للحوسبة على الأقل دور "قارئ بيانات نقطة التخزين" من خدمة التخزين. لمزيد من المعلومات، راجع إعداد الهوية المدارة على مجموعات الحوسبة.

الوصول إلى البيانات الخاصة بمهام التدريب على مجموعات الحوسبة (معاينة)

APPLY TO: Azure CLI ml extension v1 v2 (معاينة)

هام

تُعد هذه الميزة قيد المعاينة العامة في الوقت الحالي. يجري توفير إصدار المعاينة هذا من دون اتفاقية على مستوى الخدمة، ولا يوصى به لأحمال العمل الخاصة بالإنتاج. بعض الميزات ربما لا تكون مدعمة أو بها بعض القدرات المقيدة. لمزيد من المعلومات، راجع ⁧⁩شروط الاستخدام التكميلية لمعاينات Microsoft Azure⁧⁩.

عند التدريب على Azure التعلم الآلي مجموعات الحوسبة، يمكنك المصادقة للتخزين باستخدام الرمز المميز ل Azure Active Directory.

يتيح لك وضع المصادقة هذا ما يلي:

  • قم بإعداد أذونات دقيقة، حيث يمكن لمستخدمي مساحة العمل المختلفين الوصول إلى حسابات تخزين أو مجلدات مختلفة داخل حسابات التخزين.
  • تدقيق الوصول إلى التخزين لأن سجلات التخزين تعرض الهويات التي تم استخدامها للوصول إلى البيانات.

تحذير

تحتوي هذه الوظيفة على القيود التالية

  • الميزة مدعومة فقط للتجارب المرسلة عبر الإصدار 2 من Azure التعلم الآلي CLI (المعاينة)
  • يتم دعم CommandJobs و PipelineJobs فقط باستخدام CommandSteps و AutoMLSteps
  • لا يمكن استخدام هوية المستخدم والهوية المدارة للحوسبة للمصادقة داخل نفس المهمة.

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

  1. منح هوية المستخدم حق الوصول إلى موارد التخزين. على سبيل المثال، امنح StorageBlobReader حق الوصول إلى حساب التخزين المحدد الذي تريد استخدامه أو منح إذن يستند إلى ACL لمجلدات أو ملفات معينة في وحدة تخزين Azure Data Lake Gen 2.

  2. قم بإنشاء مخزن بيانات Azure التعلم الآلي بدون بيانات اعتماد مخزنة مؤقتا لحساب التخزين. إذا كان مخزن البيانات يحتوي على بيانات اعتماد مخزنة مؤقتا، مثل مفتاح حساب التخزين، استخدام بيانات الاعتماد هذه بدلا من هوية المستخدم.

  3. أرسل وظيفة تدريبية مع تعيين هوية العقار إلى النوع: user_identity، كما هو موضح في مواصفات الوظيفة التالية. أثناء مهمة التدريب ، تتم المصادقة على التخزين عبر هوية المستخدم الذي يرسل المهمة.

ملاحظة

إذا تركت خاصية الهوية غير محددة ولم يكن لدى datastore بيانات اعتماد مخزنة مؤقتا، فعندئذ يصبح حساب الهوية المدارة هو الخيار الاحتياطي.

command: |
  echo "--census-csv: ${{inputs.census_csv}}"
  python hello-census.py --census-csv ${{inputs.census_csv}}
code: src
inputs:
  census_csv:
    type: uri_file 
    path: azureml://datastores/mydata/paths/census.csv
environment: azureml:AzureML-sklearn-1.0-ubuntu20.04-py38-cpu@latest
compute: azureml:cpu-cluster
identity:
  type: user_identity

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