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

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

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

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

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

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

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

  • إصدار Azure CLI ⁧2.6.0⁩ أو أعلى.

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

    • ⁩مدير أمان⁧⁩ Azure Active Directory (AD) تم توفيره وتم تعيين دور ⁧⁩مالك بيانات كائن تخزين ثنائي كبير الحجم⁧⁩ في نطاق الحاوية الهدف أو مجموعة الموارد الأصلية أو الاشتراك.

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

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

ثبّت وحدة PowerShell النمطية

  1. تحقق من أن إصدار PowerShell الذي تم تثبيته ⁧5.1⁩ أو أعلى باستخدام الأمر التالي.

    echo $PSVersionTable.PSVersion.ToString()
    

    لترقية إصدار PowerShell الخاص بك، راجع ⁧⁩ترقية Windows PowerShell الحالية⁧

  2. تثبيت وحدة ⁧⁩Az.Storage⁧⁩ النمطية.

    Install-Module Az.Storage -Repository PSGallery -Force  
    

    لمزيد من المعلومات حول كيفية تثبيت وحدات PowerShell النمطية، راجع ⁧⁩تثبيت الوحدة Azure PowerShell النمطية⁧

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

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

الخيار 1: الحصول على تخويل باستخدام Azure Active Directory (AD)

ملاحظة

إذا كنت تستخدم Azure Active Directory (Azure AD) لتخويل الوصول، فتأكد من تعيين دور ⁧⁩مالك بيانات كائن تخزين ثنائي كبير الحجم⁧⁩ لأساس الأمان. لمعرفة المزيد حول كيفية تطبيق أذونات ACL وتأثيرات تغييرها، راجع ⁧⁩نموذج التحكم في الوصول في Azure Data Lake Storage Gen2⁧⁩.

باستخدام هذا النهج، يضمن النظام أن حساب المستخدم الخاص بك لديه تعيينات التحكم في الوصول المستندة إلى دور Azure (Azure RBAC) المناسبة وأذونات ACL.

  1. افتح نافذة أوامر Windows PowerShell، ثم قم بتسجيل الدخول إلى اشتراك Azure باستخدام الأمر ⁧Connect-AzAccount⁩ واتبع الإرشادات التي تظهر على الشاشة.

    Connect-AzAccount
    
  2. إذا كانت هويتك مقترنة بأكثر من اشتراك واحد، فحدد اشتراكك النشط لاشتراك حساب التخزين الذي تريد إنشاء الدلائل فيه وإدارتها. في هذا المثال، استبدل قيمة العنصر النائب ⁧<subscription-id>⁩ بمعرف اشتراكك.

    Select-AzSubscription -SubscriptionId <subscription-id>
    
  3. احصل على سياق حساب التخزين.

    $ctx = New-AzStorageContext -StorageAccountName '<storage-account-name>' -UseConnectedAccount
    

الخيار 2: الحصول على تخويل باستخدام مفتاح حساب التخزين

باستخدام هذا النهج، لا يتحقق النظام من أذونات Azure RBAC أو ACL. احصل على سياق حساب التخزين باستخدام مفتاح حساب.

$ctx = New-AzStorageContext -StorageAccountName '<storage-account-name>' -StorageAccountKey '<storage-account-key>'

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

احصل على قائمة التحكم بالوصول لدليل أو ملف باستخدام ⁧Get-AzDataLakeGen2Item⁩cmdlet.

يحصل هذا المثال على قائمة التحكم بالوصول (ACL) للدليل الجذر ⁧⁩لحاوية⁧⁩ ثم يقوم بطباعة قائمة التحكم بالوصول إلى وحدة التحكم.

$filesystemName = "my-file-system"
$filesystem = Get-AzDataLakeGen2Item -Context $ctx -FileSystem $filesystemName
$filesystem.ACL

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

$filesystemName = "my-file-system"
$dirname = "my-directory/"
$dir = Get-AzDataLakeGen2Item -Context $ctx -FileSystem $filesystemName -Path $dirname
$dir.ACL

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

$filePath = "my-directory/upload.txt"
$file = Get-AzDataLakeGen2Item -Context $ctx -FileSystem $filesystemName -Path $filePath
$file.ACL

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

Get ACL output for directory

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

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

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

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

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

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

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

set-AzDataLakeGen2ItemAclObject⁩ استخدم cmdlet لإنشاء قائمة تحكم بالوصول للمستخدم المالك أو المجموعة المالكة أو المستخدمين الآخرين. ثم استخدم ⁧Update-AzDataLakeGen2Item⁩ cmdlet لتثبيت قائمة التحكم بالوصول.

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

$filesystemName = "my-file-system"
$acl = set-AzDataLakeGen2ItemAclObject -AccessControlType user -Permission rw-
$acl = set-AzDataLakeGen2ItemAclObject -AccessControlType group -Permission rw- -InputObject $acl
$acl = set-AzDataLakeGen2ItemAclObject -AccessControlType other -Permission -wx -InputObject $acl
Update-AzDataLakeGen2Item -Context $ctx -FileSystem $filesystemName -Acl $acl
$filesystem = Get-AzDataLakeGen2Item -Context $ctx -FileSystem $filesystemName
$filesystem.ACL

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

