إنشاء توقيع الوصول المشترك لتفويض مستخدم لحاوية أو كائن ثنائي كبير الحجم باستخدام PowerShell

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

يتم عملية توقيع كل SAS بمفتاح. يمكنك توقيع SAS بإحدى طريقتين:

  • باستخدام مفتاح تم إنشاؤه باستخدام بيانات اعتماد Microsoft Entra. SAS الذي تم توقيعه باستخدام بيانات اعتماد Microsoft Entra هو SAS لتفويض المستخدم. يجب أن يتم تعيين دور Azure RBAC للعميل الذي يقوم بإنشاء تحويل مستخدم SAS والذي يتضمن الإجراء Microsoft.Storage/storageAccounts/blobServices/generateUserDelegationKey. لمعرفة المزيد، راجع إنشاء توقيعات الوصول المشترك لتفويض المستخدم.
  • باستخدام مفتاح حساب التخزين. يتم توقيع كل من توقيع الوصول المشترك للخدمة و توقيع الوصول المشترك للحساب باستخدام مفتاح حساب التخزين. يجب أن يكون للعميل الذي ينشئ خدمة SAS حق وصول مباشر إلى مفتاح الحساب أو أن يتم تعيين إذن Microsoft.Storage/storageAccounts/listkeys/action. لمعرفة المزيد، راجع إنشاء SAS خدمة أو إنشاء حساب SAS.

إشعار

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

توضح هذه المقالة كيفية استخدام بيانات اعتماد Microsoft Entra لإنشاء SAS لتفويض مستخدم لحاوية أو كائن ثنائي كبير الحجم باستخدام Azure PowerShell.

حول توقيع الوصول المشترك لتفويض مستخدم

قد يتم تأمين رمز SAS المميز للوصول إلى حاوية أو كائن ثنائي كبير الحجم باستخدام بيانات اعتماد Microsoft Entra أو مفتاح حساب. يسمى SAS المؤمن ببيانات اعتماد Microsoft Entra SAS لتفويض المستخدم، لأن الرمز المميز OAuth 2.0 المستخدم لتوقيع SAS مطلوب نيابة عن المستخدم.

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

تنبيه

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

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

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

لإنشاء توقيع الوصول المشترك لتفويض مستخدم باستخدام PowerShell، ثبّت الإصدار 1.10.0 أو إصدار أحدث من الوحدة Az.Storage. اتبع الخطوات التالية لتثبيت أحدث إصدار من الوحدة:

  1. إزالة تثبيت أي عمليات تثبيت سابقة لـ Azure PowerShell:

    • قم بإزالة أي عمليات تثبيت سابقة ل Azure PowerShell من Windows باستخدام إعداد التطبيقات والميزات ضمن الإعدادات.
    • أزل كافة وحدات Azure من %Program Files%\WindowsPowerShell\Modules.
  2. تأكد من تثبيت أحدث إصدار من PowerShellGet. افتح نافذة Windows PowerShell، ثم شغّل الأمر التالي لتثبيت أحدث إصدار:

    Install-Module PowerShellGet -Repository PSGallery -Force
    
  3. أغلق نافذة PowerShell وأعد فتحها بعد تثبيت PowerShellGet.

  4. قم بتثبيت أحدث إصدار من Azure PowerShell:

    Install-Module Az -Repository PSGallery -AllowClobber
    
  5. تأكد من تثبيت الإصدار 3.2.0 من Azure PowerShell أو إصدار أحدث. شغّل الأمر التالي لتثبيت أحدث إصدار من الوحدة Azure Storage PowerShell:

    Install-Module -Name Az.Storage -Repository PSGallery -Force
    
  6. أغلق نافذة PowerShell وأعد فتحها.

للتحقق من إصدار وحدة Az.Storage المُثبت، شغّل الأمر التالي:

Get-Module -ListAvailable -Name Az.Storage -Refresh

لمزيد من المعلومات عن تثبيت Azure PowerShell، راجع تثبيت Azure PowerShell باستخدام PowerShellGet.

تسجيل الدخول إلى Azure PowerShell باستخدام معرف Microsoft Entra

اتصل بالأمر الاتصال-AzAccount لتسجيل الدخول باستخدام حساب Microsoft Entra الخاص بك:

Connect-AzAccount

لمزيد من المعلومات حول تسجيل الدخول باستخدام PowerShell، راجع تسجيل الدخول باستخدام Azure PowerShell.

تعيين الأذونات باستخدام Azure RBAC

لإنشاء تفويض مستخدم SAS من Azure PowerShell، يجب تعيين حساب Microsoft Entra المستخدم لتسجيل الدخول إلى PowerShell دور يتضمن إجراء Microsoft.Storage/storageAccounts/blobServices/generateUserDelegationKey . يتيح هذا الإذن لحساب Microsoft Entra هذا طلب مفتاح تفويض المستخدم. يُستخدم مفتاح تفويض المستخدم للتوقيع على توقيع الوصول المشترك لتفويض مستخدم. الدور الذي يوفر الإجراء Microsoft.Storage/storageAccounts/blobServices/generateUserDelegationKey يجب تعيينه على مستوى حساب التخزين أو مجموعة الموارد أو الاشتراك. لمزيد من المعلومات حول أذونات Azure RBAC لإنشاء توقيع الوصول المشترك لتفويض مستخدم، راجع القسم تعيين أذونات باستخدام Azure RBAC في إنشاء توقيع الوصول المشترك لتفويض مستخدم.

إذا لم يكن لديك أذونات كافية لتعيين أدوار Azure إلى أساس أمان Microsoft Entra، فقد تحتاج إلى مطالبة مالك الحساب أو المسؤول بتعيين الأذونات الضرورية.

