Usługa Azure Files oferuje dwa standardowe protokoły instalowania udziału plików platformy Azure: protokół SMB (Server Message Block) i protokół sieciowego systemu plików (NFS). Usługa Azure Files umożliwia wybranie protokołu systemu plików, który jest najlepszy dla obciążenia. Udziały plików platformy Azure nie obsługują dostępu do pojedynczego udziału plików platformy Azure przy użyciu protokołów SMB i NFS, chociaż można tworzyć udziały plików SMB i NFS w ramach tego samego konta magazynu. W przypadku wszystkich udziałów plików usługa Azure Files oferuje udziały plików klasy korporacyjnej, które można skalować w górę w celu spełnienia wymagań magazynu i mogą być dostępne współbieżnie przez tysiące klientów.
W tym artykule opisano udziały plików platformy Azure protokołu SMB. Aby uzyskać informacje o udziałach plików platformy Azure NFS, zobacz Udziały plików NFS w usłudze Azure Files.
Typowe scenariusze
Udziały plików SMB są używane dla różnych aplikacji, w tym udziałów plików użytkowników końcowych i udziałów plików, które obsługują bazy danych i aplikacje. Udziały plików SMB są często używane w następujących scenariuszach:
Udziały plików użytkownika końcowego, takie jak udziały zespołu, katalogi macierzyste itp.
Tworzenie kopii zapasowej magazynu dla aplikacji opartych na systemie Windows, takich jak bazy danych programu SQL Server lub aplikacje biznesowe napisane dla lokalnych interfejsów API systemu plików Win32 lub .NET.
Tworzenie nowych aplikacji i usług, szczególnie jeśli ta aplikacja lub usługa ma wymaganie dotyczące losowego we/wy i magazynu hierarchicznego.
Funkcje
Usługa Azure Files obsługuje główne funkcje protokołu SMB i platformy Azure potrzebne do wdrożeń produkcyjnych udziałów plików SMB:
Dołączanie do domeny usługi AD i uznaniowe listy kontroli dostępu (DACLS).
Zintegrowana bezserwerowa kopia zapasowa z usługą Azure Backup.
Izolacja sieciowa z prywatnymi punktami końcowymi platformy Azure.
Wysoka przepływność sieci przy użyciu protokołu SMB Multichannel (tylko udziały plików w warstwie Premium).
Szyfrowanie kanału SMB, w tym AES-256-GCM, AES-128-GCM i AES-128-CCM.
Obsługa poprzedniej wersji za pośrednictwem migawek zintegrowanych udziałów usługi VSS.
Automatyczne usuwanie nietrwałe w udziałach plików platformy Azure, aby zapobiec przypadkowemu usunięciu.
Opcjonalnie dostępne internetowe udziały plików z bezpiecznym internetem protokół SMB 3.0 lub nowszy.
Wszystkie dane przechowywane w usłudze Azure Files są szyfrowane w spoczynku przy użyciu szyfrowania usługi Azure Storage (SSE). Szyfrowanie usługi Storage działa podobnie do funkcji BitLocker w systemie Windows: dane są szyfrowane poniżej poziomu systemu plików. Ponieważ dane są szyfrowane pod systemem plików udziału plików platformy Azure, ponieważ są szyfrowane na dysku, nie musisz mieć dostępu do klucza bazowego na kliencie, aby odczytywać lub zapisywać w udziale plików platformy Azure. Szyfrowanie magazynowane dotyczy protokołów SMB i NFS.
Domyślnie wszystkie konta usługi Azure Storage mają włączone szyfrowanie podczas przesyłania. Oznacza to, że podczas instalowania udziału plików za pośrednictwem protokołu SMB (lub uzyskiwania do niego dostępu za pośrednictwem protokołu FileREST) usługa Azure Files będzie zezwalać na połączenie tylko wtedy, gdy jest nawiązywane z protokołem SMB 3.x z szyfrowaniem lub protokołem HTTPS. Klienci, którzy nie obsługują protokołu SMB 3.x z szyfrowaniem kanału SMB, nie będą mogli zainstalować udziału plików platformy Azure, jeśli szyfrowanie podczas przesyłania jest włączone.
Usługa Azure Files obsługuje usługę AES-256-GCM z użyciem protokołu SMB 3.1.1 w przypadku użycia z systemem Windows Server 2022 lub Windows 11. Protokół SMB 3.1.1 obsługuje również usługi AES-128-GCM i SMB 3.0 obsługują protokół AES-128-CCM. Usługa AES-128-GCM jest domyślnie negocjowana w systemie Windows 10 w wersji 21H1 ze względów wydajności.
Szyfrowanie podczas przesyłania dla konta usługi Azure Storage można wyłączyć. Po wyłączeniu szyfrowania usługa Azure Files będzie również zezwalać na protokół SMB 2.1 i SMB 3.x bez szyfrowania. Głównym powodem wyłączenia szyfrowania podczas przesyłania jest obsługa starszej aplikacji, która musi być uruchomiona w starszym systemie operacyjnym, takim jak Windows Server 2008 R2 lub starsza dystrybucja systemu Linux. Usługa Azure Files zezwala tylko na połączenia SMB 2.1 w tym samym regionie świadczenia usługi Azure co udział plików platformy Azure; Klient SMB 2.1 poza regionem świadczenia usługi Azure udziału plików platformy Azure, takim jak lokalny lub w innym regionie świadczenia usługi Azure, nie będzie mógł uzyskać dostępu do udziału plików.
Ustawienia protokołu SMB
Usługa Azure Files oferuje wiele ustawień, które wpływają na zachowanie, wydajność i zabezpieczenia protokołu SMB. Są one skonfigurowane dla wszystkich udziałów plików platformy Azure w ramach konta magazynu.
SMB Multichannel
Protokół SMB Multichannel umożliwia klientowi protokołu SMB 3.x ustanawianie wielu połączeń sieciowych z udziałem plików SMB. Usługa Azure Files obsługuje protokół SMB Multichannel w udziałach plików w warstwie Premium (udziały plików w rodzaju konta magazynu FileStorage). Włączenie funkcji SMB Multichannel w usłudze Azure Files nie wiąże się z dodatkowymi kosztami. Funkcja SMB Multichannel jest domyślnie wyłączona.
Aby wyświetlić stan SMB Multichannel, przejdź do konta magazynu zawierającego udziały plików w warstwie Premium i wybierz pozycję Udziały plików w nagłówku Magazyn danych w spisie treści konta magazynu. Stan funkcji SMB Multichannel można zobaczyć w sekcji Ustawienia udziału plików.
Aby włączyć lub wyłączyć funkcję SMB Multichannel, wybierz bieżący stan (włączony lub wyłączony w zależności od stanu). Wynikowe okno dialogowe zawiera przełącznik umożliwiający włączenie lub wyłączenie funkcji SMB Multichannel. Wybierz żądany stan i wybierz pozycję Zapisz.
Aby uzyskać stan funkcji SMB Multichannel, użyj Get-AzStorageFileServiceProperty polecenia cmdlet . Pamiętaj, aby zastąpić <resource-group> wartości i <storage-account> odpowiednimi wartościami dla środowiska przed uruchomieniem tych poleceń programu 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
}
}
}
Aby włączyć/wyłączyć funkcję SMB Multichannel, użyj Update-AzStorageFileServiceProperty polecenia cmdlet .
Aby uzyskać stan funkcji SMB Multichannel, użyj az storage account file-service-properties show polecenia . Pamiętaj, aby zastąpić <resource-group> wartości i <storage-account> odpowiednimi wartościami dla środowiska przed uruchomieniem tych poleceń powłoki 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
Aby włączyć/wyłączyć funkcję SMB Multichannel, użyj az storage account file-service-properties update polecenia .
Usługa Azure Files uwidacznia ustawienia, które umożliwiają przełączenie protokołu SMB na bardziej zgodne lub bezpieczniejsze, w zależności od wymagań organizacji. Domyślnie usługa Azure Files jest skonfigurowana jako maksymalnie zgodna, dlatego należy pamiętać, że ograniczenie tych ustawień może spowodować, że niektórzy klienci nie będą mogli nawiązać połączenia.
Wersje protokołu SMB: które wersje protokołu SMB są dozwolone. Obsługiwane wersje protokołu to SMB 3.1.1, SMB 3.0 i SMB 2.1. Domyślnie wszystkie wersje protokołu SMB są dozwolone, chociaż protokół SMB 2.1 jest niedozwolony, jeśli opcja "wymaga bezpiecznego transferu" jest włączona, ponieważ protokół SMB 2.1 nie obsługuje szyfrowania podczas przesyłania.
Metody uwierzytelniania: dozwolone są metody uwierzytelniania protokołu SMB. Obsługiwane metody uwierzytelniania to NTLMv2 (tylko klucz konta magazynu) i Kerberos. Domyślnie wszystkie metody uwierzytelniania są dozwolone. Usunięcie serwera NTLMv2 nie zezwala na instalowanie udziału plików platformy Azure przy użyciu klucza konta magazynu. Usługa Azure Files nie obsługuje uwierzytelniania NTLM dla poświadczeń domeny.
Szyfrowanie biletów Kerberos: które algorytmy szyfrowania są dozwolone. Obsługiwane algorytmy szyfrowania to AES-256 (zalecane) i RC4-HMAC.
Szyfrowanie kanału SMB: które algorytmy szyfrowania kanału SMB są dozwolone. Obsługiwane algorytmy szyfrowania to AES-256-GCM, AES-128-GCM i AES-128-CCM. Jeśli wybierzesz tylko usługę AES-256-GCM, musisz poinformować klientów, aby używali go, otwierając terminal programu PowerShell jako administrator na każdym kliencie i uruchamiając polecenie Set-SmbClientConfiguration -EncryptionCiphers "AES_256_GCM" -Confirm:$false. Korzystanie z usługi AES-256-GCM nie jest obsługiwane na klientach z systemem Windows starszych niż Windows 11/Windows Server 2022.
Ustawienia zabezpieczeń protokołu SMB można wyświetlać i zmieniać przy użyciu witryny Azure Portal, programu PowerShell lub interfejsu wiersza polecenia. Wybierz odpowiednią kartę, aby zobaczyć kroki pobierania i ustawiania ustawień zabezpieczeń protokołu SMB.
Aby wyświetlić lub zmienić ustawienia zabezpieczeń protokołu SMB przy użyciu witryny Azure Portal, wykonaj następujące kroki:
Wyszukaj pozycję Konta magazynu i wybierz konto magazynu, dla którego chcesz wyświetlić ustawienia zabezpieczeń.
Wybierz pozycję Udziały plików magazynu>danych.
W obszarze Ustawienia udziału plików wybierz wartość skojarzona z zabezpieczeniami. Jeśli ustawienia zabezpieczeń nie zostały zmodyfikowane, ta wartość jest domyślnie ustawiona na Wartość Maksymalna zgodność.
W obszarze Profil wybierz pozycję Maksymalna zgodność, Maksymalne zabezpieczenia lub Niestandardowy. Wybranie pozycji Niestandardowe umożliwia utworzenie profilu niestandardowego dla wersji protokołu SMB, szyfrowania kanału SMB, mechanizmów uwierzytelniania i szyfrowania biletów Kerberos.
Po wprowadzeniu żądanych ustawień zabezpieczeń wybierz pozycję Zapisz.
Aby uzyskać ustawienia protokołu SMB, użyj Get-AzStorageFileServiceProperty polecenia cmdlet . Pamiętaj, aby zastąpić <resource-group> wartości i <storage-account> odpowiednimi wartościami dla danego środowiska. Jeśli celowo ustawiono dowolne ustawienia zabezpieczeń protokołu SMB na wartość null, na przykład przez wyłączenie szyfrowania kanału SMB, zapoznaj się z instrukcjami w skrypcie dotyczącymi komentowania niektórych wierszy.
$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)
}
}
}
W zależności od wymagań dotyczących zabezpieczeń, wydajności i zgodności organizacji warto zmodyfikować ustawienia protokołu SMB. Następujące polecenie programu PowerShell ogranicza udziały plików SMB tylko do najbardziej bezpiecznych opcji.
Ważne
Ograniczenie udziałów plików SMB platformy Azure tylko do najbezpieczniejszych opcji może spowodować, że niektórzy klienci nie będą mogli nawiązać połączenia. Na przykład usługa AES-256-GCM została wprowadzona jako opcja szyfrowania kanału SMB począwszy od systemów Windows Server 2022 i Windows 11. Oznacza to, że starsi klienci, którzy nie obsługują usługi AES-256-GCM, nie będą mogli nawiązać połączenia. Jeśli wybierzesz tylko usługę AES-256-GCM, musisz poinformować klientów z systemem Windows Server 2022 i Windows 11, aby używali tylko programu AES-256-GCM, otwierając terminal programu PowerShell jako administrator na każdym kliencie i uruchomionym programie Set-SmbClientConfiguration -EncryptionCiphers "AES_256_GCM" -Confirm:$false.
Aby uzyskać stan ustawień zabezpieczeń protokołu SMB, użyj az storage account file-service-properties show polecenia . Pamiętaj, aby zastąpić <resource-group> wartości i <storage-account> odpowiednimi wartościami dla środowiska przed uruchomieniem tych poleceń powłoki Bash. Jeśli celowo ustawiono dowolne ustawienia zabezpieczeń protokołu SMB na wartość null, na przykład przez wyłączenie szyfrowania kanału SMB, zapoznaj się z instrukcjami w skrypcie dotyczącymi komentowania niektórych wierszy.
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
W zależności od wymagań dotyczących zabezpieczeń, wydajności i zgodności organizacji warto zmodyfikować ustawienia protokołu SMB. Następujące polecenie interfejsu wiersza polecenia platformy Azure ogranicza udziały plików SMB tylko do najbardziej bezpiecznych opcji.
Ważne
Ograniczenie udziałów plików SMB platformy Azure tylko do najbezpieczniejszych opcji może spowodować, że niektórzy klienci nie będą mogli nawiązać połączenia. Na przykład usługa AES-256-GCM została wprowadzona jako opcja szyfrowania kanału SMB począwszy od systemów Windows Server 2022 i Windows 11. Oznacza to, że starsi klienci, którzy nie obsługują usługi AES-256-GCM, nie będą mogli nawiązać połączenia. Jeśli wybierzesz tylko usługę AES-256-GCM, musisz poinformować klientów z systemem Windows Server 2022 i Windows 11, aby używali tylko programu AES-256-GCM, otwierając terminal programu PowerShell jako administrator na każdym kliencie i uruchomionym programie Set-SmbClientConfiguration -EncryptionCiphers "AES_256_GCM" -Confirm:$false.
Udziały plików SMB w usłudze Azure Files obsługują podzestaw funkcji obsługiwanych przez protokół SMB i system plików NTFS. Chociaż większość przypadków użycia i aplikacji nie wymaga tych funkcji, niektóre aplikacje mogą nie działać prawidłowo z usługą Azure Files, jeśli korzystają z nieobsługiwanych funkcji. Następujące funkcje nie są obsługiwane:
Udziały plików platformy Azure protokołu SMB są dostępne w każdym regionie świadczenia usługi Azure, w tym we wszystkich regionach publicznych i suwerennych. Udziały plików SMB w warstwie Premium są dostępne w podzestawie regionów.