نموذج التحكم بالوصول في Azure Data Lake Storage Gen2

يدعم Data Lake Storage Gen2 آليات الترخيص التالية:

  • تفويض المفتاح المشترك
  • تخويل توقيع الوصول المشترك (SAS)
  • التحكم في الوصول استنادًا إلى الدور من Azure
  • التحكم في الوصول المستند إلى السمة (Azure ABAC)
  • قوائم التحكم في الوصول (ACL)

يمنح المفتاح المشترك وتخويل SAS الوصول إلى مستخدم (أو تطبيق) دون مطالبتهم بالحصول على هوية في معرف Microsoft Entra. مع هذين النوعين من المصادقة، لا يكون ل Azure RBAC وAzure ABAC وACLs أي تأثير.

يتطلب كل من Azure RBAC وACL أن يكون لدى المستخدم (أو التطبيق) هوية في معرف Microsoft Entra. يتيح لك Azure RBAC منح حق الوصول "الخشن" إلى بيانات حساب التخزين، مثل الوصول للقراءة أو الكتابة إلى جميع البيانات في حساب التخزين. يسمح لك Azure ABAC بتحسين تعيينات دور RBAC عن طريق إضافة شروط. على سبيل المثال، يمكنك منح حق الوصول للقراءة أو الكتابة إلى جميع كائنات البيانات في حساب تخزين يحتوي على علامة معينة. تتيح لك قوائم التحكم بالوصول (ACLs) منح حق الوصول "الدقيق"، مثل الوصول للكتابة إلى دليل أو ملف معين.

تركز هذه المقالة على Azure RBAC وABAC وACLs، وكيفية تقييم النظام لها معا لاتخاذ قرارات التخويل لموارد حساب التخزين.

التحكم في الوصول استنادًا إلى الدور من Azure

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

تسمح الأدوار التالية لمدير الأمان بالوصول إلى البيانات في حساب التخزين.

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

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

التحكم في الوصول المستند إلى السمة (Azure ABAC)

يعتمد Azure ABAC على Azure RBAC عن طريق إضافة شروط تعيين الدور استناداً إلى السمات في سياق إجراءات محددة. شرط تعيين الدور هو فحص إضافي يمكنك إضافته اختياريا إلى تعيين الدور لتوفير تحكم وصول أكثر دقة. لا يمكنك رفض الوصول إلى موارد معينة باستخدام الشروط صراحة.

لمزيد من المعلومات حول استخدام Azure ABAC للتحكم في الوصول إلى Azure Storage، راجع تخويل الوصول إلى Azure Blob Storage باستخدام شروط تعيين دور Azure.

قوائم التحكم بالوصول (ACLs)

تمنحك ACLs القدرة على تطبيق مستوى "الحبوب الدقيقة" للوصول إلى الأدلة والملفات. ACL عبارة عن هيكل تصريح يحتوي على سلسلة من إدخالات ACL. كل إدخال ACL يربط مدير الأمن بمستوى الوصول. لمعرفة المزيد، راجع قوائم التحكم في الوصول (ACLs) في Azure Data Lake Storage Gen2.

كيفية تقييم الأذونات

أثناء التخويل المستند إلى أساس الأمان، يتم تقييم الأذونات كما هو موضح في الرسم التخطيطي التالي.

data lake storage permission flow

  1. يحدد Azure ما إذا كان تعيين دور موجودا للمدير.
    • إذا كان تعيين الدور موجودا، يتم تقييم شروط تعيين الدور (2) بعد ذلك.
    • إذا لم يكن الأمر كما هو، يتم تقييم قوائم التحكم بالوصول (4) بعد ذلك.
  2. يحدد Azure ما إذا كانت هناك أي شروط لتعيين دور ABAC.
    • إذا لم تكن هناك شروط، يتم منح حق الوصول.
    • إذا كانت الشروط موجودة، يتم تقييمها لمعرفة ما إذا كانت تطابق الطلب (3).
  3. يحدد Azure ما إذا كانت جميع شروط تعيين دور ABAC تطابق سمات الطلب.
    • إذا تطابقت جميعها، يتم منح حق الوصول.
    • إذا لم يتطابق واحد منها على الأقل، يتم تقييم قوائم التحكم بالوصول (4) بعد ذلك.
  4. إذا لم يتم منح الوصول بشكل صريح بعد تقييم تعيينات الدور وشروطه، يتم تقييم قوائم التحكم في الوصول.
    • إذا سمحت قوائم التحكم بالوصول بالمستوى المطلوب من الوصول، يتم منح الوصول.
    • إذا لم يكن الأمر كما هو، يتم رفض الوصول.

