تقدم Azure Files بروتوكولين قياسيين في هذه الصناعة لتثبيت مشاركة ملف Azure: بروتوكول Server Message Block (SMB) وبروتوكول نظام ملفات الشبكة (NFS). تمكنك Azure Files من اختيار بروتوكول نظام الملفات الأنسب لحمل عملك. لا تدعم مشاركات ملف Azure الوصول إلى مشاركة ملف Azure فردية باستخدام بروتوكولي SMB وNFS، على الرغم من أنه يمكنك إنشاء مشاركات ملف SMB وNFS داخل حساب التخزين نفسه. بالنسبة لجميع مشاركات الملفات، تقدم Azure Files مشاركات ملفات على مستوى المؤسسات يمكن توسيع نطاقها لتلبية احتياجات التخزين الخاصة بك ويمكن الوصول إليها في نفس الوقت بواسطة آلاف العملاء.
تتناول هذه المقالة مشاركات ملفات SMB Azure. للحصول على معلومات حول مشاركات ملفات NFS Azure، راجع مشاركات ملفات NFS Azure.
السيناريوهات الشائعة
تُستخدم مشاركات ملف SMB لمجموعة متنوعة من التطبيقات بما في ذلك مشاركات ملفات المستخدم ومشاركات الملفات التي تدعم قواعد البيانات والتطبيقات. غالباً ما تُستخدم مشاركات ملف SMB في السيناريوهات التالية:
مشاركات ملفات المستخدم مثل مشاركات الفريق، والأدلة الرئيسية، وما إلى ذلك.
تخزين النسخ الاحتياطي للتطبيقات المستندة إلى Windows، مثل قواعد بيانات SQL Server أو تطبيقات خط الأعمال المكتوبة لـ Win32 أو NET. من واجهات برمجة تطبيقات نظام الملفات المحلي.
تطوير التطبيقات والخدمات الجديدة، خاصةً إذا كان هذا التطبيق أو الخدمة يتطلب إدخالاً عشوائياً وتخزيناً هرمياً.
الميزات
يدعم Azure Files الميزات الرئيسية لـ SMB وAzure اللازمة لعمليات توزيع الإنتاج لمشاركات ملفات SMB:
الانضمام إلى مجال AD وقوائم التحكم في الوصول التقديرية (DACL).
النسخ الاحتياطي بلا خادم متكامل مع Azure Backup.
عزل الشبكة بنقاط نهاية خاصة في Azure.
معدل نقل سريع للشبكة باستخدام SMB Multichannel (مشاركات الملفات المتميزة فقط).
تشفير قناة SMB بما في ذلك AES-256-GCM وAES-128-GCM وAES-128-CCM.
دعم الإصدار السابق من خلال لقطات مشاركة متكاملة VSS.
حذف تلقائي على مشاركات Azure Files لمنع عمليات الحذف العرضية.
مشاركة الملفات التي يمكن الوصول إليها عبر الإنترنت اختيارياً باستخدام +SMB 3.0 الآمن للإنترنت.
يتم تشفير جميع البيانات المخزنة في Azure Files في وضع السكون Azure storage service encryption (SSE). يعمل تشفير خدمة التخزين بشكل مشابه لـBitLocker على Windows: يتم تشفير البيانات تحت مستوى نظام الملفات. نظرًا لأن البيانات مشفرة أسفل نظام ملفات مشاركة ملفات Azure، نظرًا لأنها مشفرة على القرص، فلن تحتاج إلى الوصول إلى المفتاح الأساسي على العميل لقراءة مشاركة ملف Azure أو الكتابة إليها. ينطبق التشفير المتنقل على كل من بروتوكولات SMB وNFS.
بشكل افتراضي، يتم تمكين التشفير أثناء النقل لجميع حسابات تخزين Azure. هذا يعني أنه عند تحميل مشاركة ملف عبر SMB (أو الوصول إليها عبر بروتوكول FileREST)، فإن Azure Files ستسمح بالاتصال فقط إذا تم إجراؤه باستخدام SMB 3.x مع التشفير أو HTTPS. لن يتمكن العملاء الذين لا يدعمون SMB 3.x مع تشفير قناة SMB من تحميل مشاركة ملف Azure إذا تم تمكين التشفير أثناء النقل.
يدعم Azure Files AES-256-GCM مع SMB 3.1.1 عند استخدامه مع Windows Server 2022 أو Windows 11. يدعم SMB 3.1.1 أيضاً AES-128-GCM ويدعم SMB 3.0 AES-128-CCM. يتم التفاوض على AES-128-GCM افتراضياً في الإصدار 21H1 من Windows 10 لأسباب تتعلق بالأداء.
يمكنك تعطيل التشفير أثناء النقل لحساب تخزين Azure. عند تعطيل التشفير، ستسمح Azure Files أيضاً SMB 2.1 وSMB 3.x بدون تشفير. السبب الأساسي لتعطيل التشفير أثناء النقل هو دعم تطبيق قديم يجب تشغيله على نظام تشغيل أقدم، مثل Windows Server 2008 R2 أو توزيع Linux الأقدم. تسمح Azure Files باتصالات SMB 2.1 داخل نفس منطقة Azure مثل مشاركة ملف Azure؛ لن يتمكن عميل SMB 2.1 خارج منطقة Azure لمشاركة ملف Azure، مثل محلي أو في منطقة Azure مختلفة، من الوصول إلى مشاركة الملف.
إعدادات بروتوكول SMB
تقدم Azure Files إعدادات متعددة تؤثر على سلوك بروتوكول SMB وأدائه وأمانه. تم تكوينها لجميع مشاركات Azure Files داخل حساب تخزين.
SMB Multichannel
تُمكّن SMB Multichannel عميل SMB 3.x من إنشاء اتصالات شبكة متعددة إلى مشاركة ملف SMB. إن ملفات Azure تدعم SMB متعدد القنوات في مشاركات الملفات المتميزة (مشاركات الملفات في نوع حساب تخزين FileStorage). لا توجد تكلفة إضافية لتمكين SMB متعدد القنوات في ملفات Azure. في معظم مناطق Azure، يتم تعطيل SMB Multichannel بشكل افتراضي.
لعرض حالة SMB Multichannel، انتقل إلى حساب التخزين الذي يحتوي على مشاركات الملفات المميزة وحدد File shares ضمن العنوان تخزين البيانات في جدول محتويات حساب التخزين. يمكن الاطلاع على حالة SMB Multichannel ضمن قسم إعدادات مشاركة الملفات.
لتمكين أو تعطيل SMB Multichannel، حدد الحالة الحالية (ممكّن أو معطل بناءً على الحالة). يوفر مربع الحوار الناتج مفتاح تبديل لتمكين أو تعطيل SMB Multichannel. حدد الحالة المطلوبة وحدد Save.
للحصول على حالة SMB Multichannel، استخدم الأمر cmdlet Get-AzStorageFileServiceProperty. تذكر استبدال <resource-group> و<storage-account> بالقيم المناسبة لبيئتك قبل تشغيل أوامر PowerShell هذه.
$resourceGroupName = "<resource-group>"
$storageAccountName = "<storage-account>"
# Get reference to storage account
$storageAccount = Get-AzStorageAccount `
-ResourceGroupName $resourceGroupName `
-StorageAccountName $storageAccountName
# If you've never enabled or disabled SMB Multichannel, the value for the SMB Multichannel
# property returned by Azure Files will be null. Null returned values should be interpreted
# as "default settings are in effect". To make this more user-friendly, the following
# PowerShell commands replace null values with the human-readable default values.
$defaultSmbMultichannelEnabled = $false
# Get the current value for SMB Multichannel
Get-AzStorageFileServiceProperty -StorageAccount $storageAccount | `
Select-Object -Property `
ResourceGroupName, `
StorageAccountName, `
@{
Name = "SmbMultichannelEnabled";
Expression = {
if ($null -eq $_.ProtocolSettings.Smb.Multichannel.Enabled) {
$defaultSmbMultichannelEnabled
} else {
$_.ProtocolSettings.Smb.Multichannel.Enabled
}
}
}
لتمكين/تعطيل SMB Multichannel، استخدم Update-AzStorageFileServiceProperty cmdlet.
للحصول على حالة SMB Multichannel، استخدم الأمر az storage account file-service-properties show. تذكر استبدال <resource-group> و<storage-account> بالقيم المناسبة لبيئتك قبل تشغيل أوامر Bash هذه.
RESOURCE_GROUP_NAME="<resource-group>"
STORAGE_ACCOUNT_NAME="<storage-account>"
# If you've never enabled or disabled SMB Multichannel, the value for the SMB Multichannel
# property returned by Azure Files will be null. Null returned values should be interpreted
# as "default settings are in effect". To make this more user-friendly, the following
# PowerShell commands replace null values with the human-readable default values.
## Search strings
REPLACESMBMULTICHANNEL="\"smbMultichannelEnabled\": null"
# Replacement values for null parameters.
DEFAULTSMBMULTICHANNELENABLED="\"smbMultichannelEnabled\": false"
# Build JMESPath query string
QUERY="{"
QUERY="${QUERY}smbMultichannelEnabled: protocolSettings.smb.multichannel.enabled"
QUERY="${QUERY}}"
# Get protocol settings from the Azure Files FileService object
protocolSettings=$(az storage account file-service-properties show \
--resource-group $RESOURCE_GROUP_NAME \
--account-name $STORAGE_ACCOUNT_NAME \
--query "${QUERY}")
# Replace returned values if null with default values
PROTOCOL_SETTINGS="${protocolSettings/$REPLACESMBMULTICHANNEL/$DEFAULTSMBMULTICHANNELENABLED}"
# Print returned settings
echo $PROTOCOL_SETTINGS
لتمكين/تعطيل SMB Multichannel، استخدم الأمر az storage account file-service-properties update.
يتطلب دعم SMB Multichannel في Azure Files التأكد من تطبيق Windows على جميع التصحيحات ذات الصلة. تتطلب العديد من إصدارات Windows القديمة، بما في ذلك Windows Server 2016 والإصدار Windows 10 1607 والإصدار 1507 Windows 10، تعيين مفاتيح تسجيل إضافية لكافة إصلاحات SMB Multichannel ذات الصلة ليتم تطبيقها على عمليات التثبيت المصححة بالكامل. إذا كنت تقوم بتشغيل إصدار من Windows أحدث من هذه الإصدارات الثلاثة، فلا يلزم اتخاذ أي إجراء إضافي.
Windows Server 2016 وWindows 10 الإصدار 1607
لتمكين كافة إصلاحات SMB متعددة القنوات لJWindows Server 2016 وWindows 10 الإصدار 1607، قم بتشغيل الأمر PowerShell التالي:
تعرض Azure Files الإعدادات التي تتيح لك تبديل بروتوكول SMB ليكون أكثر توافقاً أو أكثر أماناً، وفقاً لمتطلبات مؤسستك. بشكل افتراضي، يتم تكوين Azure Files لتكون متوافقة إلى أقصى حد، لذا ضع في اعتبارك أن تقييد هذه الإعدادات قد يتسبب في عدم تمكن بعض العملاء من الاتصال.
تعرض Azure Files الإعدادات التالية:
إصدارات SMB: إصدارات SMB المسموح بها. إصدارات البروتوكول المدعومة هي SMB 3.1.1 وSMB 3.0 وSMB 2.1. بشكل افتراضي، يُسمح بجميع إصدارات SMB، على الرغم من أن SMB 2.1 غير مسموح به إذا تم تمكين "طلب التحويل الآمن"، لأن SMB 2.1 لا يدعم التشفير أثناء النقل.
طرق المصادقة: طرق مصادقة SMB المسموح بها. أساليب المصادقة المدعومة هي NTLMv2 (مفتاح حساب التخزين فقط) وKerberos. افتراضياً، يُسمح بجميع طرق المصادقة. لا تسمح إزالة NTLMv2 باستخدام مفتاح حساب التخزين لتحميل مشاركة ملف Azure. لا تدعم Azure Files استخدام مصادقة NTLM لبيانات اعتماد المجال.
تشفير بطاقة Kerberos: خوارزميات التشفير المسموح بها. خوارزميات التشفير المدعومة هي AES-256 (موصى بها) وRC4-HMAC.
تشفير قناة SMB: ما هي خوارزميات تشفير قناة SMB المسموح بها. خوارزميات التشفير المدعومة هي AES-256-GCM وAES-128-GCM وAES-128-CCM. إذا قمت بتحديد AES-256-GCM فقط، فستحتاج إلى إخبار العملاء المتصلين باستخدامه عن طريق فتح محطة PowerShell كمسؤول على كل عميل وتشغيل Set-SmbClientConfiguration -EncryptionCiphers "AES_256_GCM" -Confirm:$false. استخدام AES-256-GCM غير مدعوم على عملاء Windows الأقدم من Windows 11/Windows Server 2022.
يمكنك عرض إعدادات أمان SMB وتغييرها باستخدام مدخل Microsoft Azure أو PowerShell أو CLI. حدد علامة التبويب المطلوبة للاطلاع على الخطوات المتعلقة بكيفية الحصول على إعدادات أمان SMB وتعيينها. لاحظ أنه يتم التحقق من هذه الإعدادات عند إنشاء جلسة عمل SMB وإذا لم يتم الوفاء بها، يفشل إعداد جلسة SMB مع ظهور الخطأ "STATUS_ACCESS_DENIED".
لعرض أو تغيير إعدادات أمان SMB باستخدام مدخل Azure، اتبع الخطوات التالية:
ابحث عن حسابات التخزين، وحدد حساب التخزين الذي تريد عرض إعدادات الأمان له.
حدد تخزين البيانات>مشاركات الملف.
ضمن إعدادات مشاركة الملف، حدد القيمة المقترنة بـ الأمان. إذا لم تقم بتعديل إعدادات الأمان، فسيتم تعيين هذه القيمة افتراضياً إلى الحد الأقصى للتوافق.
ضمن ملف التعريف، حدد الحد الأقصى للتوافق أو الحد الأقصى للأمان أو مخصص. يتيح لك تحديد مخصص إنشاء ملف تعريف مخصص لإصدارات بروتوكول SMB وتشفير قناة SMB وآليات المصادقة وتشفير تذكرة Kerberos.
بعد إدخال إعدادات الأمان المطلوبة، حدد حفظ.
للحصول على إعدادات بروتوكول SMB، استخدم Get-AzStorageFileServiceProperty cmdlet. تذكر استبدال <resource-group> و<storage-account> بالقيم المناسبة لبيئتك. إذا قمت بتعيين أي من إعدادات أمان SMB بشكل متعمد إلى قيمة خالية، على سبيل المثال عن طريق تعطيل تشفير قناة SMB، فشاهد الإرشادات الموجودة في البرنامج النصي حول التعليق على أسطر معينة.
$resourceGroupName = "<resource-group>"
$storageAccountName = "<storage-account>"
# Get reference to storage account
$storageAccount = Get-AzStorageAccount `
-ResourceGroupName $resourceGroupName `
-StorageAccountName $storageAccountName
# If you've never changed any SMB security settings, the values for the SMB security
# settings returned by Azure Files will be null. Null returned values should be interpreted
# as "default settings are in effect". To make this more user-friendly, the following
# PowerShell commands replace null values with the human-readable default values.
# If you've deliberately set any of your SMB security settings to null, for example by
# disabling SMB channel encryption, comment out the following four lines to avoid
# changing the security settings back to defaults.
$smbProtocolVersions = "SMB2.1", "SMB3.0", "SMB3.1.1"
$smbAuthenticationMethods = "NTLMv2", "Kerberos"
$smbKerberosTicketEncryption = "RC4-HMAC", "AES-256"
$smbChannelEncryption = "AES-128-CCM", "AES-128-GCM", "AES-256-GCM"
# Gets the current values of the SMB security settings
Get-AzStorageFileServiceProperty -StorageAccount $storageAccount | `
Select-Object -Property `
ResourceGroupName, `
StorageAccountName, `
@{
Name = "SmbProtocolVersions";
Expression = {
if ($null -eq $_.ProtocolSettings.Smb.Versions) {
[String]::Join(", ", $smbProtocolVersions)
} else {
[String]::Join(", ", $_.ProtocolSettings.Smb.Versions)
}
}
},
@{
Name = "SmbChannelEncryption";
Expression = {
if ($null -eq $_.ProtocolSettings.Smb.ChannelEncryption) {
[String]::Join(", ", $smbChannelEncryption)
} else {
[String]::Join(", ", $_.ProtocolSettings.Smb.ChannelEncryption)
}
}
},
@{
Name = "SmbAuthenticationMethods";
Expression = {
if ($null -eq $_.ProtocolSettings.Smb.AuthenticationMethods) {
[String]::Join(", ", $smbAuthenticationMethods)
} else {
[String]::Join(", ", $_.ProtocolSettings.Smb.AuthenticationMethods)
}
}
},
@{
Name = "SmbKerberosTicketEncryption";
Expression = {
if ($null -eq $_.ProtocolSettings.Smb.KerberosTicketEncryption) {
[String]::Join(", ", $smbKerberosTicketEncryption)
} else {
[String]::Join(", ", $_.ProtocolSettings.Smb.KerberosTicketEncryption)
}
}
}
استنادا إلى متطلبات الأمان والأداء والتوافق لمؤسستك، قد تحتاج إلى تعديل إعدادات بروتوكول SMB. يقيد أمر PowerShell التالي مشاركات ملفات SMB بالخيارات الأكثر أماناً فقط.
هام
قد يؤدي تقييد مشاركات ملفات SMB Azure إلى الخيارات الأكثر أمانا فقط إلى عدم قدرة بعض العملاء على الاتصال. على سبيل المثال، تم تقديم AES-256-GCM كخيار لتشفير قناة SMB بدءاً من Windows Server 2022 وWindows 11. وهذا يعني أن العملاء الأقدم الذين لا يدعمون AES-256-GCM لن يتمكنوا من الاتصال. إذا قمت بتحديد AES-256-GCM فقط، فستحتاج إلى إخبار عملاء Windows Server 2022 وWindows 11 باستخدام AES-256-GCM فقط عن طريق فتح محطة PowerShell كمسؤول على كل عميل وتشغيل Set-SmbClientConfiguration -EncryptionCiphers "AES_256_GCM" -Confirm:$false.
للحصول على حالة إعدادات أمان SMB، استخدم الأمر az storage account file-service-properties show. تذكر استبدال <resource-group> و<storage-account> بالقيم المناسبة لبيئتك قبل تشغيل أوامر Bash هذه. إذا قمت بتعيين أي من إعدادات أمان SMB بشكل متعمد إلى قيمة خالية، على سبيل المثال عن طريق تعطيل تشفير قناة SMB، فشاهد الإرشادات الموجودة في البرنامج النصي حول التعليق على أسطر معينة.
RESOURCE_GROUP_NAME="<resource-group>"
STORAGE_ACCOUNT_NAME="<storage-account>"
# If you've never changed any SMB security settings, the values for the SMB security
# settings returned by Azure Files will be null. Null returned values should be interpreted
# as "default settings are in effect". To make this more user-friendly, the commands in the
# following two sections replace null values with the human-readable default values.
# If you've deliberately set any of your SMB security settings to null, for example by
# disabling SMB channel encryption, comment out the following two sections before
# running the script to avoid changing the security settings back to defaults.
# Values to be replaced
REPLACESMBPROTOCOLVERSION="\"smbProtocolVersions\": null"
REPLACESMBCHANNELENCRYPTION="\"smbChannelEncryption\": null"
REPLACESMBAUTHENTICATIONMETHODS="\"smbAuthenticationMethods\": null"
REPLACESMBKERBEROSTICKETENCRYPTION="\"smbKerberosTicketEncryption\": null"
# Replacement values for null parameters. If you copy this into your own
# scripts, you will need to ensure that you keep these variables up-to-date with any new
# options we may add to these parameters in the future.
DEFAULTSMBPROTOCOLVERSIONS="\"smbProtocolVersions\": \"SMB2.1;SMB3.0;SMB3.1.1\""
DEFAULTSMBCHANNELENCRYPTION="\"smbChannelEncryption\": \"AES-128-CCM;AES-128-GCM;AES-256-GCM\""
DEFAULTSMBAUTHENTICATIONMETHODS="\"smbAuthenticationMethods\": \"NTLMv2;Kerberos\""
DEFAULTSMBKERBEROSTICKETENCRYPTION="\"smbKerberosTicketEncryption\": \"RC4-HMAC;AES-256\""
# Build JMESPath query string
QUERY="{"
QUERY="${QUERY}smbProtocolVersions: protocolSettings.smb.versions,"
QUERY="${QUERY}smbChannelEncryption: protocolSettings.smb.channelEncryption,"
QUERY="${QUERY}smbAuthenticationMethods: protocolSettings.smb.authenticationMethods,"
QUERY="${QUERY}smbKerberosTicketEncryption: protocolSettings.smb.kerberosTicketEncryption"
QUERY="${QUERY}}"
# Get protocol settings from the Azure Files FileService object
PROTOCOLSETTINGS=$(az storage account file-service-properties show \
--resource-group $RESOURCE_GROUP_NAME \
--account-name $STORAGE_ACCOUNT_NAME \
--query "${QUERY}")
# Replace returned values if null with default values
PROTOCOLSETTINGS="${protocolSettings/$REPLACESMBPROTOCOLVERSION/$DEFAULTSMBPROTOCOLVERSIONS}"
PROTOCOLSETTINGS="${protocolSettings/$REPLACESMBCHANNELENCRYPTION/$DEFAULTSMBCHANNELENCRYPTION}"
PROTOCOLSETTINGS="${protocolSettings/$REPLACESMBAUTHENTICATIONMETHODS/$DEFAULTSMBAUTHENTICATIONMETHODS}"
PROTOCOLSETTINGS="${protocolSettings/$REPLACESMBKERBEROSTICKETENCRYPTION/$DEFAULTSMBKERBEROSTICKETENCRYPTION}"
# Print returned settings
echo $PROTOCOLSETTINGS
اعتمادا على متطلبات الأمان والأداء والتوافق لمؤسستك، قد ترغب في تعديل إعدادات بروتوكول SMB. يقيد أمر Azure CLI التالي مشاركات ملفات SMB بالخيارات الأكثر أماناً فقط.
هام
قد يؤدي تقييد مشاركات ملفات SMB Azure إلى الخيارات الأكثر أمانا فقط إلى عدم قدرة بعض العملاء على الاتصال. على سبيل المثال، تم تقديم AES-256-GCM كخيار لتشفير قناة SMB بدءاً من Windows Server 2022 وWindows 11. وهذا يعني أن العملاء الأقدم الذين لا يدعمون AES-256-GCM لن يتمكنوا من الاتصال. إذا قمت بتحديد AES-256-GCM فقط، فستحتاج إلى إخبار عملاء Windows Server 2022 وWindows 11 باستخدام AES-256-GCM فقط عن طريق فتح محطة PowerShell كمسؤول على كل عميل وتشغيل Set-SmbClientConfiguration -EncryptionCiphers "AES_256_GCM" -Confirm:$false.
تدعم مشاركات ملفات SMB في Azure Files مجموعة فرعية من الميزات التي يدعمها بروتوكول SMB ونظام الملفات NTFS. على الرغم من أن معظم حالات الاستخدام والتطبيقات لا تتطلب هذه الميزات، فقد لا تعمل بعض التطبيقات بشكل صحيح مع Azure Files إذا كانت تعتمد على ميزات غير مدعومة. الميزات التالية غير مدعومة:
تتوفر مشاركات ملف SMB Azure في كل منطقة من مناطق Azure، بما في ذلك جميع المناطق العامة وذات السيادة. تتوفر مشاركات ملفات SMB المميزة في مجموعة فرعية من المناطق.