توضح لك هذه المقالة كيفية تخويل الوصول إلى عملاء SFTP بحيث يمكنك الاتصال بأمان بنقطة نهاية Blob Storage لحساب Azure Storage الخاص بك باستخدام عميل SFTP.
لمعرفة المزيد حول دعم SFTP لتخزين Azure Blob، راجع بروتوكول نقل ملفات SSH (SFTP) في Azure Blob Storage.
المتطلبات الأساسية
- تمكين دعم SFTP ل Azure Blob Storage. راجع تمكين دعم SFTP أو تعطيله.
إنشاء مستخدم محلي
لا يدعم Azure Storage توقيع الوصول المشترك (SAS)، أو مصادقة Microsoft Entra للوصول إلى نقطة نهاية SFTP. بدلاً من ذلك، يجب عليك استخدام هوية تسمى المستخدم المحلي والتي يمكن تأمينها باستخدام كلمة مرور تم إنشاؤها بواسطة Azure أو زوج مفاتيح shell (SSH) آمن. لمنح حق الوصول إلى عميل اتصال، يجب أن يكون لحساب التخزين هوية مقترنة بكلمة المرور أو زوج المفاتيح. تسمى هذه الهوية مستخدما محليا.
في هذا القسم، ستتعرف على كيفية إنشاء مستخدم محلي، واختيار طريقة مصادقة، وتعيين أذونات لهذا المستخدم المحلي.
لمعرفة المزيد حول نموذج أذونات SFTP، راجع نموذج أذونات SFTP.
اختيار أسلوب مصادقة
يمكنك مصادقة المستخدمين المحليين الذين يتصلون من عملاء SFTP باستخدام كلمة مرور أو زوج مفاتيح Secure Shell (SSH) العام والخاص.
هام
بينما يمكنك تمكين كلا شكلي المصادقة، يمكن لعملاء SFTP الاتصال باستخدام واحد منهم فقط. المصادقة متعددة العوامل، حيث يلزم وجود كلمة مرور صالحة وزوج مفاتيح عام وخاص صالح للمصادقة الناجحة غير مدعومة.
في Azure portal، انتقل إلى حساب التخزين الخاص بك.
ضمن الإعدادات، حدد SFTP، ثم حدد إضافة مستخدم محلي.
في جزء إضافة تكوين مستخدم محلي، أضف اسم مستخدم، ثم حدد أساليب المصادقة التي تريد إقرانها بهذا المستخدم المحلي. يمكنك إقران كلمة مرور و/أو مفتاح SSH.
إذا حددت كلمة مرور SSH، فستظهر كلمة المرور عند إكمال جميع الخطوات في جزء إضافة تكوين المستخدم المحلي. يتم إنشاء كلمات مرور SSH بواسطة Azure وهي بحد أدنى 32 حرفا في الطول.
إذا حددت مفتاح مزدوج SSH، فحدد مصدر مفتاح عام لتحديد مصدر مفتاح.
يصف الجدول التالي أي خيار مصدر رئيسي:
| خيار |
الإرشاد |
| إنشاء زوج مفاتيح جديد |
استخدم هذا الخيار لإنشاء زوج مفاتيح عام/خاص جديد. يتم تخزين المفتاح العمومي في Azure باسم المفتاح الذي تقدمه. يمكن تنزيل المفتاح الخاص بعد إضافة المستخدم المحلي بنجاح. |
| استخدام المفتاح الموجود المخزن في Azure |
استخدم هذا الخيار إذا كنت تريد استخدام مفتاح عام مخزن بالفعل في Azure. للعثور على المفاتيح الموجودة في Azure، راجع قائمة المفاتيح. عندما يتصل عملاء SFTP ب Azure Blob Storage، يحتاج هؤلاء العملاء إلى توفير المفتاح الخاص المقترن بهذا المفتاح العام. |
| استخدم المفتاح العام الموجود |
استخدم هذا الخيار إذا كنت تريد تحميل مفتاح عام مخزن خارج Azure. إذا لم يكن لديك مفتاح عام، ولكنك ترغب في إنشاء مفتاح خارج Azure، فشاهد إنشاء مفاتيح باستخدام ssh-keygen. |
هام
يتم دعم المفاتيح العامة المنسقة OpenSSH فقط. يجب أن يستخدم المفتاح الذي توفره هذا التنسيق: <key type> <key data>. على سبيل المثال، ستبدو مفاتيح RSA مشابهة لما يلي: ssh-rsa AAAAB3N.... إذا كان المفتاح بتنسيق آخر، فيمكن استخدام أداة مثل ssh-keygen لتحويله إلى تنسيق OpenSSH.
حدد Next لفتح علامة التبويب Permissionsفي جزء التكوين.
يوضح لك هذا القسم كيفية المصادقة باستخدام مفتاح SSH أو كلمة مرور.
المصادقة باستخدام مفتاح SSH (PowerShell)
اختر نوع المفتاح العام الذي تريد استخدامه.
استخدام المفتاح الموجود المخزن في Azure
استخدم هذا الخيار إذا كنت تريد استخدام مفتاح عام مخزن بالفعل في Azure. للعثور على المفاتيح الموجودة في Azure، راجع قائمة المفاتيح. عندما يتصل عملاء SFTP ب Azure Blob Storage، يحتاج هؤلاء العملاء إلى توفير المفتاح الخاص المقترن بهذا المفتاح العام.
استخدم المفتاح العام الموجود المخزن خارج Azure.
إذا لم يكن لديك مفتاح عام بعد، فشاهد إنشاء مفاتيح باستخدام ssh-keygen للحصول على إرشادات حول كيفية إنشاء مفتاح. يتم دعم المفاتيح العامة المنسقة OpenSSH فقط. يجب أن يستخدم المفتاح الذي توفره هذا التنسيق: <key type> <key data>. على سبيل المثال، ستبدو مفاتيح RSA مشابهة لما يلي: ssh-rsa AAAAB3N.... إذا كان المفتاح بتنسيق آخر، فيمكن استخدام أداة مثل ssh-keygen لتحويله إلى تنسيق OpenSSH.
إنشاء كائن مفتاح عام باستخدام الأمر New-AzStorageLocalUserSshPublicKey . تعيين المعلمة -Key إلى سلسلة تحتوي على نوع المفتاح والمفتاح العام. في المثال التالي، نوع المفتاح هو ssh-rsa والمفتاح هو ssh-rsa a2V5....
$sshkey = "ssh-rsa a2V5..."
$sshkey = New-AzStorageLocalUserSshPublicKey -Key $sshkey -Description "description for ssh public key"
إنشاء مستخدم محلي باستخدام الأمر Set-AzStorageLocalUser . إذا كنت تستخدم مفتاح SSH، فقم بتعيين المعلمة SshAuthorizedKey إلى كائن المفتاح العام الذي قمت بإنشائه في الخطوة السابقة.
ينشئ المثال التالي مستخدما محليا ثم يطبع المفتاح إلى وحدة التحكم.
$UserName = "mylocalusername"
$localuser = Set-AzStorageLocalUser -ResourceGroupName $resourceGroupName -StorageAccountName $storageAccountName -UserName $UserName -SshAuthorizedKey $sshkey -HasSharedKey $true -HasSshKey $true
$localuser
$localuser.SshAuthorizedKeys | ft
إشعار
لدى sharedKey المستخدمين المحليين أيضا خاصية تستخدم لمصادقة SMB فقط.
المصادقة باستخدام كلمة مرور (PowerShell)
إنشاء مستخدم محلي باستخدام الأمر Set-AzStorageLocalUser ، وتعيين المعلمة -HasSshPassword إلى $true.
ينشئ المثال التالي مستخدما محليا يستخدم مصادقة كلمة المرور.
$UserName = "mylocalusername"
$localuser = Set-AzStorageLocalUser -ResourceGroupName $resourceGroupName -StorageAccountName $storageAccountName -UserName $UserName -HasSshPassword $true
يمكنك إنشاء كلمة مرور باستخدام الأمر New-AzStorageLocalUserSshPassword . تعيين المعلمة -UserName إلى اسم المستخدم.
ينشئ المثال التالي كلمة مرور للمستخدم.
$password = New-AzStorageLocalUserSshPassword -ResourceGroupName $resourceGroupName -StorageAccountName $storageAccountName -UserName $UserName
$password
هام
لا يمكنك استرداد كلمة المرور هذه في وقت لاحق، لذا تأكد من نسخ كلمة المرور، ثم تخزينها في مكان حيث يمكنك العثور عليها. إذا فقدت كلمة المرور هذه، فسيتعين عليك إنشاء كلمة مرور جديدة. لاحظ أن كلمات مرور SSH يتم إنشاؤها بواسطة Azure ويبلغ طولها 32 حرفا كحد أدنى.
يوضح لك هذا القسم كيفية المصادقة باستخدام مفتاح SSH أو كلمة مرور.
المصادقة باستخدام مفتاح SSH (Azure CLI)
اختر نوع المفتاح العام الذي تريد استخدامه.
استخدام المفتاح الموجود المخزن في Azure
استخدم هذا الخيار إذا كنت تريد استخدام مفتاح عام مخزن بالفعل في Azure. للعثور على المفاتيح الموجودة في Azure، راجع قائمة المفاتيح. عندما يتصل عملاء SFTP ب Azure Blob Storage، يحتاج هؤلاء العملاء إلى توفير المفتاح الخاص المقترن بهذا المفتاح العام.
استخدم المفتاح العام الموجود المخزن خارج Azure.
إذا لم يكن لديك مفتاح عام بعد، فشاهد إنشاء مفاتيح باستخدام ssh-keygen للحصول على إرشادات حول كيفية إنشاء مفتاح. يتم دعم المفاتيح العامة المنسقة OpenSSH فقط. يجب أن يستخدم المفتاح الذي توفره هذا التنسيق: <key type> <key data>. على سبيل المثال، ستبدو مفاتيح RSA مشابهة لما يلي: ssh-rsa AAAAB3N.... إذا كان المفتاح بتنسيق آخر، فيمكن استخدام أداة مثل ssh-keygen لتحويله إلى تنسيق OpenSSH.
لإنشاء مستخدم محلي تتم مصادقته باستخدام مفتاح SSH، استخدم الأمر az storage account local-user create ، ثم قم بتعيين المعلمة --has-ssh-key إلى سلسلة تحتوي على نوع المفتاح والمفتاح العام.
ينشئ المثال التالي مستخدما محليا باسم contosouser، ويستخدم مفتاح ssh-rsa بقيمة مفتاح للمصادقة ssh-rsa a2V5... .
az storage account local-user create --account-name contosoaccount -g contoso-resource-group -n contosouser --ssh-authorized-key key="ssh-rsa a2V5..." --has-ssh-key true --has-ssh-password true
إشعار
لدى sharedKey المستخدمين المحليين أيضا خاصية تستخدم لمصادقة SMB فقط.
المصادقة باستخدام كلمة مرور (Azure CLI)
لإنشاء مستخدم محلي تمت مصادقته باستخدام كلمة مرور، استخدم الأمر az storage account local-user create ، ثم قم بتعيين المعلمة --has-ssh-password إلى true.
ينشئ المثال التالي مستخدما محليا باسم contosouser، ويعين المعلمة --has-ssh-password إلى true.
az storage account local-user create --account-name contosoaccount -g contoso-resource-group -n contosouser --has-ssh-password true
إنشاء كلمة مرور باستخدام الأمر az storage account local-user regenerate-password . تعيين المعلمة -n إلى اسم المستخدم المحلي.
ينشئ المثال التالي كلمة مرور للمستخدم.
az storage account local-user regenerate-password --account-name contosoaccount -g contoso-resource-group -n contosouser
هام
لا يمكنك استرداد كلمة المرور هذه في وقت لاحق، لذا تأكد من نسخ كلمة المرور، ثم تخزينها في مكان حيث يمكنك العثور عليها. إذا فقدت كلمة المرور هذه، فسيتعين عليك إنشاء كلمة مرور جديدة. لاحظ أن كلمات مرور SSH يتم إنشاؤها بواسطة Azure ويبلغ طولها 32 حرفا كحد أدنى.
منح الإذن للحاويات
اختر الحاويات التي تريد منح حق الوصول إليها ومستوى الوصول الذي تريد توفيره. تنطبق هذه الأذونات على جميع الدلائل والدلائل الفرعية في الحاوية. لمعرفة المزيد حول كل إذن حاوية، راجع أذونات الحاوية.
إذا كنت ترغب في تخويل الوصول على مستوى الملف والدليل، يمكنك تمكين تخويل ACL.
في علامة التبويب أذونات ، حدد الحاويات التي تريد توفيرها لهذا المستخدم المحلي. بعد ذلك، حدد أنواع العمليات التي تريد تمكين هذا المستخدم المحلي من تنفيذها.
هام
يجب أن يكون لدى المستخدم المحلي إذن حاوية واحد على الأقل أو إذن ACL إلى الدليل الرئيسي لتلك الحاوية. وإلا ستفشل محاولة الاتصال بتلك الحاوية.
إذا كنت تريد تخويل الوصول باستخدام قوائم التحكم في الوصول (ACLs) المقترنة بالملفات والدلائل في هذه الحاوية، فحدد خانة الاختيار السماح بتخويل ACL. لمعرفة المزيد حول استخدام قوائم التحكم في الوصول لتخويل عملاء SFTP، راجع قوائم التحكم في الوصول.
يمكنك أيضا إضافة هذا المستخدم المحلي إلى مجموعة عن طريق تعيين هذا المستخدم إلى معرف مجموعة. يمكن أن يكون هذا المعرف أي رقم أو نظام أرقام تريده. يسمح لك تجميع المستخدمين بإضافة المستخدمين وإزالتها دون الحاجة إلى إعادة تطبيق قوائم التحكم بالوصول إلى بنية دليل بأكملها. بدلا من ذلك، يمكنك فقط إضافة مستخدمين أو إزالتهم من المجموعة.
إشعار
يتم إنشاء معرف مستخدم للمستخدم المحلي تلقائيا. لا يمكنك تعديل هذا المعرف، ولكن يمكنك رؤية المعرف بعد إنشاء المستخدم المحلي عن طريق إعادة فتح هذا المستخدم في جزء تحرير المستخدم المحلي.
في مربع تحرير الدليل الرئيسي، اكتب اسم الحاوية أو مسار الدليل (بما في ذلك اسم الحاوية) الذي سيكون الموقع الافتراضي المقترن بهذا المستخدم المحلي (على سبيل المثال: mycontainer/mydirectory).
لمعرفة المزيد حول الدليل الرئيسي، راجع الدليل الرئيسي.
حدد الزر إضافة لإضافة المستخدم المحلي.
إذا قمت بتمكين مصادقة كلمة المرور، تظهر كلمة مرور Azure التي تم إنشاؤها في مربع حوار بعد إضافة المستخدم المحلي.
هام
لا يمكنك استرداد كلمة المرور هذه في وقت لاحق، لذا تأكد من نسخ كلمة المرور، ثم تخزينها في مكان حيث يمكنك العثور عليها.
إذا اخترت إنشاء زوج مفاتيح جديد، فستتم مطالبتك بتنزيل المفتاح الخاص لزوج المفاتيح هذا بعد إضافة المستخدم المحلي.
إشعار
لدى sharedKey المستخدمين المحليين خاصية يتم استخدامها لمصادقة SMB فقط.
حدد الحاويات التي تريد إتاحتها للمستخدم المحلي وأنواع العمليات التي تريد تمكين هذا المستخدم المحلي من تنفيذها. قم بإنشاء كائن نطاق إذن باستخدام الأمر New-AzStorageLocalUserPermissionScope ، وتعيين -Permission معلمة هذا الأمر إلى حرف واحد أو أكثر يتوافق مع مستويات أذونات الوصول. القيم المحتملة هي Read(r)، Write (w)، Delete (d)، List (l)، Create (c)، Modify Ownership(o)، Modify Permissions(p).
تنشئ مجموعة الأمثلة التالية كائن نطاق إذن يمنح إذن القراءة والكتابة إلى الحاوية mycontainer .
$permissionScope = New-AzStorageLocalUserPermissionScope -Permission rw -Service blob -ResourceName mycontainer
هام
يجب أن يكون لدى المستخدم المحلي إذن حاوية واحد على الأقل للحاوية التي يتصل بها وإلا ستفشل محاولة الاتصال.
تحديث المستخدم المحلي باستخدام الأمر Set-AzStorageLocalUser . تعيين المعلمة -PermissionScope إلى عنصر نطاق الإذن الذي قمت بإنشائه سابقا.
يقوم المثال التالي بتحديث مستخدم محلي بأذونات حاوية ثم طباعة نطاقات الأذونات إلى وحدة التحكم.
$UserName = "mylocalusername"
$localuser = Set-AzStorageLocalUser -ResourceGroupName $resourceGroupName -StorageAccountName $storageAccountName -UserName $UserName -HomeDirectory "mycontainer" -PermissionScope $permissionScope
$localuser
$localuser.PermissionScopes | ft
لتحديث مستخدم محلي لديه إذن بحاوية، استخدم الأمر az storage account local-user update ، ثم قم بتعيين permission-scope معلمة هذا الأمر إلى حرف واحد أو أكثر يتوافق مع مستويات أذونات الوصول. القيم المحتملة هي Read(r)، Write (w)، Delete (d)، List (l)، Create (c)، Modify Ownership(o)، Modify Permissions(p).
يعطي المثال التالي اسم contosouser مستخدم محلي حق الوصول للقراءة والكتابة إلى حاوية تسمى contosocontainer.
az storage account local-user update --account-name contosoaccount -g contoso-resource-group -n contosouser --home-directory contosocontainer --permission-scope permissions=rw service=blob resource-name=contosocontainer
الخطوات التالية
- الاتصال ب Azure Blob Storage باستخدام عميل SFTP. راجع الاتصال من عميل SFTP.
المحتوى ذو الصلة