هام

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

يُبين الرسم البياني التالي تدفق الإذن لثلاث عمليات شائعة: إدراج محتويات الدليل وقراءة ملف وكتابة ملف.

data lake storage permission flow example

جدول الأذونات: الجمع بين Azure RBAC وABAC وACLs

يوضح الجدول التالي كيفية دمج أدوار Azure والشروط وإدخالات ACL بحيث يمكن لأساس الأمان تنفيذ العمليات المدرجة في عمود العملية . يُبين هذا الجدول عمودًا يمثل كل مستوى من مستويات التسلسل الهرمي للدليل الوهمي. هناك عمود للدليل الجذري للحاوية (/)، ودليل فرعي يسمى Oregon، ودليل فرعي لدليل Oregon يسمى Portland، وملف نصي في دليل Portland يسمى Data.txt. يظهر في هذه الأعمدة تمثيل قصير لإدخال ACL المطلوب لمنح الأذونات. لا ينطبق (لا ينطبق) يظهر في العمود إذا لم يكن إدخال ACL مطلوبًا لإجراء العملية.

العملية دور Azure المعين (بشروط أو بدونها) / Oregon/ Portland/ Data.txt
اقرأ Data.txt مالك بيانات مخزن البيانات الثنائية الكبيرة غير متاح غير متاح غير متاح غير متاح
المساهم في بيانات مخزن البيانات الثنائية الكبيرة غير متاح غير متاح غير متاح غير متاح
قارئ بيانات مخزن البيانات الثنائية الكبيرة غير متاح غير متاح غير متاح غير متاح
بلا --X --X --X R--
إلحاق Data.txt مالك بيانات مخزن البيانات الثنائية الكبيرة غير متاح غير متاح غير متاح غير متاح
المساهم في بيانات مخزن البيانات الثنائية الكبيرة غير متاح غير متاح غير متاح غير متاح
قارئ بيانات مخزن البيانات الثنائية الكبيرة --X --X --X -W-
بلا --X --X --X RW-
حذف Data.txt مالك بيانات مخزن البيانات الثنائية الكبيرة غير متاح غير متاح غير متاح غير متاح
المساهم في بيانات مخزن البيانات الثنائية الكبيرة غير متاح غير متاح غير متاح غير متاح
قارئ بيانات مخزن البيانات الثنائية الكبيرة --X --X -WX غير متاح
بلا --X --X -WX غير متاح
إنشاء Data.txt مالك بيانات مخزن البيانات الثنائية الكبيرة غير متاح غير متاح غير متاح غير متاح
المساهم في بيانات مخزن البيانات الثنائية الكبيرة غير متاح غير متاح غير متاح غير متاح
قارئ بيانات مخزن البيانات الثنائية الكبيرة --X --X -WX غير متاح
بلا --X --X -WX غير متاح
قائمة / مالك بيانات مخزن البيانات الثنائية الكبيرة غير متاح غير متاح غير متاح غير متاح
المساهم في بيانات مخزن البيانات الثنائية الكبيرة غير متاح غير متاح غير متاح غير متاح
قارئ بيانات مخزن البيانات الثنائية الكبيرة غير متاح غير متاح غير متاح غير متاح
بلا R-X غير متاح غير متاح غير متاح
قائمة /Oregon/ مالك بيانات مخزن البيانات الثنائية الكبيرة غير متاح غير متاح غير متاح غير متاح
المساهم في بيانات مخزن البيانات الثنائية الكبيرة غير متاح غير متاح غير متاح غير متاح
قارئ بيانات مخزن البيانات الثنائية الكبيرة غير متاح غير متاح غير متاح غير متاح
بلا --X R-X غير متاح غير متاح
قائمة /Oregon/Portland/ مالك بيانات مخزن البيانات الثنائية الكبيرة غير متاح غير متاح غير متاح غير متاح
المساهم في بيانات مخزن البيانات الثنائية الكبيرة غير متاح غير متاح غير متاح غير متاح
قارئ بيانات مخزن البيانات الثنائية الكبيرة غير متاح غير متاح غير متاح غير متاح
بلا --X --X R-X غير متاح

إشعار

