إنشاء توقيع الوصول المشترك لتفويض مستخدم لحاوية أو كائن ثنائي كبير الحجم باستخدام PowerShell
يتيح لك توقيع الوصول المشترك (SAS) منح وصول محدود إلى الحاويات والكائنات الثنائية كبيرة الحجم في حساب التخزين خاصتك. عند إنشاء توقيع الوصول المشترك، فإنك تحدد قيوده بما في ذلك موارد تخزين Azure التي يُسمح للعميل بالوصول إليها، وما هي الأذونات التي يمتلكها على تلك الموارد، ومدة صلاحية توقيع الوصول المشترك.
يتم توقيع كل SAS بمفتاح. يمكنك توقيع SAS بإحدى طريقتين:
- باستخدام مفتاح تم إنشاؤه باستخدام بيانات اعتماد Microsoft Azure Active Directory (Azure AD). SAS المُوقع مع بيانات اعتماد Microsoft Azure Active Directory هو توقيع وصول مشترك لـتفويض مستخدم.
- باستخدام مفتاح حساب التخزين. تم توقيع كل من خدمة SAS وحساب SAS باستخدام مفتاح حساب التخزين.
يوفر توقيع الوصول المشترك لتفويض مستخدم أمانًا أفضل لتوقيع الوصول المشترك المُوقع بمفتاح حساب التخزين. توصي Microsoft باستخدام توقيع الوصول المشترك لتفويض مستخدم عندما يكون ذلك ممكنًا. لمزيد من المعلومات، راجع منح وصول محدود إلى البيانات باستخدام توقيعات الوصول المشتركة (SAS).
توضح هذه المقالة كيفية استخدام بيانات اعتماد Microsoft Azure Active Directory (Azure AD) لإنشاء توقيع الوصول المشترك لتفويض مستخدم لحاوية أو كائن ثنائي كبير الحجم باستخدام Azure PowerShel.
حول توقيع الوصول المشترك لتفويض مستخدم
قد يتم تأمين رمز توقيع الوصول المشترك للوصول إلى حاوية أو كائن ثنائي كبير الحجم باستخدام بيانات اعتماد Azure AD أو مفتاح حساب. يطلق على توقيع الوصول المشترك المُؤمن ببيانات اعتماد Microsoft Azure Active Directory اسم توقيع الوصول المشترك لتفويض مستخدم، لأن الرمز المميز OAuth 2.0 المُستخدم لتوقيع الوصول المشترك مطلوب نيابة عن المستخدم.
توصي Microsoft باستخدام بيانات اعتماد Microsoft Azure Active Directory كلما أمكن كأفضل ممارسة أمان بدلًا من استخدام مفتاح الحساب الذي يمكن اختراقه بمنتهى السهولة. عندما يتطلب تصميم التطبيق توقيعات وصول مشتركة، استخدم بيانات اعتماد Microsoft Azure Active Directory لإنشاء توقيع الوصول المشترك لتفويض مستخدم للحصول على أمان أفضل. لمزيد من المعلومات حول توقيع الوصول المشترك لتفويض مستخدم، راجع إنشاء توقيع الوصول المشترك لتفويض مستخدم.
تنبيه
يمكن لأي عميل يمتلك توقيع وصول مشترك صالح الوصول إلى البيانات في حساب التخزين خاصتك كما هو مسموح به من توقيع الوصول المشترك. من المهم حماية توقيع الوصول المشترك من الاستخدام الضار أو غير المقصود. استخدم التقدير في توزيع توقيع الوصول المشترك، وضع خطة لإلغاء توقيع الوصول المشترك المُخترق.
للحصول على مزيد من المعلومات عن توقيعات الوصول المشارك، راجع منح الوصول المحدود إلى موارد Azure Storage باستخدام توقيعات الوصول المشاركة (SAS).
تثبيت وحدة PowerShell
لإنشاء توقيع الوصول المشترك لتفويض مستخدم باستخدام PowerShell، ثبّت الإصدار 1.10.0 أو إصدار أحدث من الوحدة Az.Storage. اتبع الخطوات التالية لتثبيت أحدث إصدار من الوحدة:
إزالة تثبيت أي عمليات تثبيت سابقة لـ Azure PowerShell:
- أزل أي عمليات تثبيت سابقة لـ Azure PowerShell من Windows باستخدام إعداد التطبيق & ميزات ضمن الإعدادات.
- أزل كافة وحدات Azure من
%Program Files%\WindowsPowerShell\Modules.
تأكد من تثبيت أحدث إصدار من PowerShellGet. افتح نافذة Windows PowerShell، ثم شغّل الأمر التالي لتثبيت أحدث إصدار:
Install-Module PowerShellGet -Repository PSGallery -Forceأغلق نافذة PowerShell وأعد فتحها بعد تثبيت PowerShellGet.
ثبّت أحدث إصدار من Azure PowerShell:
Install-Module Az -Repository PSGallery -AllowClobberتأكد من تثبيت الإصدار 3.2.0 من Azure PowerShell أو إصدار أحدث. شغّل الأمر التالي لتثبيت أحدث إصدار من الوحدة Azure Storage PowerShell:
Install-Module -Name Az.Storage -Repository PSGallery -Forceأغلق نافذة PowerShell وأعد فتحها.
للتحقق من إصدار وحدة Az.Storage المُثبت، شغّل الأمر التالي:
Get-Module -ListAvailable -Name Az.Storage -Refresh
لمزيد من المعلومات عن تثبيت Azure PowerShell، راجع تثبيت Azure PowerShell باستخدام PowerShellGet.
تسجيل الدخول إلى Azure PowerShell باستخدام Microsoft Azure Active Directory
استدعِ الأمر Connect-AzAccount لتسجيل الدخول باستخدام حساب Microsoft Azure Active Directory:
Connect-AzAccount
لمزيد من المعلومات حول تسجيل الدخول باستخدام PowerShell، راجع تسجيل الدخول باستخدام Azure PowerShell.
تعيين الأذونات باستخدام Azure RBAC
لإنشاء توقيع الوصول المشترك لتفويض مستخدم من Azure PowerShell، يجب تعيين دور لحساب Microsoft Azure Active Directory المُستخدم لتسجيل الدخول إلى PowerShell يتضمن الإجراء Microsoft.Storage/storageAccounts/blobServices/generateUserDelegationKey. يُمكّن هذا الإذن حساب Microsoft Azure Active Directory هذا من طلب مفتاح تفويض المستخدم. يُستخدم مفتاح تفويض المستخدم للتوقيع على توقيع الوصول المشترك لتفويض مستخدم. يجب تعيين الدور الذي يوفر الإجراء Microsoft.Storage/storageAccounts/blobServices/generateUserDelegationKey على مستوى حساب التخزين أو مجموعة الموارد أو الاشتراك. لمزيد من المعلومات حول أذونات Azure RBAC لإنشاء توقيع الوصول المشترك لتفويض مستخدم، راجع القسم تعيين أذونات باستخدام Azure RBAC في إنشاء توقيع الوصول المشترك لتفويض مستخدم.
إذا لم يكن لديك أذونات كافية لتعيين أدوار Azure إلى مبدأ أمان Microsoft Azure Active Directory، فقد تحتاج إلى مطالبة مالك الحساب أو المسؤول بتعيين الأذونات اللازمة.
يُعيّن المثال التالي دور مُساهم بيانات كائن ثنائي كبير الحجم للتخزين، والذي يتضمن الإجراء 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 Azure Active Directory لتأمين توقيع الوصول المشترك
عند إنشاء توقيع الوصول المشترك لتفويض مستخدم باستخدام Azure PowerShell، يُنشأ مفتاح تفويض المستخدِم المُستخدَم للتوقيع على توقيع الوصول المشترك ضمنيًا. يُستخدم أيضًا وقت البدء ووقت انتهاء الصلاحية اللذين تحددهما لتوقيع الوصول المشترك كوقت البدء ووقت انتهاء الصلاحية لمفتاح تفويض المستخدم.
نظرًا لأن الحد الأقصى للفاصل الزمني الذي يكون مفتاح تفويض المستخدم صالحًا خلاله هو 7 أيام من تاريخ البدء، يجب عليك تحديد وقت انتهاء صلاحية توقيع الوصول المشترك في غضون 7 أيام من وقت البدء. توقيع الوصول المشترك غير صالح بعد انتهاء صلاحية مفتاح تفويض المستخدم، لذلك سيظل توقيع الوصول المشترك الذي يزيد وقت انتهاء صلاحيته عن 7 أيام صالحًا لمدة 7 أيام فقط.
لإنشاء توقيع الوصول المشترك لتفويض مستخدم لحاوية أو كائن ثنائي كبير الحجم باستخدام Azure PowerShell، أنشئ أولًا عنصر سياق تخزين Azure جديد، مع تحديد المعلمة -UseConnectedAccount. تحدد المعلمة -UseConnectedAccount أن الأمر يُنشئ عنصر السياق ضمن حساب Microsoft Azure Active Directory الذي سجلت الدخول به.
تذكر استبدال قيم العناصر النائبة بين أقواس الزاوية بالقيم الخاصة بك:
$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 مؤقتًا، لذلك قد يكون هناك تأخير بين وقت بدء عملية الإبطال وعندما يصبح توقيع الوصول المشترك لتفويض مستخدم موجود غير صالح.