Azure Files nabízí dva standardní protokoly pro připojení sdílené složky Azure: protokol SMB (Server Message Block) a protokol NFS (Network File System). Azure Files umožňuje vybrat protokol systému souborů, který je pro vaši úlohu nejvhodnější. Sdílené složky Azure nepodporují přístup k jednotlivým sdíleným složkám Azure pomocí protokolů SMB i NFS, i když můžete vytvářet sdílené složky SMB a NFS ve stejném účtu úložiště. Azure Files nabízí pro všechny sdílené složky na podnikové úrovni sdílené složky, které můžou vertikálně navýšit kapacitu tak, aby vyhovovaly vašim potřebám úložiště, a současně k němu mají přístup tisíce klientů.
Tento článek se zabývá sdílenými složkami Azure SMB. Informace o sdílených složkách Azure NFS najdete v tématu Sdílené složky Azure NFS.
Obvyklé scénáře
Sdílené složky SMB se používají pro různé aplikace, včetně sdílených složek koncových uživatelů a sdílených složek, které zálohují databáze a aplikace. Sdílené složky SMB se často používají v následujících scénářích:
Sdílené složky koncových uživatelů, jako jsou sdílené složky týmu, domovské adresáře atd.
Zálohování úložiště pro aplikace založené na Windows, jako jsou databáze SQL Serveru nebo obchodní aplikace napsané pro rozhraní API systému souborů Win32 nebo .NET local.
Vývoj nových aplikací a služeb, zejména pokud má tato aplikace nebo služba požadavek na náhodné vstupně-výstupní operace a hierarchické úložiště.
Funkce
Azure Files podporuje hlavní funkce SMB a Azure potřebné pro produkční nasazení sdílených složek SMB:
Připojení k doméně AD a volitelné seznamy řízení přístupu (DACL).
Integrované bezserverové zálohování se službou Azure Backup
Izolace sítě s využitím privátních koncových bodů Azure
Vysoká propustnost sítě pomocí smb Multichannel (jenom sdílené složky úrovně Premium).
Šifrování kanálu SMB včetně AES-256-GCM, AES-128-GCM a AES-128-CCM.
Podpora předchozí verze prostřednictvím snímků integrovaných sdílených složek VSS
Automatické obnovitelné odstranění sdílených složek Azure, aby se zabránilo náhodnému odstranění.
Volitelně sdílené složky přístupné z internetu s protokolem SMB 3.0 nebo novějším zabezpečeným internetem.
Všechna data uložená ve službě Azure Files se šifrují v klidovém stavu pomocí šifrování služby Azure Storage (SSE). Šifrování služby Storage funguje podobně jako BitLocker ve Windows: data se šifrují pod úrovní systému souborů. Vzhledem k tomu, že data se šifrují pod systémem souborů sdílené složky Azure, protože jsou zakódovaná na disk, nemusíte mít přístup k základnímu klíči v klientovi, abyste mohli číst nebo zapisovat do sdílené složky Azure. Šifrování neaktivních uložených dat platí pro protokoly SMB i NFS.
Ve výchozím nastavení mají všechny účty úložiště Azure povolené šifrování během přenosu. To znamená, že když připojíte sdílenou složku přes protokol SMB (nebo k ní přistupujete přes protokol FileREST), azure Files povolí připojení jenom v případě, že se vytvoří pomocí protokolu SMB 3.x s šifrováním nebo HTTPS. Klienti, kteří nepodporují protokol SMB 3.x s šifrováním kanálu SMB, nebudou moct připojit sdílenou složku Azure, pokud je povolené šifrování během přenosu.
Azure Files podporuje AES-256-GCM s protokolem SMB 3.1.1 při použití s Windows Serverem 2022 nebo Windows 11. PROTOKOL SMB 3.1.1 také podporuje AES-128-GCM a SMB 3.0 podporuje AES-128-CCM. AES-128-GCM se ve výchozím nastavení vyjedná ve Windows 10 verze 21H1 z důvodů výkonu.
Šifrování během přenosu můžete zakázat pro účet úložiště Azure. Pokud je šifrování zakázané, azure Files také povolí protokol SMB 2.1 a SMB 3.x bez šifrování. Primárním důvodem zakázání přenášeného šifrování je podpora starší verze aplikace, která musí být spuštěna ve starším operačním systému, jako je Windows Server 2008 R2 nebo starší distribuce Linuxu. Služba Soubory Azure umožňuje připojení PROTOKOLU SMB 2.1 pouze ve stejné oblasti Azure jako sdílená složka Azure; Klient PROTOKOLU SMB 2.1 mimo oblast Azure sdílené složky Azure, například místně nebo v jiné oblasti Azure, nebude mít přístup ke sdílené složce.
Nastavení protokolu SMB
Azure Files nabízí několik nastavení, která ovlivňují chování, výkon a zabezpečení protokolu SMB. Jsou nakonfigurované pro všechny sdílené složky Azure v rámci účtu úložiště.
SMB Multichannel
Funkce SMB Multichannel umožňuje klientovi SMB 3.x navázat několik síťových připojení ke sdílené složce SMB. Azure Files podporuje smb Multichannel u sdílených složek úrovně Premium (sdílené složky v typu účtu úložiště FileStorage). Za povolení smb Multichannel ve službě Azure Files nejsou žádné další náklady. Funkce SMB Multichannel je teď ve výchozím nastavení povolená ve všech oblastech Azure.
Pokud chcete zobrazit stav SMB Multichannel, přejděte do účtu úložiště obsahujícího sdílené složky Úrovně Premium a v obsahu účtu úložiště vyberte Sdílené složky pod nadpisem Úložiště dat . Stav smb Multichannel je vidět v části Nastavení sdílené složky.
Pokud chcete povolit nebo zakázat smb Multichannel, vyberte aktuální stav (Povoleno nebo Zakázáno v závislosti na stavu). Výsledný dialog poskytuje přepínač pro povolení nebo zakázání funkce SMB Multichannel. Vyberte požadovaný stav a vyberte Uložit.
Pokud chcete získat stav SMB Multichannel, použijte tuto rutinu Get-AzStorageFileServiceProperty . Než tyto příkazy PowerShellu spustíte, nezapomeňte je nahradit <resource-group> odpovídajícími <storage-account> hodnotami pro vaše prostředí.
$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
}
}
}
Pokud chcete povolit nebo zakázat smb Multichannel, použijte tuto rutinu Update-AzStorageFileServiceProperty .
Pokud chcete získat stav SMB Multichannel, použijte az storage account file-service-properties show příkaz. Před spuštěním těchto příkazů Bash nezapomeňte nahradit <resource-group> příslušné <storage-account> hodnoty pro vaše prostředí.
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
Pokud chcete povolit nebo zakázat SMB Multichannel, použijte az storage account file-service-properties update tento příkaz.
Povolení funkce SMB Multichannel ve starších operačních systémech
Podpora smb Multichannel ve službě Azure Files vyžaduje, aby systém Windows používal všechny relevantní opravy. Několik starších verzí Windows, včetně Windows Serveru 2016, Windows 10 verze 1607 a Windows 10 verze 1507, vyžadují nastavení dalších klíčů registru pro všechny relevantní opravy SMB Multichannel, které se použijí na plně opravené instalace. Pokud používáte verzi Windows, která je novější než tyto tři verze, nevyžaduje se žádná další akce.
Windows Server 2016 a Windows 10 verze 1607
Pokud chcete povolit všechny opravy SMB Multichannel pro Windows Server 2016 a Windows 10 verze 1607, spusťte následující příkaz PowerShellu:
Služba Azure Files zveřejňuje nastavení, která umožňují přepnout protokol SMB tak, aby byl lépe kompatibilní nebo bezpečnější v závislosti na požadavcích vaší organizace. Ve výchozím nastavení je služba Azure Files nakonfigurovaná tak, aby byla maximálně kompatibilní, proto mějte na paměti, že omezení těchto nastavení může způsobit, že se někteří klienti nebudou moct připojit.
Služba Azure Files zveřejňuje následující nastavení:
Verze PROTOKOLU SMB: Které verze PROTOKOLU SMB jsou povolené. Podporované verze protokolu jsou SMB 3.1.1, SMB 3.0 a SMB 2.1. Ve výchozím nastavení jsou povoleny všechny verze PROTOKOLU SMB, i když je protokol SMB 2.1 zakázaný, pokud je povolená možnost vyžadovat zabezpečený přenos, protože protokol SMB 2.1 nepodporuje šifrování při přenosu.
Metody ověřování: Které metody ověřování SMB jsou povolené. Podporované metody ověřování jsou NTLMv2 (pouze klíč účtu úložiště) a Kerberos. Ve výchozím nastavení jsou povolené všechny metody ověřování. Odebrání ntLMv2 zakáže připojení sdílené složky Azure pomocí klíče účtu úložiště. Azure Files nepodporuje použití ověřování NTLM pro přihlašovací údaje domény.
Šifrování lístku Kerberos: Které šifrovací algoritmy jsou povolené. Podporované šifrovací algoritmy jsou AES-256 (doporučeno) a RC4-HMAC.
Šifrování kanálu SMB: Které algoritmy šifrování kanálu SMB jsou povolené. Podporované šifrovací algoritmy jsou AES-256-GCM, AES-128-GCM a AES-128-CCM. Pokud vyberete jenom AES-256-GCM, budete muset klientům říct, aby ho používali, otevřením terminálu PowerShellu jako správce na každém klientovi a spuštěním Set-SmbClientConfiguration -EncryptionCiphers "AES_256_GCM" -Confirm:$false. Použití AES-256-GCM není podporováno u klientů s Windows starších než Windows 11 nebo Windows Server 2022.
Nastavení zabezpečení SMB můžete zobrazit a změnit pomocí webu Azure Portal, PowerShellu nebo rozhraní příkazového řádku. Vyberte požadovanou kartu, abyste viděli postup, jak získat a nastavit nastavení zabezpečení SMB. Všimněte si, že tato nastavení se kontrolují při navázání relace SMB a pokud nejsou splněny, nastavení relace SMB selže s chybou "STATUS_ACCESS_DENIED".
Pokud chcete zobrazit nebo změnit nastavení zabezpečení SMB pomocí webu Azure Portal, postupujte takto:
Vyhledejte účty úložiště a vyberte účet úložiště, pro který chcete zobrazit nastavení zabezpečení.
Vyberte Úložiště dat>Sdílené složky souborů.
V části Nastavení sdílené složky vyberte hodnotu přidruženou k zabezpečení. Pokud jste nezměnili nastavení zabezpečení, tato hodnota se ve výchozím nastavení nastaví na Maximální kompatibilita.
V části Profil vyberte Maximální kompatibilita, Maximální zabezpečení nebo Vlastní. Výběr možnosti Vlastní umožňuje vytvořit vlastní profil pro verze protokolu SMB, šifrování kanálu SMB, mechanismy ověřování a šifrování lístku Kerberos.
Po zadání požadovaných nastavení zabezpečení vyberte Uložit.
K získání nastavení protokolu SMB použijte rutinu Get-AzStorageFileServiceProperty . Nezapomeňte nahradit <resource-group> a <storage-account> nahradit odpovídajícími hodnotami pro vaše prostředí. Pokud jste záměrně nastavili některá nastavení zabezpečení SMB na hodnotu null, například zakázáním šifrování kanálu SMB, přečtěte si pokyny ve skriptu o zakomentování určitých řádků.
$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)
}
}
}
V závislosti na požadavcích vaší organizace na zabezpečení, výkon a kompatibilitu můžete chtít upravit nastavení protokolu SMB. Následující příkaz PowerShellu omezuje sdílené složky SMB jenom na nejbezpečnější možnosti.
Důležité
Omezení sdílených složek SMB v Azure jenom na nejbezpečnější možnosti může vést k tomu, že se někteří klienti nemůžou připojit. Například AES-256-GCM byl zaveden jako možnost šifrování kanálu SMB počínaje systémem Windows Server 2022 a Windows 11. To znamená, že starší klienti, kteří nepodporují AES-256-GCM, se nebudou moct připojit. Pokud vyberete jenom AES-256-GCM, budete muset klientům s Windows Serverem 2022 a Windows 11 říct, aby používali jenom AES-256-GCM otevřením terminálu PowerShellu jako správce na každém klientovi a spuštěném Set-SmbClientConfiguration -EncryptionCiphers "AES_256_GCM" -Confirm:$false.
Pokud chcete získat stav nastavení zabezpečení protokolu SMB, použijte az storage account file-service-properties show příkaz. Před spuštěním těchto příkazů Bash nezapomeňte nahradit <resource-group> příslušné <storage-account> hodnoty pro vaše prostředí. Pokud jste záměrně nastavili některá nastavení zabezpečení SMB na hodnotu null, například zakázáním šifrování kanálu SMB, přečtěte si pokyny ve skriptu o zakomentování určitých řádků.
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
V závislosti na požadavcích vaší organizace na zabezpečení, výkon a kompatibilitu můžete chtít upravit nastavení protokolu SMB. Následující příkaz Azure CLI omezuje sdílené složky SMB jenom na nejbezpečnější možnosti.
Důležité
Omezení sdílených složek SMB v Azure jenom na nejbezpečnější možnosti může vést k tomu, že se někteří klienti nemůžou připojit. Například AES-256-GCM byl zaveden jako možnost šifrování kanálu SMB počínaje systémem Windows Server 2022 a Windows 11. To znamená, že starší klienti, kteří nepodporují AES-256-GCM, se nebudou moct připojit. Pokud vyberete jenom AES-256-GCM, budete muset klientům s Windows Serverem 2022 a Windows 11 říct, aby používali jenom AES-256-GCM otevřením terminálu PowerShellu jako správce na každém klientovi a spuštěném Set-SmbClientConfiguration -EncryptionCiphers "AES_256_GCM" -Confirm:$false.
Sdílené složky SMB v Azure Files podporují podmnožinu funkcí podporovaných protokolem SMB a systémem souborů NTFS. I když většina případů použití a aplikací tyto funkce nevyžadují, některé aplikace nemusí správně fungovat se službou Azure Files, pokud spoléhají na nepodporované funkce. Následující funkce nejsou podporovány:
Sdílené složky Azure SMB jsou dostupné v každé oblasti Azure, včetně všech veřejných a suverénních oblastí. Sdílené složky SMB úrovně Premium jsou dostupné v podmnožině oblastí.