Azure Files menawarkan dua protokol standar industri untuk memasang berbagi file Azure: protokol Blok Pesan Server (SMB) dan protokol Network File System (NFS). Azure Files memungkinkan Anda memilih protokol sistem file yang paling sesuai untuk beban kerja Anda. Berbagi file Azure tidak mendukung akses berbagi file Azure individual dengan protokol SMB dan NFS, meskipun Anda dapat membuat berbagi file SMB dan NFS dalam akun penyimpanan yang sama. Untuk semua berbagi file, Azure Files menawarkan berbagi file tingkat perusahaan yang dapat ditingkatkan untuk memenuhi kebutuhan penyimpanan Anda dan dapat diakses secara bersamaan oleh ribuan klien.
Artikel ini mencakup berbagi file SMB Azure. Untuk informasi tentang berbagi file NFS Azure, lihat Berbagi file NFS Azure.
Skenario umum
Berbagi file SMB digunakan untuk berbagai aplikasi termasuk berbagi file pengguna akhir dan berbagi file yang mendukung database dan aplikasi. Berbagi file SMB sering digunakan dalam skenario berikut:
Berbagi file pengguna akhir seperti berbagi tim, direktori home, dll.
Penyimpanan cadangan untuk aplikasi berbasis Windows, seperti database SQL Server atau aplikasi lini bisnis yang ditulis untuk API sistem file lokal Win32 atau .NET.
Pengembangan aplikasi dan layanan baru, terutama jika aplikasi atau layanan tersebut memiliki persyaratan untuk IO acak dan penyimpanan hierarkis.
Fitur
Azure Files mendukung fitur utama SMB dan Azure yang diperlukan untuk penyebaran produksi berbagi file SMB:
Gabungan domain AD dan daftar kontrol akses diskresioner (DACL).
Pencadangan tanpa server terintegrasi dengan Azure Backup.
Isolasi jaringan dengan titik akhir privat Azure.
Throughput jaringan tinggi menggunakan SMB Multichannel (hanya berbagi file premium).
Enkripsi saluran SMB termasuk AES-256-GCM, AES-128-GCM, dan AES-128-CCM.
Dukungan versi sebelumnya melalui rekam jepret berbagi terintegrasi VSS.
Penghapusan sementara otomatis pada pembagian file Azure untuk mencegah penghapusan yang tidak disengaja.
Opsional berbagi file yang dapat diakses internet dengan SMB 3.0+ yang aman untuk internet.
Semua data yang disimpan di Azure Files dienkripsi saat tidak digunakan menggunakan enkripsi layanan penyimpanan Azure (SSE). Enkripsi layanan penyimpanan berfungsi mirip dengan BitLocker di Windows: data dienkripsi di bawah tingkat sistem file. Karena data dienkripsi di bawah sistem file berbagi Azure, karena dikodekan ke disk, Anda tidak perlu memiliki akses ke kunci yang mendasari klien untuk membaca atau menulis ke berbagi Azure. Enkripsi saat tidak berlaku untuk protokol SMB dan NFS.
Secara default, semua akun penyimpanan Azure mengaktifkan enkripsi saat transit. Hal ini berarti bahwa ketika Anda memasang berbagi file melalui SMB (atau mengaksesnya melalui protokol FileREST), Azure Files hanya akan mengizinkan koneksi jika dibuat dengan SMB 3.x dengan enkripsi atau HTTPS. Klien yang tidak mendukung SMB 3.x dengan enkripsi saluran SMB tidak akan dapat memasang berbagi file Azure jika enkripsi dalam perjalanan diaktifkan.
Azure Files mendukung AES-256-GCM dengan SMB 3.1.1 saat digunakan dengan Windows Server 2022 atau Windows 11. SMB 3.1.1 juga mendukung AES-128-GCM dan SMB 3.0 mendukung AES-128-CCM. AES-128-GCM dinegosiasikan secara default pada Windows 10, versi 21H1 untuk alasan kinerja.
Anda dapat menonaktifkan enkripsi saat transit untuk akun penyimpanan Azure. Saat enkripsi dinonaktifkan, Azure Files juga akan mengizinkan SMB 2.1 dan SMB 3.x tanpa enkripsi. Alasan utama untuk menonaktifkan enkripsi saat transit adalah untuk mendukung aplikasi lama yang harus dijalankan di sistem operasi yang lebih lama, seperti Windows Server 2008 R2 atau distribusi Linux yang lebih lama. Azure Files hanya mengizinkan sambungan SMB 2.1 dalam wilayah Azure yang sama dengan berbagi file Azure; klien SMB 2.1 di luar wilayah Azure dari berbagi file Azure, seperti di lokal atau wilayah Azure yang berbeda, tidak akan dapat mengakses berbagi file.
Pengaturan protokol SMB
Azure Files menawarkan beberapa pengaturan yang memengaruhi perilaku, performa, dan keamanan protokol SMB. Ini dikonfigurasi untuk semua berbagi file Azure dalam akun penyimpanan.
SMB Multichannel
SMB Multichannel mengaktifkan klien SMB 3.x untuk membuat beberapa koneksi jaringan ke berbagi file SMB. Azure Files mendukung SMB Multichannel pada berbagi{i>
Untuk melihat status SMB Multichannel, navigasikan ke akun penyimpanan yang berisi berbagi file premium Anda dan pilih Berbagi file di bawah judul Penyimpanan data di daftar isi akun penyimpanan. Status SMB Multichannel dapat dilihat di bawah bagian Pengaturan berbagi file.
Untuk mengaktifkan atau menonaktifkan SMB Multichannel, pilih status saat ini (Diaktifkan atau Dinonaktifkan tergantung pada status). Dialog yang dihasilkan menyediakan tombol untuk mengaktifkan atau menonaktifkan SMB Multichannel. Pilih kondisi yang diinginkan dan pilih Simpan.
Untuk mendapatkan status SMB Multichannel, gunakan cmdlet Get-AzStorageFileServiceProperty. Ingatlah untuk mengganti <resource-group> dan <storage-account> dengan nilai yang sesuai untuk lingkungan Anda sebelum menjalankan perintah PowerShell ini.
$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
}
}
}
Untuk mengaktifkan/menonaktifkan SMB Multichannel, gunakan cmdlet Update-AzStorageFileServiceProperty.
Untuk mendapatkan status SMB Multichannel, gunakan perintah az storage account file-service-properties show. Ingatlah untuk mengganti <resource-group> dan <storage-account> dengan nilai yang sesuai untuk lingkungan Anda sebelum menjalankan perintah Bash ini.
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
Untuk mengaktifkan/menonaktifkan SMB Multichannel, gunakan perintah az storage account file-service-properties update.
Mengaktifkan SMB Multichannel pada sistem operasi yang lebih lama
Dukungan untuk SMB Multichannel di Azure Files mengharuskan memastikan Windows menerapkan semua patch yang relevan. Beberapa versi Windows lama, termasuk Windows Server 2016, Windows 10 versi 1607, dan versi Windows 10 1507, memerlukan kunci registri tambahan yang akan diatur untuk semua perbaikan SMB Multichannel yang relevan untuk diterapkan pada instalasi yang sepenuhnya menggunakan patch. Jika Anda menjalankan versi Windows yang lebih baru dari ketiga versi ini, tidak diperlukan tindakan tambahan.
Windows Server 2016 dan Windows Server 10 versi 1607
Untuk mengaktifkan semua perbaikan SMB Multichannel untuk Windows Server 2016 dan Windows 10 versi 1607, jalankan perintah PowerShell berikut:
Azure Files memperlihatkan pengaturan yang memungkinkan Anda mengubah protokol SMB menjadi lebih kompatibel atau lebih aman, bergantung pada persyaratan organisasi Anda. Secara default, Azure Files dikonfigurasi agar kompatibel secara maksimal, jadi perlu diingat bahwa membatasi pengaturan ini dapat menyebabkan beberapa klien tidak dapat terhubung.
Azure Files memperlihatkan pengaturan berikut:
Versi UKM: Versi UKM mana yang diizinkan. Versi protokol yang didukung adalah SMB 3.1.1, SMB 3.0, dan SMB 2.1. Secara default, semua versi SMB diizinkan, meskipun SMB 2.1 tidak diizinkan jika "memerlukan transfer yang aman" diaktifkan, karena SMB 2.1 tidak mendukung enkripsi saat transit.
Metode autentikasi: Metode autentikasi SMB mana yang diizinkan. Metode autentikasi yang didukung adalah NTLMv2 (hanya kunci akun penyimpanan) dan Kerberos. Secara default, semua metode autentikasi diizinkan. Menghapus NTLMv2 melarang menggunakan kunci akun penyimpanan untuk memasang berbagi file Azure. Azure Files tidak mendukung penggunaan autentikasi NTLM untuk kredensial domain.
Enkripsi tiket Kerberos: Algoritme enkripsi mana yang diizinkan. Algoritma enkripsi yang didukung adalah AES-256 (disarankan) and RC4-HMAC.
Enkripsi saluran SMB: Algoritme enkripsi saluran SMB mana yang diizinkan. Algoritma enkripsi yang didukung adalah AES-256-GCM, AES-128-GCM, dan AES-128-CCM. Jika Anda hanya memilih AES-256-GCM, Anda harus memberi tahu klien untuk menggunakannya dengan membuka terminal PowerShell sebagai administrator pada setiap klien dan menjalankan Set-SmbClientConfiguration -EncryptionCiphers "AES_256_GCM" -Confirm:$false. Menggunakan AES-256-GCM tidak didukung pada klien Windows yang lebih lama dari Windows 11/Windows Server 2022.
Anda dapat melihat dan mengubah pengaturan keamanan SMB menggunakan portal Azure, PowerShell, atau CLI. Pilih tab yang diinginkan untuk melihat langkah-langkah tentang cara mendapatkan dan mengatur pengaturan keamanan SMB. Perhatikan bahwa pengaturan ini diperiksa ketika sesi SMB dibuat dan jika tidak terpenuhi, penyiapan sesi SMB gagal dengan kesalahan "STATUS_ACCESS_DENIED".
Untuk melihat atau mengubah pengaturan keamanan SMB menggunakan portal Azure, ikuti langkah-langkah berikut:
Cari akun Penyimpanan dan pilih akun penyimpanan yang ingin Anda lihat pengaturan keamanannya.
Pilih Penyimpanan data>Pembagian file.
Di bagian Pengaturan berbagi file, pilih nilai yang terkait dengan Keamanan. Jika Anda belum mengubah pengaturan keamanan, nilai ini diatur secara default ke Kompatibilitas maksimum.
Di bagian Profil, pilih Kompatibilitas maksimum, Keamanan maksimum, atau Kustom. Memilih Kustom memungkinkan Anda membuat profil kustom untuk versi protokol SMB, enkripsi saluran SMB, mekanisme autentikasi, dan enkripsi tiket Kerberos.
Setelah Anda memasukkan pengaturan keamanan yang diinginkan, pilih Simpan.
Untuk mendapatkan setelan protokol SMB, gunakan Get-AzStorageFileServiceProperty cmdlet. Ingatlah untuk mengganti <resource-group> dan <storage-account> dengan nilai yang sesuai untuk lingkungan Anda. Jika Anda sengaja mengatur salah satu pengaturan keamanan SMB Anda ke null, misalnya dengan menonaktifkan enkripsi saluran SMB, lihat instruksi dalam skrip tentang mengomentari baris tertentu.
$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)
}
}
}
Bergantung pada persyaratan keamanan, performa, dan kompatibilitas organisasi, Anda mungkin ingin mengubah pengaturan protokol SMB. Perintah PowerShell berikut membatasi pembagian file SMB Anda hanya pada opsi yang paling aman.
Penting
Membatasi berbagi file Azure SMB hanya untuk opsi yang paling aman dapat mengakibatkan beberapa klien tidak dapat tersambung. Misalnya, AES-256-GCM diperkenalkan sebagai opsi untuk enkripsi saluran SMB mulai dari Windows Server 2022 dan Windows 11. Ini berarti bahwa klien lama yang tidak mendukung AES-256-GCM tidak akan dapat terhubung. Jika Anda hanya memilih AES-256-GCM, Anda harus memberi tahu klien Windows Server 2022 dan Windows 11 untuk hanya menggunakan AES-256-GCM dengan membuka terminal PowerShell sebagai administrator pada setiap klien dan menjalankan Set-SmbClientConfiguration -EncryptionCiphers "AES_256_GCM" -Confirm:$false.
Untuk mendapatkan status pengaturan keamanan SMB, gunakan perintah az storage account file-service-properties show. Ingatlah untuk mengganti <resource-group> dan <storage-account> dengan nilai yang sesuai untuk lingkungan Anda sebelum menjalankan perintah Bash ini. Jika Anda sengaja mengatur salah satu pengaturan keamanan SMB Anda ke null, misalnya dengan menonaktifkan enkripsi saluran SMB, lihat instruksi dalam skrip tentang mengomentari baris tertentu.
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
Bergantung pada persyaratan keamanan, performa, dan kompatibilitas organisasi, Anda mungkin ingin mengubah pengaturan protokol SMB. Perintah Azure CLI berikut membatasi pembagian file SMB Anda hanya pada opsi yang paling aman.
Penting
Membatasi berbagi file Azure SMB hanya untuk opsi yang paling aman dapat mengakibatkan beberapa klien tidak dapat tersambung. Misalnya, AES-256-GCM diperkenalkan sebagai opsi untuk enkripsi saluran SMB mulai dari Windows Server 2022 dan Windows 11. Ini berarti bahwa klien lama yang tidak mendukung AES-256-GCM tidak akan dapat terhubung. Jika Anda hanya memilih AES-256-GCM, Anda harus memberi tahu klien Windows Server 2022 dan Windows 11 untuk hanya menggunakan AES-256-GCM dengan membuka terminal PowerShell sebagai administrator pada setiap klien dan menjalankan Set-SmbClientConfiguration -EncryptionCiphers "AES_256_GCM" -Confirm:$false.
Berbagi file SMB di Azure Files mendukung subset fitur yang didukung oleh protokol SMB dan sistem file NTFS. Meskipun sebagian besar kasus penggunaan dan aplikasi tidak memerlukan fitur ini, beberapa aplikasi mungkin tidak berfungsi dengan baik dengan Azure Files jika mengandalkan fitur yang tidak didukung. Fitur-fitur berikut tidak didukung:
Berbagi file Azure SMB tersedia di setiap wilayah Azure, termasuk semua wilayah publik dan kedaulatan. Berbagi file SMB Premium tersedia di sebagian wilayah.