Служба "Файлы Azure" предоставляет два стандартных отраслевых протокола для подключения общей папки Azure: протокол SMB и протокол NFS. Служба "Файлы Azure" позволяет выбрать протокол файловой системы, который лучше подходит для вашей рабочей нагрузки. Доступ к отдельной общей папке Azure с использованием одновременно протоколов SMB и NFS не поддерживается, однако вы можете создавать общие папки SMB и NFS в рамках одной учетной записи хранения. Служба "Файлы Azure" предоставляет общие папки корпоративного класса, которые можно масштабировать в соответствии с потребностями хранилища, и тысячи клиентов могут получить к ним доступ одновременно.
В этой статье рассматриваются общие папки SMB в Azure. Дополнительные сведения о общих папках Azure NFS см. в разделе NFS Azure.
Распространенные сценарии
Общие папки SMB используются для различных целей, в том числе в качестве общих папок конечных пользователей или общих папок для обеспечения работы баз данных и приложений. Общие папки SMB часто используются в следующих сценариях:
Общие папки конечных пользователей, такие как общие папки команд, домашние каталоги и т. д.
Резервное хранилище для приложений на основе Windows, таких как базы данных SQL Server или бизнес-приложения, написанные для интерфейсов API Win32 или локальной файловой системы .NET.
Разработка новых приложений и служб, особенно тех, для которых требуется поддержка произвольных операций ввода-вывода и иерархического хранилища.
Функции
Служба "Файлы Azure" поддерживает основные компоненты SMB и Azure, необходимые для рабочих развертываний общих папок SMB:
Присоединение к домену AD и списки управления доступом на уровне пользователей (DACL).
Встроенное бессерверное резервирование с использованием Azure Backup.
Сетевая изоляция с использованием частных конечных точек Azure.
Высокая пропускная способность сети с использованием многоканального протокола SMB (только для общих папок уровня "Премиум").
Шифрование канала SMB, в том числе с использованием алгоритмов AES-256-GCM, AES-128-GCM и AES-128-CCM.
Поддержка предыдущих версий за счет интеграции моментальных снимков общей папки с VSS.
Автоматическое обратимое удаление в общих папках Azure для предотвращения случайного удаления данных.
Опциональная возможность доступа к общим папкам в Интернете с помощью защищенного Интернет-протокола SMB версии 3.0 или более поздней.
Все данные, хранимые в Файлах Azure, шифруются с использованием функции "Шифрование службы хранилища Azure" (SSE). SSE работает как BitLocker в Windows: данные шифруются ниже уровня файловой системы. Благодаря этому при шифровании данных на диске вам не требуется доступ к базовому ключу на клиенте для чтения и записи данных в общей папке Azure. Шифрование неактивных данных поддерживает протоколы SMB и NFS.
По умолчанию для всех учетных записей хранения Azure включено шифрование при передаче. Это означает, что при подключении общей папки по протоколу SMB или доступе к ней по протоколу FileREST служба "Файлы Azure" разрешит подключение, только если оно установлено по протоколу SMB версии 3.x или более поздней с шифрованием или по HTTPS. Клиенты, не поддерживающие протокол SMB 3.x с шифрованием канала SMB, не смогут подключать общую папку Azure, если включено шифрование при передаче.
Файлы Azure поддерживают AES-256-GCM с SMB 3.1.1 при использовании с сервером Windows 2022 или Windows 11. Протокол SMB 3.1.1 также поддерживает алгоритм AES-128-GCM, а протокол SMB 3.0 — алгоритм AES-128-CCM. Алгоритм AES-128-GCM по умолчанию согласовывается в Windows 10 версии 21H1 для обеспечения высокой производительности.
В учетной записи хранения Azure шифрование при передаче можно отключить. Если шифрование отключено, служба "Файлы Azure" также разрешает подключения по протоколу SMB 2.1 и SMB 3.x без шифрования. Основная причина отключения шифрования при передаче заключается в поддержке устаревшего приложения, которое должно выполняться в более старой версии операционной системы, например Windows Server 2008 R2 или более старой версии Linux. Служба "Файлы Azure" разрешает только подключения по протоколу SMB 2.1 в том же регионе Azure, что и общая папка Azure. Клиент SMB 2.1 за пределами региона Azure общей папки Azure, например в локальной среде или в другом регионе Azure, не сможет получить доступ к общей папке.
Параметры протокола SMB
В службе "Файлы Azure" доступны различные параметры, влияющие на поведение, производительность и безопасность протокола SMB. Они настраиваются для всех файловых ресурсов Azure в учетной записи хранения.
Технология SMB Multichannel
Функция SMB Multichannel позволяет клиенту SMB 3.x устанавливать несколько сетевых подключений к общей папке SMB. Служба "Файлы Azure" поддерживает функцию SMB Multichannel в общих папках уровня "Премиум" (общих папках в учетной записи хранения FileStorage). Дополнительная плата за использование функции SMB Multichannel в службе "Файлы Azure" не взимается. В большинстве регионов Azure по умолчанию SMB Multichannel отключен.
Состояние функции SMB Multichannel указывается в учетной записи хранения, содержащей общие папки уровня "Премиум". Чтобы увидеть его, выберите Общие папки в разделе Хранилище данных в оглавлении учетной записи хранения. Состояние функции SMB Multichannel можно просмотреть в разделе Параметры общей папки.
Чтобы включить или отключить SMB Multichannel, выберите текущее состояние (Включено или Отключено). В диалоговом окне установите переключатель в нужное положение для включения или отключения SMB Multichannel. Выберите нужное значение и нажмите Сохранить.
Чтобы получить состояние SMB Multichannel, используйте командлет Get-AzStorageFileServiceProperty. Перед выполнением этих команд PowerShell не забудьте заменить <resource-group> и <storage-account> соответствующими значениями из своей среды.
$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.
Чтобы получить состояние SMB Multichannel, используйте команду az storage account file-service-properties show. Перед выполнением этих команд Bash не забудьте заменить <resource-group> и <storage-account> соответствующими значениями из своей среды.
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.
Служба "Файлы Azure" предоставляет параметры, которые позволяют переключить протокол SMB на более высокий уровень совместимости или безопасности в зависимости от требований вашей организации. По умолчанию служба "Файлы Azure" настроена на максимальную совместимость, поэтому имейте в виду, что эти параметры могут привести к тому, что некоторые клиенты не смогут подключиться.
Служба "Файлы Azure" предоставляет следующие параметры:
Версии 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 не поддерживает проверку подлинности NTLM для учетных данных домена.
Шифрование канала 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 с помощью портал Azure, PowerShell или CLI. Выберите нужную вкладку, чтобы узнать, как получить и задать параметры безопасности SMB. Обратите внимание, что эти параметры проверяются при установке сеанса SMB и, если он не выполнен, установка сеанса SMB завершается ошибкой "STATUS_ACCESS_DENIED".
Чтобы просмотреть или изменить параметры безопасности протокола SMB с помощью портала Azure, выполните следующие действия:
Выполните поиск по запросу Учетные записи хранения и выберите учетную запись хранения, параметры безопасности которой вы хотите просмотреть.
Выберите элементы Хранение данных>Общие папки.
В разделе Параметры общей папки выберите значение, связанное с безопасностью. Если вы не изменили параметры безопасности, по умолчанию используется значение Максимальная совместимость.
В разделе Профиль выберите Максимальная совместимость, Максимальная безопасность или Пользовательский. Выбор значения Пользовательский позволяет вам создать пользовательский профиль для версий протокола SMB, шифрования каналов SMB, механизмов проверки подлинности и шифрования билетов Kerberos.
После ввода необходимых параметров безопасности нажмите кнопку Сохранить.
Чтобы получить значения параметров протокола SMB, используйте командлет Get-AzStorageFileServiceProperty. Не забудьте заменить <resource-group> и <storage-account> соответствующими значениями из своей среды. Если вы намеренно установили для любого из параметров безопасности SMB значение NULL, например при отключении шифрования каналов 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 только самым безопасными вариантами может привести к тому, что некоторые клиенты не смогут подключаться. Например, начиная с Windows Server 2022 и Windows 11 для шифрования канала SMB в качестве опции доступен алгоритм AES-256-GCM. Это означает, что старые клиенты, не поддерживающие 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. Перед выполнением этих команд Bash не забудьте заменить <resource-group> и <storage-account> соответствующими значениями из своей среды. Если вы намеренно установили для любого из параметров безопасности SMB значение NULL, например при отключении шифрования каналов 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 только самым безопасными вариантами может привести к тому, что некоторые клиенты не смогут подключаться. Например, начиная с Windows Server 2022 и Windows 11 для шифрования канала SMB в качестве опции доступен алгоритм AES-256-GCM. Это означает, что старые клиенты, не поддерживающие 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 поддерживают подмножество функций, реализуемых протоколом SMB и файловой системой NTFS. Хотя большинство вариантов использования и приложений не требуют этих функций, некоторые приложения могут работать неправильно с Файлы Azure если они используют неподдерживаемые функции. Следующие функции не поддерживаются:
Общие папки SMB в Azure доступны в каждом регионе Azure, включая все общедоступные и независимые регионы. Общие папки SMB уровня "Премиум" доступны не во всех регионах.