لعرض محتويات حاوية في Azure Storage Explorer، يجب على أساسيات الأمان تسجيل الدخول إلى Storage Explorer باستخدام معرف Microsoft Entra، و (كحد أدنى) الوصول للقراءة (R--) إلى المجلد الجذر (\) للحاوية. يمنحهم هذا المستوى من الإذن القدرة على سرد محتويات المجلد الجذري. إذا كنت لا تريد أن تكون محتويات المجلد الجذر مرئية، فيمكنك تعيين دور القارئ لهم. مع هذا الدور، سيتمكنون من إدراج الحاويات في الحساب، ولكن ليس محتويات الحاوية. يمكنك بعد ذلك منح حق الوصول إلى أدلة وملفات معينة باستخدام ACLs.

مجموعات الأمان

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

هناك العديد من الطرق المختلفة لإنشاء مجموعات. على سبيل المثال، تخيل أن لديك دليلاً باسم /LogData يحتوي على بيانات السجل التي يتم إنشاؤها بواسطة الخادم الخاص بك. يستوعب Azure Data Factory (ADF) البيانات في هذا المجلد. سيقوم مستخدمون محددون من فريق هندسة الخدمة بتحميل السجلات وإدارة المستخدمين الآخرين لهذا المجلد، وستقوم مجموعات Databricks المختلفة بتحليل السجلات من هذا المجلد.

لتمكين هذه الأنشطة، يمكنك إنشاء LogsWriter مجموعة و LogsReader مجموعة. ومن ثم يمكنك تعيين الأذونات على النحو التالي:

  • أضف مجموعة LogsWriter إلى ACL لدليل / LogData بأذونات rwx.
  • أضف مجموعة LogsReader إلى ACL لدليل / LogData بأذونات r-x.
  • أضف عنصر الخدمة الرئيسي أو هوية الخدمة المدارة (MSI) لوحدة التغذية التلقائية للمستندات إلى مجموعة LogsWriters.
  • أضف المستخدمين في فريق هندسة الخدمة إلى مجموعة LogsWriter.
  • أضف عنصر الخدمة الرئيسي أو MSI لقاعدة البيانات إلى المجموعة LogsReader.

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

لإنشاء مجموعة وإضافة أعضاء، راجع إنشاء مجموعة أساسية وإضافة أعضاء باستخدام معرف Microsoft Entra.

هام

يعتمد Azure Data Lake Storage Gen2 على معرف Microsoft Entra لإدارة مجموعات الأمان. يوصي Microsoft Entra ID بتقييد عضوية المجموعة لأساس أمان معين إلى أقل من 200. ترجع هذه التوصية إلى تقييد رموز ويب JSON المميزة (JWT) التي توفر معلومات عضوية مجموعة كيان الأمان داخل تطبيقات Microsoft Entra. قد يؤدي تجاوز هذا الحد إلى مشكلات أداء غير متوقعة مع Data Lake Storage Gen2. لمعرفة المزيد، راجع تكوين مطالبات المجموعة للتطبيقات باستخدام معرف Microsoft Entra.

حدود تعيينات دور Azure وإدخالات ACL

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

آلِيَّة Scope الحدود مستوى الإذن المدعوم
Azure RBAC حسابات التخزين،و الحاويات.
مهام دور Azure عبر الموارد على مستوى الاشتراك أو مجموعة الموارد.
4000 تعيين دور Azure في اشتراك أدوار Azure (مضمنة أو مخصصة)
قائمة التحكم بالوصول (ACL) دليل، ملف 32 إدخالات ACL (فعليًا 28 إدخالات ACL) لكل ملف ولكل دليل. يحتوي كل من قوائم التحكم للوصول والقوائم الافتراضية على حد دخول ACL 32 الخاص به. إذن ACL

تفويض المفتاح المشترك وتوقيع الوصول المشترك (SAS)

يدعم Azure Data Lake Storage Gen2 أيضًا طرق المفتاح المشترك و SAS للمصادقة. تتمثل إحدى خصائص طرق المصادقة هذه في عدم وجود هوية مرتبطة بالمتصل، وبالتالي لا يمكن تنفيذ التفويض المستند إلى تصريح الأمان الرئيسي.

في حالة المفتاح المشترك، يحصل المتصل بشكل فعال على وصول "المستخدم الفائق"، مما يعني الوصول الكامل إلى جميع العمليات على جميع الموارد بما في ذلك البيانات، وإعداد المالك، وتغيير ACLs.

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

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

لمعرفة المزيد حول قوائم التحكم في الوصول، راجع قوائم التحكم في الوصول (ACLs) في Azure Data Lake Storage Gen2.