$filesystemName = "my-file-system"
$dirname = "my-directory/"
$acl = set-AzDataLakeGen2ItemAclObject -AccessControlType user -Permission rw-
$acl = set-AzDataLakeGen2ItemAclObject -AccessControlType group -Permission rw- -InputObject $acl
$acl = set-AzDataLakeGen2ItemAclObject -AccessControlType other -Permission -wx -InputObject $acl
Update-AzDataLakeGen2Item -Context $ctx -FileSystem $filesystemName -Path $dirname -Acl $acl
$dir = Get-AzDataLakeGen2Item -Context $ctx -FileSystem $filesystemName -Path $dirname
$dir.ACL

ملاحظة

إذا كنت ترغب في تعيين إدخال قائمة تحكم بالوصول ⁧⁩افتراضية⁧⁩، استخدم المعلمة ⁧⁩-DefaultScope⁧⁩ عند تشغيل الأمر ⁧⁩Set-AzDataLakeGen2ItemAclObject⁧⁩. على سبيل المثال: $acl = set-AzDataLakeGen2ItemAclObject -AccessControlType user -Permission rwx -DefaultScope.

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

$filesystemName = "my-file-system"
$filePath = "my-directory/upload.txt"
$acl = set-AzDataLakeGen2ItemAclObject -AccessControlType user -Permission rw-
$acl = set-AzDataLakeGen2ItemAclObject -AccessControlType group -Permission rw- -InputObject $acl
$acl = set-AzDataLakeGen2ItemAclObject -AccessControlType other -Permission "-wx" -InputObject $acl
Update-AzDataLakeGen2Item -Context $ctx -FileSystem $filesystemName -Path $filePath -Acl $acl
$file = Get-AzDataLakeGen2Item -Context $ctx -FileSystem $filesystemName -Path $filePath
$file.ACL

ملاحظة

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

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

Get ACL output for file

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

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

قم بتعيين قوائم التحكم في الوصول بشكل متكرر باستخدام cmdlet ⁧⁩Set-AzDataLakeGen2AclRecursive⁧⁩ cmdlet.

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

$filesystemName = "my-container"
$dirname = "my-parent-directory/"
$userID = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx";

$acl = Set-AzDataLakeGen2ItemAclObject -AccessControlType user -Permission rwx
$acl = Set-AzDataLakeGen2ItemAclObject -AccessControlType group -Permission r-x -InputObject $acl
$acl = Set-AzDataLakeGen2ItemAclObject -AccessControlType other -Permission "---" -InputObject $acl
$acl = Set-AzDataLakeGen2ItemAclObject -AccessControlType user -EntityId $userID -Permission r-x -InputObject $acl

Set-AzDataLakeGen2AclRecursive -Context $ctx -FileSystem $filesystemName -Path $dirname -Acl $acl

ملاحظة

إذا كنت ترغب في تعيين إدخال قائمة تحكم بالوصول ⁧⁩افتراضية⁧⁩، استخدم المعلمة ⁧⁩-DefaultScope⁧⁩ عند تشغيل الأمر ⁧⁩Set-AzDataLakeGen2ItemAclObject⁧⁩. على سبيل المثال: $acl = set-AzDataLakeGen2ItemAclObject -AccessControlType user -Permission rwx -DefaultScope.

للاطلاع على مثال يقوم بتعيين قوائم التحكم في الوصول بشكل متكرر على دفعات عن طريق تحديد حجم دفعة، راجع المقالة المرجعية ⁧⁩Set-AzDataLakeGen2AclRecursive⁧⁩.

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

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

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

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

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

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

أولاً، احصل على قائمة التحكم بالوصول. ثم استخدم cmdlet ⁧set-AzDataLakeGen2ItemAclObject⁩ لإضافة إدخال قائمة التحكم بالوصول أو تحديثها. استخدم cmdlet ⁧Update-AzDataLakeGen2Item⁩ لتثبيت قائمة التحكم بالوصول.

يقوم هذا المثال بإنشاء قائمة التحكم في الوصول أو تحديثها على ⁧⁩دليل⁧⁩ لمستخدم.

$filesystemName = "my-file-system"
$dirname = "my-directory/"
$acl = (Get-AzDataLakeGen2Item -Context $ctx -FileSystem $filesystemName -Path $dirname).ACL
$acl = set-AzDataLakeGen2ItemAclObject -AccessControlType user -EntityID xxxxxxxx-xxxx-xxxxxxxxxxx -Permission r-x -InputObject $acl
Update-AzDataLakeGen2Item -Context $ctx -FileSystem $filesystemName -Path $dirname -Acl $acl

ملاحظة

