استخدم Azure CLI لإدارة قوائم التحكم في الوصول في Azure Data Lake Storage Gen2

توضح لك هذه المقالة كيفية استخدام Azure CLI للحصول على وتعيين وتحديث قوائم التحكم في الوصول الخاصة بالدلائل والملفات.

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

مرجع | العينات | تقديم الملاحظات

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

  • اشتراك Azure. لمزيد من المعلومات، راجع الحصول على التجربة المجانية من Azure.

  • حساب تخزين يحتوي على مساحة أسماء هرمية ممكنة. اتبع هذه الإرشادات لإنشاء واحدة.

  • إصدار Azure CLI 2.14.0 أو أعلى.

  • أحد أذونات الأمان التالية:

    • أساس أمان معرف Microsoft Entra تم توفيره تم تعيينه لدور "مالك بيانات كائن ثنائي كبير الحجم للتخزين"، تم تحديد نطاقه للحاوية الهدف أو حساب التخزين أو مجموعة الموارد الأصل أو الاشتراك.

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

    • مفتاح حساب التخزين.

تأكد من أن قمت بتثبيت الإصدار الصحيح من Azure CLI

  1. أولا، افتح Azure Cloud Shell، أو إذا قمت بتثبيت Azure CLI محليًا، افتح تطبيق وحدة تحكم أوامر مثل Windows PowerShell.

  2. تحقق من أن إصدار Azure CLI الذي ثُبت هو 2.14.0 أو أعلى باستخدام الأمر التالي.

     az --version
    

    إذا كان إصدار Azure CLI الخاص بك أقل من 2.14.0، ثم ثبت إصدار أحدث. لمزيد من المعلومات، اطلع على تثبيت Azure CLI.

الاتصال بالحساب

  1. إذا كنت تستخدم Azure CLI محليا، فقم بتشغيل أمر تسجيل الدخول.

    az login
    

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

    بخلاف ذلك، افتح صفحة متصفح على https://aka.ms/devicelogin وأدخل رمز التفويض المعروض في جهازك. بعد ذلك، قم بتسجيل الدخول باستخدام بيانات اعتماد حسابك في المستعرض.

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

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

    az account set --subscription <subscription-id>
    

    استبدل قيمة <subscription-id>العنصر النائب بمعرف اشتراكك.

إشعار

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

الحصول على قوائم التحكم في الوصول

احصل على قائمة التحكم بالوصول (ACL) لدليل باستخدام الأمر az storage fs access show.

يحصل هذا المثال على قائمة التحكم بالوصول لدليل ثم يقوم بطباعة قائمة التحكم بالوصول إلى وحدة التحكم.

az storage fs access show -p my-directory -f my-file-system --account-name mystorageaccount --auth-mode login

احصل على أذونات الوصول لملف باستخدام الأمر az storage fs access show.

يحصل هذا المثال على قائمة التحكم بالوصول لملف ثم يقوم بطباعة قائمة التحكم بالوصول إلى وحدة التحكم.

az storage fs access show -p my-directory/upload.txt -f my-file-system --account-name mystorageaccount --auth-mode login

تعرض الصورة التالية الإخراج بعد الحصول على قائمة التحكم بالوصول للدليل.

Get ACL output

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

تعيين قوائم التحكم في الوصول

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

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

يوضح لك هذا القسم كيفية:

  • تعيين قائمة تحكم بالوصول
  • تعيين قوائم التحكم في الوصول بشكل متكرر

تعيين قائمة تحكم بالوصول

استخدم الأمر az storage fs access set لتعيين قائمة التحكم في الوصول لدليل.

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

az storage fs access set --acl "user::rw-,group::rw-,other::-wx" -p my-directory -f my-file-system --account-name mystorageaccount --auth-mode login

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

az storage fs access set --acl "default:user::rw-,group::rw-,other::-wx" -p my-directory -f my-file-system --account-name mystorageaccount --auth-mode login

استخدم الأمر az storage fs access set لتعيين acl لملف.

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

az storage fs access set --acl "user::rw-,group::rw-,other::-wx" -p my-directory/upload.txt -f my-file-system --account-name mystorageaccount --auth-mode login

إشعار

إلى مجموعة قائمة التحكم في الوصول لمجموعة أو مستخدم معين، استخدم معرفات الكائنات الخاصة به. على سبيل المثال، لتعيين ACL لمجموعة، استخدم group:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx. لتعيين قائمة التحكم بالوصول (ACL) لمستخدم، استخدم user:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.

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

Get ACL output 2

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

تعيين قوائم التحكم في الوصول بشكل متكرر

قم بتعيين قوائم التحكم في الوصول بشكل متكرر باستخدام الأمر az storage fs access set-recursive.

يُعين هذا المثال قائمة التحكم بالوصول لدليل يُسمى my-parent-directory. تمنح هذه الإدخالات المستخدم المالك أذونات القراءة والكتابة والتنفيذ، وتمنح المجموعة المالكة أذونات القراءة والتنفيذ فقط، ولا تمنح جميع الآخرين أي وصول. يعطي إدخال قائمة التحكم في الوصول الأخير في هذا المثال مستخدما معينا لديه معرف الكائن "xxxxxxxx-xxxx-xxxx-xxxx-xxxx-xxxx.