يُعيّن المثال التالي دور مُساهم بيانات كائن ثنائي كبير الحجم للتخزين، والذي يتضمن الإجراء Microsoft.Storage/storageAccounts/blobServices/generateUserDelegationKey. يُحدد نطاق الدور على مستوى حساب التخزين.

تذكر استبدال قيم العناصر النائبة بين أقواس الزاوية بالقيم الخاصة بك:

New-AzRoleAssignment -SignInName <email> `
    -RoleDefinitionName "Storage Blob Data Contributor" `
    -Scope  "/subscriptions/<subscription>/resourceGroups/<resource-group>/providers/Microsoft.Storage/storageAccounts/<storage-account>"

لمزيد من المعلومات حول الأدوار المُضمنة التي تتضمن الإجراء Microsoft.Storage/storageAccounts/blobServices/generateUserDelegationKey، راجع أدوار Azure المُضمنة.

استخدام بيانات اعتماد Microsoft Entra لتأمين SAS

عند إنشاء توقيع الوصول المشترك لتفويض مستخدم باستخدام Azure PowerShell، يُنشأ مفتاح تفويض المستخدِم المُستخدَم للتوقيع على توقيع الوصول المشترك ضمنيًا. يتم أيضا استخدام وقت البدء ووقت انتهاء الصلاحية اللذين تحددهما لتوقيع الوصول المشترك كوقت البدء ووقت انتهاء الصلاحية لمفتاح تفويض المستخدم.

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

لإنشاء توقيع الوصول المشترك لتفويض مستخدم لحاوية أو كائن ثنائي كبير الحجم باستخدام Azure PowerShell، أنشئ أولًا عنصر سياق تخزين Azure جديد، مع تحديد المعلمة -UseConnectedAccount. -UseConnectedAccount تحدد المعلمة أن الأمر ينشئ كائن السياق ضمن حساب Microsoft Entra الذي قمت بتسجيل الدخول به.

تذكر استبدال قيم العناصر النائبة بين أقواس الزاوية بالقيم الخاصة بك:

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

إنشاء توقيع الوصول المشترك لتفويض مستخدم لحاوية

لإرجاع رمز توقيع الوصول المشترك لتفويض مستخدم لحاوية، استدعِ الأمر New-AzStorageContainerSASToken، الذي يمر بعنصر سياق تخزين Azure الذي أنشأته مسبقًا.

يقوم المثال التالي بإرجاع رمز توقيع الوصول المشترك المميز لتفويض المستخدم لحاوية. تذكَّر استبدال قيم العناصر النائبة في الأقواس بالقيم الخاصة بك:

New-AzStorageContainerSASToken -Context $ctx `
    -Name <container> `
    -Permission racwdl `
    -ExpiryTime <date-time>

سيكون رمز توقيع الوصول المشترك لتفويض مستخدم الذي تم إرجاعه مشابهًا لما يلي:

?sv=2018-11-09&sr=c&sig=<sig>&skoid=<skoid>&sktid=<sktid>&skt=2019-08-05T22%3A24%3A36Z&ske=2019-08-07T07%3A
00%3A00Z&sks=b&skv=2018-11-09&se=2019-08-07T07%3A00%3A00Z&sp=rwdl

إنشاء توقيع الوصول المشترك لتفويض مستخدم لكائن ثنائي كبير الحجم

لإرجاع رمز توقيع الوصول المشترك لتفويض مستخدم لكائن ثنائي كبير الحجم، استدعِ الأمر New-AzStorageBlobSASToken، الذي يمر بعنصر سياق تخزين Azure الذي أنشأته مسبقًا.

يُرجع بناء الجملة التالي توقيع الوصول المشترك لتفويض مستخدم لكائن ثنائي كبير الحجم. يحدد المثال المعلمة -FullUri، التي تُرجع URI لكائن ثنائي كبير الحجم مع إلحاق رمز توقيع الوصول المشترك. تذكَّر استبدال قيم العناصر النائبة في الأقواس بالقيم الخاصة بك:

New-AzStorageBlobSASToken -Context $ctx `
    -Container <container> `
    -Blob <blob> `
    -Permission racwd `
    -ExpiryTime <date-time>
    -FullUri

سيكون URI لتوقيع الوصول المشترك لتفويض مستخدم الذي تم إرجاعه مشابهًا لما يلي:

https://storagesamples.blob.core.windows.net/sample-container/blob1.txt?sv=2018-11-09&sr=b&sig=<sig>&skoid=<skoid>&sktid=<sktid>&skt=2019-08-06T21%3A16%3A54Z&ske=2019-08-07T07%3A00%3A00Z&sks=b&skv=2018-11-09&se=2019-08-07T07%3A00%3A00Z&sp=racwd

إشعار

لا يدعم توقيع الوصول المشترك لتفويض مستخدم تعريف الأذونات باستخدام نهج الوصول المُخزّن.

إبطال توقيع الوصول المشترك لتفويض المستخدم

لإلغاء توقيع الوصول المشترك لتفويض مستخدم من Azure PowerShell، استدعِ الأمر Revoke-AzStorageAccountUserDelegationKeys. هذا الأمر يلغي كافة مفاتيح تفويض المستخدم المقترنة بحساب التخزين المحدد. تُبطل أي توقيعات وصول مشتركة مُقترنة بهذه المفاتيح.

تذكر استبدال قيم العناصر النائبة بين أقواس الزاوية بالقيم الخاصة بك:

Revoke-AzStorageAccountUserDelegationKeys -ResourceGroupName <resource-group> `
    -StorageAccountName <storage-account>

هام

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

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