إذا كنت ترغب في تحديث إدخال قائمة ⁧⁩افتراضية⁧⁩، استخدم المعلمة ⁧⁩-DefaultScope⁧⁩ عند تشغيل الأمر ⁧⁩Set-AzDataLakeGen2ItemAclObject⁧⁩. على سبيل المثال: $acl = set-AzDataLakeGen2ItemAclObject -AccessControlType user -EntityID xxxxxxxx-xxxx-xxxxxxxxxxx -Permission r-x -DefaultScope.

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

تحديث قوائم التحكم بالوصول بشكل متكرر باستخدام cmdlet ⁧⁩تحديث AzDataLakeGen2AclRecursive⁧⁩.

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

$filesystemName = "my-container"
$dirname = "my-parent-directory/"
$userID = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx";

$acl = Set-AzDataLakeGen2ItemAclObject -AccessControlType user -EntityId $userID -Permission rwx

Update-AzDataLakeGen2AclRecursive -Context $ctx -FileSystem $filesystemName -Path $dirname -Acl $acl

ملاحظة

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

للاطلاع على مثال يقوم بتحديث قوائم التحكم بالوصول بشكل متكرر على دفعات عن طريق تحديد حجم دفعة، راجع المقالة المرجعية ⁧⁩Update-AzDataLakeGen2AclRecursive⁧⁩.

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

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

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

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

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

$id = "xxxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"

# Create the new ACL object.
[Collections.Generic.List[System.Object]]$aclnew =$acl

foreach ($a in $aclnew)
{
    if ($a.AccessControlType -eq "User"-and $a.DefaultScope -eq $false -and $a.EntityId -eq $id)
    {
        $aclnew.Remove($a);
        break;
    }
}
Update-AzDataLakeGen2Item -Context $ctx -FileSystem $filesystemName -Path $dirname -Acl $aclnew

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

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

أزل إدخالات قائمة التحكم بالوصول باستخدام cmdlet ⁧⁩إزالة AzDataLakeGen2AclRecursive⁧⁩.

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

$filesystemName = "my-container"
$userID = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"

$acl = Set-AzDataLakeGen2ItemAclObject -AccessControlType user -EntityId $userID -Permission "---"

Remove-AzDataLakeGen2AclRecursive -Context $ctx -FileSystem $filesystemName  -Acl $acl

ملاحظة

إذا كنت ترغب في إزالة إدخال قائمة ⁧⁩افتراضية⁧⁩، فاستخدم المعلمة ⁧⁩-DefaultScope⁧⁩ عند تشغيل الأمر ⁧⁩Set-AzDataLakeGen2ItemAclObject⁧⁩. على سبيل المثال: $acl = set-AzDataLakeGen2ItemAclObject -AccessControlType user -EntityId $userID -Permission "---" -DefaultScope.

للاطلاع على مثال يزيل قوائم التحكم في الوصول بشكل متكرر على دفعات عن طريق تحديد حجم دفعة، راجع المقالة المرجعية ⁧⁩Remove-AzDataLakeGen2AclRecursive⁧⁩.

الاسترداد من حالات الفشل

ربما تواجه أخطاء وقت التشغيل أو الأذونات عند تعديل قوائم التحكم بالوصول بشكل متكرر.

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

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

$result = Set-AzDataLakeGen2AclRecursive -Context $ctx -FileSystem $filesystemName -Path $dirname -Acl $acl
$result
$result.FailedEntries | ft

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

$result = Set-AzDataLakeGen2AclRecursive -Context $ctx -FileSystem $filesystemName -Path $dirname -Acl $acl -ContinuationToken $result.ContinuationToken
$result

للاطلاع على مثال يقوم بتعيين قوائم التحكم في الوصول بشكل متكرر على دفعات عن طريق تحديد حجم دفعة، راجع المقالة المرجعية ⁧⁩Set-AzDataLakeGen2AclRecursive⁧⁩.

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

يستخدم هذا المثال المعلمة بحيث يستمر التنفيذ حتى إذا واجهت العملية خطأ في الأذونات ⁧ContinueOnFailure⁩.

$result = Set-AzDataLakeGen2AclRecursive -Context $ctx -FileSystem $filesystemName -Path $dirname -Acl $acl -ContinueOnFailure

echo "[Result Summary]"
echo "TotalDirectoriesSuccessfulCount: `t$($result.TotalFilesSuccessfulCount)"
echo "TotalFilesSuccessfulCount: `t`t`t$($result.TotalDirectoriesSuccessfulCount)"
echo "TotalFailureCount: `t`t`t`t`t$($result.TotalFailureCount)"
echo "FailedEntries:"$($result.FailedEntries | ft)

للاطلاع على مثال يقوم بتعيين قوائم التحكم في الوصول بشكل متكرر على دفعات عن طريق تحديد حجم دفعة، راجع المقالة المرجعية ⁧⁩Set-AzDataLakeGen2AclRecursive⁧⁩.

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

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

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

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

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

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

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

نوصي بتوفير مدير أمان Azure AD تم تعيينه لدور ⁧⁩مالك بيانات كائن تخزين ثنائي كبير الحجم⁧⁩ في نطاق حساب التخزين الهدف أو الحاوية.

الأداء

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

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

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

راجع أيضًا