az storage fs access set-recursive --acl "user::rwx,group::r-x,other::---,user:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx:r-x" -p my-parent-directory/ -f my-container --account-name mystorageaccount --auth-mode login

إشعار

إذا كنت تريد تعيين إدخال قائمة التحكم في الوصول افتراضية، فأضف البادئة default: إلى كل إدخال. على سبيل المثال: default:user::rwx أو default:user:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx:r-x.

تحديث قوائم التحكم في الوصول

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

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

يوضح لك هذا القسم كيفية:

  • تحديث قائمة التحكم بالوصول
  • تحديث قوائم التحكم في الوصول بشكل متكرر

تحديث قائمة التحكم بالوصول

قم بتحديث ACL لملف باستخدام الأمر az storage fs access update-recursive .

يقوم هذا المثال بتحديث إدخال قائمة التحكم في الوصول بإذن كتابة.

az storage fs access update-recursive --acl "user:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx:rwx" -p my-parent-directory/myfile.txt -f my-container --account-name mystorageaccount --auth-mode login

لتحديث قائمة التحكم بالوصول لمجموعة أو مستخدم معين، استخدم معرفات الكائنات الخاصة بهم. على سبيل المثال: group:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx أو user:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.

إشعار

لا يدعم Azure CLI تحديث قائمة التحكم بالوصول لدليل واحد دون تحديث قائمة التحكم بالوصول للعناصر التابعة. لتحديث قائمة التحكم بالوصول لدليل دون تعديل قوائم التحكم بالوصول لكافة العناصر التابعة في هذا الدليل، استخدم أي من الأدوات المدعومة الأخرى وSDKs. راجع كيفية تعيين قوائم التحكم بالوصول.

تحديث قوائم التحكم في الوصول بشكل متكرر

تحديث قوائم التحكم في الوصول بشكل متكرر باستخدام الأمر az storage fs access update-recursive.

يقوم هذا المثال بتحديث إدخال قائمة التحكم في الوصول بإذن كتابة.

az storage fs access update-recursive --acl "user:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx:rwx" -p my-parent-directory/ -f my-container --account-name mystorageaccount --auth-mode login

إشعار

إذا كنت تريد تحديث إدخال قائمة التحكم في الوصول افتراضي، فأضف البادئة default: إلى كل إدخال. على سبيل المثال، default:user:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx:r-x.

إزالة إدخالات قائمة التحكم في الوصول بشكل متكرر

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

قم بإزالة إدخالات قائمة التحكم في الوصول باستخدام الأمر az storage fs access remove-recursive.

يزيل هذا المثال إدخال قائمة التحكم بالوصول من الدليل الجذر للحاوية.

az storage fs access remove-recursive --acl "user:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" -p my-parent-directory/ -f my-container --account-name mystorageaccount --auth-mode login

إشعار

إذا كنت تريد إزالة إدخال قائمة التحكم في الوصول افتراضي، فأضف البادئة default: إلى كل إدخال. على سبيل المثال، default:user:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.

التعافي من حالات الفشل

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

في حالة حدوث فشل، يمكنك إرجاع رمز استمرار عن طريق تعيين المعلمة --continue-on-failure إلى false. بعد معالجة الأخطاء، يمكنك استئناف العملية من نقطة الفشل عن طريق تشغيل الأمر مرة أخرى، ثم تعيين المعلمة --continuation إلى الرمز المميز للمتابعة.

az storage fs access set-recursive --acl "user::rw-,group::r-x,other::---" --continue-on-failure false --continuation xxxxxxx -p my-parent-directory/ -f my-container --account-name mystorageaccount --auth-mode login  

إذا كنت تريد أن تكتمل العملية دون انقطاع بسبب أخطاء الأذونات، فيمكنك تحديد ذلك.

لضمان اكتمال العملية دون انقطاع، قم بتعيين المعلمة --continue-on-failure إلى true.

az storage fs access set-recursive --acl "user::rw-,group::r-x,other::---" --continue-on-failure true --continuation xxxxxxx -p my-parent-directory/ -f my-container --account-name mystorageaccount --auth-mode login  

أفضل الممارسات

يوفر لك هذا القسم بعض إرشادات أفضل الممارسات لإعداد قوائم التحكم بالوصول بشكل متكرر.

التعامل مع أخطاء وقت التشغيل

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

معالجة أخطاء الأذونات (403)

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

بيانات الاعتماد

نوصي بتوفير أساس أمان Microsoft Entra الذي تم تعيينه لدور Storage Blob Data Owner في نطاق حساب التخزين الهدف أو الحاوية.

الأداء

لتقليل زمن الانتقال، نوصي بتشغيل عملية ACL المتكررة في جهاز Azure Virtual Machine (VM) الموجود في نفس منطقة حساب التخزين خاصتك.

حدود ACL

الحد الأقصى لعدد قوائم التحكم في الوصول التي يمكنك تطبيقها على دليل أو ملف هو 32 قائمة تحكم بالوصول و32 قائمة تحكم بالوصول افتراضية. لمزيد من المعلومات، راجع التحكم في الوصول في Azure Data Lake Storage Gen2.

(راجع أيضًا )