Azure Files propose deux protocoles standard pour le montage d’un partage de fichiers Azure : le protocole SMB et le protocole NFS. Azure Files vous permet de choisir le protocole de système de fichiers le mieux adapté à votre charge de travail. Les partages de fichiers Azure ne prennent pas en charge l’accès à un partage de fichiers Azure individuel avec les protocoles SMB et NFS, même si vous pouvez créer des partages de fichiers SMB et NFS au sein du même compte de stockage. Pour tous les partages de fichiers, Azure Files propose des partages de fichiers d’entreprise qui peuvent être mis à l’échelle pour répondre à vos besoins de stockage et accessibles simultanément par des milliers de clients.
Cet article traite des partages de fichiers Azure SMB. Pour plus d’informations sur les partages de fichiers Azure NFS, consultez Partages de fichiers Azure NFS.
Scénarios courants
Les partages de fichiers SMB sont utilisés pour diverses applications, notamment les partages de fichiers et les partages de fichiers de l’utilisateur final qui stockent les bases de données et les applications. Les partages de fichiers SMB sont souvent utilisés dans les scénarios suivants :
Les partages de fichiers des utilisateurs finaux tels que les partages d’équipe, les répertoires de base, etc.
Sauvegarde du stockage des applications Windows, telles que des bases de données SQL Server ou des applications métier écrites pour des api de système de fichiers local Win32 ou .net.
Nouveau développement d’applications et de services, en particulier si cette application ou ce service est requis pour les e/s aléatoires et le stockage hiérarchique.
Fonctionnalités
Azure Files prend en charge les principales fonctionnalités de SMB et Azure nécessaires pour les déploiements de production de partages de fichiers SMB :
Jonction de domaine Active Directory et listes de contrôle d’accès discrétionnaire (DACL).
Sauvegarde serverless intégrée avec la Sauvegarde Azure.
Isolement réseau avec points de terminaison privés Azure.
Toutes les données stockées dans Azure Files sont chiffrées au repos avec Azure Storage Service Encryption (SSE). Cette fonctionnalité fonctionne de la même façon que BitLocker sur Windows : les données sont chiffrées sous le niveau du système de fichiers. Comme les données sont chiffrées sous le système de fichiers du partage de fichiers Azure, car codées sur le disque, il n’est pas nécessaire d’avoir accès à la clé sous-jacente sur le client pour lire ou écrire sur le partage de fichiers Azure. Le chiffrement au repos s’applique aux protocoles SMB et NFS.
Par défaut, le chiffrement en transit est activé pour tous les comptes de stockage Azure. Cela signifie que, quand vous montez un partage de fichiers sur SMB (ou y accédez en utilisant le protocole FileREST), Azure Files autorise la connexion uniquement si elle est établie à l’aide des protocoles SMB 3.x avec chiffrement ou HTTPS. Les clients qui ne prennent pas en charge le protocole SMB 3.x avec le chiffrement SMB ne pourront pas monter le partage de fichiers Azure si le chiffrement en transit est activé.
Azure Files prend en charge AES-256-GCM avec SMB 3.1.1 lorsqu’il est utilisé avec Windows Server 2022 ou Windows 11. SMB 3.1.1 prend également en charge AES-128-GCM et SMB 3.0 prend en charge AES-128-CCM. AES-128-GCM est négocié par défaut sur Windows 10, version 21H1 pour des raisons de performances.
Vous pouvez désactiver le chiffrement en transit pour un compte de stockage Azure. Quand le chiffrement est désactivé, Azure Files autorise également les protocoles SMB 2.1 et SMB 3.x sans chiffrement. La principale raison justifiant de désactiver le chiffrement en transit est la nécessité de prendre en charge une application héritée devant être exécutée sur un système d’exploitation plus ancien, tel que Windows Server 2008 R2 ou une distribution Linux non récente. Azure Files n’autorise que les connexions SMB 2.1 au sein de la même région Azure que le partage de fichiers Azure. Ainsi, un client SMB 2.1 situé en dehors de la région Azure dans laquelle se trouve le partage de fichiers Azure, par exemple, localement ou dans une autre région Azure, ne peut pas accéder au partage de fichiers.
Paramètres de protocole SMB
Azure Files offre plusieurs paramètres qui affectent le comportement, les performances et la sécurité du protocole SMB. Ceux-ci sont configurés pour tous les partages de fichiers Azure dans un compte de stockage.
SMB Multichannel
SMB Multichannel permet à un client SMB 3.x d’établir plusieurs connexions réseau à un partage de fichiers SMB. Azure Files prend en charge SMB Multichannel sur des partages de fichiers Premium (partages de fichiers dans le type de compte de stockage FileStorage). L’activation de SMB Multichannel dans Azure Files n’occasionne aucun coûts supplémentaires. Dans la plupart des régions Azure, SMB Multichannel est désactivé par défaut.
Pour afficher le statut de SMB Multichannel, naviguez vers le compte de stockage qui contient vos partages de fichiers premium et sélectionnez Partages de fichiers sous l’en-tête Stockage de données dans la table de contenus du compte de stockage. Le statut de SMB Multichannel apparaît dans la section Paramètres de partage de fichiers.
Pour activer ou désactiver SMB Multichannel, sélectionnez le statut actuel (Activé ou Désactivé selon l’état). La boîte de dialogue qui s’affiche contient un bouton bascule pour activer ou désactiver SMB Multichannel. Sélectionnez le statut souhaité, puis sélectionnez Enregistrer.
Pour obtenir le statut de SMB Multichannel, utilisez la cmdlet Get-AzStorageFileServiceProperty. N’oubliez pas de remplacer <resource-group> et <storage-account> par les valeurs correspondant à votre environnement préalablement à l’exécution de ces commandes 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
}
}
}
Pour activer/désactiver SMB Multichannel, utilisez la cmdlet Update-AzStorageFileServiceProperty.
Pour obtenir le statut de SMB Multichannel, utilisez la commande az storage account file-service-properties show. N’oubliez pas de remplacer <resource-group> et <storage-account> par les valeurs correspondant à votre environnement avant d’exécuter ces commandes 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
Pour activer/désactiver SMB Multichannel, utilisez la commande az storage account file-service-properties update.
Azure Files expose les paramètres qui vous permettent d’activer/désactiver le protocole SMB pour qu’il soit plus compatible ou plus sécurisé, selon les besoins de votre organisation. Par défaut, Azure Files est configuré pour une compatibilité maximale, gardez à l’esprit que la restriction de ces paramètres peut empêcher certains clients de se connecter.
Azure Files expose les paramètres suivants :
Versions SMB : Quelles sont les versions SMB autorisées ? Les versions de protocole prises en charge sont SMB 3.1.1, SMB 3.0 et SMB 2.1. Par défaut, toutes les versions SMB sont autorisées, même si SMB 2.1 n’est pas autorisée si l’option « exiger un transit sécurisé » est activée, car SMB 2.1 ne prend pas en charge le chiffrement en transit.
Méthodes d’authentification : Quelles sont les méthodes d’authentification SMB autorisées ? NTLMv2 (clé de compte de stockage uniquement) et Kerberos sont les méthodes d’authentification prises en charge. Par défaut, toutes les méthodes d’authentification sont autorisées. La suppression de NTLMv2 interdit l’utilisation de la clé de compte de stockage pour monter le partage de fichiers Azure. L’utilisation de l’authentification NTLM pour les informations d’identification du domaine n’est pas prise en charge par Azure Files.
Chiffrement de ticket Kerberos : Quels sont les algorithmes de chiffrement autorisés ? Les algorithmes de chiffrement pris en charge sont RC4-HMAC et AES-256 (recommandé).
Chiffrement de canal SMB : les algorithmes de chiffrement de canal SMB sont autorisés. Les algorithmes de chiffrement pris en charge sont AES-256-GCM, AES-128-GCM et AES-128-CCM. Si vous sélectionnez uniquement AES-256-GCM, vous devez indiquer aux clients se connectant qu’ils doivent l’utiliser en ouvrant un terminal PowerShell en tant qu’administrateur sur chaque client et en exécutant Set-SmbClientConfiguration -EncryptionCiphers "AES_256_GCM" -Confirm:$false. L’utilisation d’AES-256-GCM n’est pas prise en charge sur les clients Windows antérieurs à Windows 11/Windows Server 2022.
Vous pouvez afficher et modifier les paramètres de sécurité SMB à l’aide du portail Microsoft Azure, de PowerShell ou de l’interface CLI. Sélectionnez l’onglet de votre choix pour connaître les étapes à suivre pour obtenir et définir les paramètres de sécurité SMB. Notez que ces paramètres sont vérifiés lorsqu’une session SMB est établie et s’ils ne sont pas respectés, la configuration de la session SMB échoue et affiche l’erreur « STATUS_ACCESS_DENIED ».
Pour afficher ou modifier les paramètres de sécurité SMB à l’aide du portail Azure, procédez comme suit :
Recherchez Comptes de stockage et sélectionnez le compte de stockage pour lequel vous souhaitez afficher les paramètres de sécurité.
Sélectionnez Stockage de données>Partage de fichiers.
Sous Paramètres de partage de fichiers, sélectionnez la valeur associée à Sécurité. Si vous n’avez pas modifié les paramètres de sécurité, cette valeur est définie par défaut sur Compatibilité maximale.
Sous Profil, sélectionnez Compatibilité maximale, Sécurité maximale ou Personnalisée. Sélectionner Personnalisée vous permet de créer un profil personnalisé pour les versions de protocole SMB, le chiffrement de canal SMB, les mécanismes d’authentification et le chiffrement de ticket Kerberos.
Une fois que vous avez entré les paramètres de sécurité souhaités, sélectionnez Enregistrer.
Pour obtenir les paramètres de protocole SMB, utilisez l’applet de commande Get-AzStorageFileServiceProperty. N’oubliez pas de remplacer <resource-group> et <storage-account> par les valeurs qui correspondent à votre environnement. Si vous avez délibérément défini l’un de vos paramètres de sécurité SMB sur Null, par exemple en désactivant le chiffrement de canal SMB, consultez les instructions du script sur le commentaire de certaines lignes.
$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)
}
}
}
En fonction des exigences de sécurité, de performances et de compatibilité de votre organisation, vous souhaiterez peut-être modifier les paramètres du protocole SMB. La commande PowerShell suivante restreint vos partages de fichiers SMB aux options les plus sécurisées.
Important
La restriction des partages de fichiers Azure SMB aux options les plus sécurisées peut empêcher certains clients de se connecter. Par exemple, AES-256-GCM a été introduit comme option pour le chiffrement de canal SMB dans Windows 2022 et Windows 11. Cela signifie que les clients plus anciens qui ne prennent pas en charge AES-256-GCM ne pourront pas se connecter. Si vous sélectionnez uniquement AES-256-GCM, vous devez indiquer aux clients Windows Server 2022 et Windows 11 qu’ils doivent utiliser uniquement AES-256-GCM en ouvrant un terminal PowerShell en tant qu’administrateur sur chaque client et en exécutant Set-SmbClientConfiguration -EncryptionCiphers "AES_256_GCM" -Confirm:$false.
Pour connaître l’état des paramètres de sécurité SMB, utilisez la commande az storage account file-service-properties show. N’oubliez pas de remplacer <resource-group> et <storage-account> par les valeurs correspondant à votre environnement avant d’exécuter ces commandes Bash. Si vous avez délibérément défini l’un de vos paramètres de sécurité SMB sur Null, par exemple en désactivant le chiffrement de canal SMB, consultez les instructions du script sur le commentaire de certaines lignes.
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
Selon les exigences de sécurité, de performances et de compatibilité de votre organisation, vous souhaiterez peut-être modifier les paramètres du protocole SMB. La commande Azure CLI suivante restreint vos partages de fichiers SMB aux options les plus sécurisées.
Important
La restriction des partages de fichiers Azure SMB aux options les plus sécurisées peut empêcher certains clients de se connecter. Par exemple, AES-256-GCM a été introduit comme option pour le chiffrement de canal SMB dans Windows 2022 et Windows 11. Cela signifie que les clients plus anciens qui ne prennent pas en charge AES-256-GCM ne pourront pas se connecter. Si vous sélectionnez uniquement AES-256-GCM, vous devez indiquer aux clients Windows Server 2022 et Windows 11 qu’ils doivent utiliser uniquement AES-256-GCM en ouvrant un terminal PowerShell en tant qu’administrateur sur chaque client et en exécutant Set-SmbClientConfiguration -EncryptionCiphers "AES_256_GCM" -Confirm:$false.
Les partages de fichiers SMB dans Azure Files prennent en charge un sous-ensemble de fonctionnalités prises en charge par le protocole SMB et le système de fichiers NTFS. Bien que la plupart des cas d’utilisation et des applications ne requièrent pas ces fonctionnalités, certaines applications peuvent ne pas fonctionner correctement avec Azure Files si elles s’appuient sur des fonctionnalités non prises en charge. Les fonctions suivantes ne sont pas prises en charge :
VSS pour les partages de fichiers SMB (cela permet aux fournisseurs VSS de vider leurs données sur le partage de fichiers SMB avant la prise d’une capture instantanée)
Les partages de fichiers Azure SMB sont disponibles dans chaque région Azure, y compris toutes les régions publiques et souveraines. Les partages de fichiers SMB Premium sont disponibles dans un sous-ensemble de régions.