Azure Files erbjuder två branschstandardprotokoll för montering av Azure-filresurs: SMB-protokollet (Server Message Block) och NFS-protokollet (Network File System). Med Azure Files kan du välja det filsystemprotokoll som passar bäst för din arbetsbelastning. Azure-filresurser stöder inte åtkomst till en enskild Azure-filresurs med både SMB- och NFS-protokollen, även om du kan skapa SMB- och NFS-filresurser inom samma lagringskonto. För alla filresurser erbjuder Azure Files filresurser i företagsklass som kan skalas upp för att uppfylla dina lagringsbehov och som kan nås samtidigt av tusentals klienter.
Den här artikeln beskriver SMB Azure-filresurser. Information om NFS Azure-filresurser finns i NFS Azure-filresurser.
Vanliga scenarier
SMB-filresurser används för en mängd olika program, inklusive slutanvändarens filresurser och filresurser som säkerhetskopierar databaser och program. SMB-filresurser används ofta i följande scenarier:
Slutanvändares filresurser, till exempel teamresurser, hemkataloger osv.
Säkerhetskopiera lagring för Windows-baserade program, till exempel SQL Server-databaser eller verksamhetsspecifika program som skrivits för API:er för win32- eller .NET-lokala filsystem.
Ny program- och tjänstutveckling, särskilt om programmet eller tjänsten har ett krav på slumpmässig I/O och hierarkisk lagring.
Funktioner
Azure Files stöder de viktigaste funktionerna i SMB och Azure som behövs för produktionsdistribution av SMB-filresurser:
AD-domänanslutning och diskretionära åtkomstkontrollistor (DACLs).
Integrerad serverlös säkerhetskopiering med Azure Backup.
Nätverksisolering med privata Azure-slutpunkter.
Högt nätverksdataflöde med SMB Multichannel (endast premiumfilresurser).
SMB-kanalkryptering inklusive AES-256-GCM, AES-128-GCM och AES-128-CCM.
Stöd för tidigare version via VSS-integrerade resursögonblicksbilder.
Automatisk mjuk borttagning på Azure-filresurser för att förhindra oavsiktliga borttagningar.
Alternativt internettillgängliga filresurser med internetsäkra SMB 3.0+.
Alla data som lagras i Azure Files krypteras i vila med azure storage service encryption (SSE). Kryptering av lagringstjänst fungerar på samma sätt som BitLocker i Windows: data krypteras under filsystemnivån. Eftersom data krypteras under Azure-filresursens filsystem, eftersom de är kodade till disken, behöver du inte ha åtkomst till den underliggande nyckeln på klienten för att läsa eller skriva till Azure-filresursen. Kryptering i vila gäller för både SMB- och NFS-protokollen.
Som standard har alla Azure-lagringskonton kryptering under överföring aktiverat. Det innebär att när du monterar en filresurs via SMB (eller kommer åt den via FileREST-protokollet) tillåter Azure Files endast anslutningen om den görs med SMB 3.x med kryptering eller HTTPS. Klienter som inte stöder SMB 3.x med SMB-kanalkryptering kan inte montera Azure-filresursen om kryptering under överföring är aktiverat.
Azure Files stöder AES-256-GCM med SMB 3.1.1 när det används med Windows Server 2022 eller Windows 11. SMB 3.1.1 stöder även AES-128-GCM och SMB 3.0 stöder AES-128-CCM. AES-128-GCM förhandlas som standard på Windows 10 version 21H1 av prestandaskäl.
Du kan inaktivera kryptering under överföring för ett Azure-lagringskonto. När krypteringen är inaktiverad tillåter Azure Files även SMB 2.1 och SMB 3.x utan kryptering. Den främsta orsaken till att inaktivera kryptering under överföring är att stödja ett äldre program som måste köras på ett äldre operativsystem, till exempel Windows Server 2008 R2 eller äldre Linux-distribution. Azure Files tillåter endast SMB 2.1-anslutningar inom samma Azure-region som Azure-filresursen. en SMB 2.1-klient utanför Azure-regionen för Azure-filresursen, till exempel lokalt eller i en annan Azure-region, kommer inte att kunna komma åt filresursen.
SMB-protokollinställningar
Azure Files erbjuder flera inställningar som påverkar SMB-protokollets beteende, prestanda och säkerhet. Dessa konfigureras för alla Azure-filresurser i ett lagringskonto.
SMB Multichannel
SMB Multichannel gör det möjligt för en SMB 3.x-klient att upprätta flera nätverksanslutningar till en SMB-filresurs. Azure Files stöder SMB Multichannel på Premium-filresurser (filresurser i fillagringskontotypen FileStorage). Det finns ingen extra kostnad för att aktivera SMB Multichannel i Azure Files. I de flesta Azure-regioner är SMB Multichannel inaktiverat som standard.
Om du vill visa status för SMB Multichannel går du till lagringskontot som innehåller dina premiumfilresurser och väljer Filresurser under rubriken Datalagring i innehållsförteckningen för lagringskontot. Status för SMB Multichannel visas under avsnittet Inställningar för filresurs.
Om du vill aktivera eller inaktivera SMB Multichannel väljer du aktuell status (Aktiverad eller Inaktiverad beroende på status). Den resulterande dialogrutan innehåller en växlingsknapp för att aktivera eller inaktivera SMB Multichannel. Välj önskat tillstånd och välj Spara.
Använd cmdleten för att hämta status för Get-AzStorageFileServiceProperty SMB Multichannel. Kom ihåg att ersätta <resource-group> och <storage-account> med lämpliga värden för din miljö innan du kör dessa PowerShell-kommandon.
$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
}
}
}
Om du vill aktivera/inaktivera SMB Multichannel använder du cmdleten Update-AzStorageFileServiceProperty .
Använd kommandot för att hämta status för SMB Multichannel az storage account file-service-properties show . Kom ihåg att ersätta <resource-group> och <storage-account> med lämpliga värden för din miljö innan du kör dessa Bash-kommandon.
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
Om du vill aktivera/inaktivera SMB Multichannel använder du az storage account file-service-properties update kommandot .
Stöd för SMB Multichannel i Azure Files kräver att alla relevanta korrigeringar tillämpas i Windows. Flera äldre Windows-versioner, inklusive Windows Server 2016, Windows 10 version 1607 och Windows 10 version 1507, kräver att ytterligare registernycklar anges för att alla relevanta SMB Multichannel-korrigeringar ska tillämpas på fullständigt korrigerade installationer. Om du kör en version av Windows som är nyare än dessa tre versioner krävs ingen ytterligare åtgärd.
Windows Server 2016 och Windows 10 version 1607
Om du vill aktivera alla SMB Multichannel-korrigeringar för Windows Server 2016 och Windows 10 version 1607 kör du följande PowerShell-kommando:
Azure Files visar inställningar som gör att du kan växla SMB-protokollet så att det blir mer kompatibelt eller säkrare, beroende på organisationens krav. Som standard är Azure Files konfigurerat att vara maximalt kompatibelt, så tänk på att en begränsning av dessa inställningar kan leda till att vissa klienter inte kan ansluta.
Azure Files visar följande inställningar:
SMB-versioner: Vilka versioner av SMB som tillåts. Protokollversioner som stöds är SMB 3.1.1, SMB 3.0 och SMB 2.1. Som standard tillåts alla SMB-versioner, även om SMB 2.1 inte tillåts om "kräver säker överföring" är aktiverat, eftersom SMB 2.1 inte stöder kryptering under överföring.
Autentiseringsmetoder: Vilka SMB-autentiseringsmetoder tillåts. Autentiseringsmetoder som stöds är NTLMv2 (endast lagringskontonyckel) och Kerberos. Som standard tillåts alla autentiseringsmetoder. Om du tar bort NTLMv2 tillåts inte att använda lagringskontonyckeln för att montera Azure-filresursen. Azure Files stöder inte användning av NTLM-autentisering för domänautentiseringsuppgifter.
Kerberos-biljettkryptering: Vilka krypteringsalgoritmer tillåts. Krypteringsalgoritmer som stöds är AES-256 (rekommenderas) och RC4-HMAC.
SMB-kanalkryptering: Vilka SMB-kanalkrypteringsalgoritmer tillåts. Krypteringsalgoritmer som stöds är AES-256-GCM, AES-128-GCM och AES-128-CCM. Om du bara väljer AES-256-GCM måste du be anslutande klienter att använda den genom att öppna en PowerShell-terminal som administratör på varje klient och köra Set-SmbClientConfiguration -EncryptionCiphers "AES_256_GCM" -Confirm:$false. Användning av AES-256-GCM stöds inte på Windows-klienter som är äldre än Windows 11/Windows Server 2022.
Du kan visa och ändra SMB-säkerhetsinställningarna med hjälp av Azure Portal, PowerShell eller CLI. Välj önskad flik för att se stegen för hur du hämtar och anger SMB-säkerhetsinställningarna. Observera att de här inställningarna kontrolleras när en SMB-session upprättas och om den inte uppfylls misslyckas SMB-sessionskonfigurationen med felet "STATUS_ACCESS_DENIED".
Följ dessa steg om du vill visa eller ändra SMB-säkerhetsinställningarna med hjälp av Azure Portal:
Sök efter Lagringskonton och välj det lagringskonto som du vill visa säkerhetsinställningarna för.
Välj Datalagring>Filresurser.
Under Filresursinställningar väljer du det värde som är associerat med Säkerhet. Om du inte har ändrat säkerhetsinställningarna går det här värdet som standard till Maximal kompatibilitet.
Under Profil väljer du Maximal kompatibilitet, Maximal säkerhet eller Anpassad. Genom att välja Anpassad kan du skapa en anpassad profil för SMB-protokollversioner, SMB-kanalkryptering, autentiseringsmekanismer och Kerberos-biljettkryptering.
När du har angett önskade säkerhetsinställningar väljer du Spara.
Använd cmdleten för Get-AzStorageFileServiceProperty att hämta SMB-protokollinställningarna. Kom ihåg att ersätta <resource-group> och <storage-account> med lämpliga värden för din miljö. Om du avsiktligt har angett någon av dina SMB-säkerhetsinställningar till null, till exempel genom att inaktivera SMB-kanalkryptering, kan du läsa anvisningarna i skriptet om att kommentera ut vissa rader.
$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)
}
}
}
Beroende på organisationens säkerhet, prestanda och kompatibilitetskrav kanske du vill ändra SMB-protokollinställningarna. Följande PowerShell-kommando begränsar dina SMB-filresurser till endast de säkraste alternativen.
Viktigt!
Att begränsa SMB Azure-filresurser till endast de säkraste alternativen kan leda till att vissa klienter inte kan ansluta. Till exempel introducerades AES-256-GCM som ett alternativ för SMB-kanalkryptering med början i Windows Server 2022 och Windows 11. Det innebär att äldre klienter som inte stöder AES-256-GCM inte kan ansluta. Om du bara väljer AES-256-GCM måste du be Windows Server 2022- och Windows 11-klienter att endast använda AES-256-GCM genom att öppna en PowerShell-terminal som administratör på varje klient och köra Set-SmbClientConfiguration -EncryptionCiphers "AES_256_GCM" -Confirm:$false.
Om du vill hämta status för SMB-säkerhetsinställningarna använder du az storage account file-service-properties show kommandot . Kom ihåg att ersätta <resource-group> och <storage-account> med lämpliga värden för din miljö innan du kör dessa Bash-kommandon. Om du avsiktligt har angett någon av dina SMB-säkerhetsinställningar till null, till exempel genom att inaktivera SMB-kanalkryptering, kan du läsa anvisningarna i skriptet om att kommentera ut vissa rader.
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
Beroende på organisationens säkerhet, prestanda och kompatibilitetskrav kanske du vill ändra SMB-protokollinställningarna. Följande Azure CLI-kommando begränsar dina SMB-filresurser till endast de säkraste alternativen.
Viktigt!
Att begränsa SMB Azure-filresurser till endast de säkraste alternativen kan leda till att vissa klienter inte kan ansluta. Till exempel introducerades AES-256-GCM som ett alternativ för SMB-kanalkryptering med början i Windows Server 2022 och Windows 11. Det innebär att äldre klienter som inte stöder AES-256-GCM inte kan ansluta. Om du bara väljer AES-256-GCM måste du be Windows Server 2022- och Windows 11-klienter att endast använda AES-256-GCM genom att öppna en PowerShell-terminal som administratör på varje klient och köra Set-SmbClientConfiguration -EncryptionCiphers "AES_256_GCM" -Confirm:$false.
SMB-filresurser i Azure Files stöder en delmängd funktioner som stöds av SMB-protokollet och NTFS-filsystemet. Även om de flesta användningsfall och program inte kräver dessa funktioner kanske vissa program inte fungerar korrekt med Azure Files om de förlitar sig på funktioner som inte stöds. Följande funktioner stöds inte:
SMB Azure-filresurser är tillgängliga i alla Azure-regioner, inklusive alla offentliga och nationella regioner. Premium SMB-filresurser är tillgängliga i en delmängd av regioner.