Mengoperasikan SQL Server yang diaktifkan oleh Azure Arc dengan hak istimewa paling sedikit
Berlaku untuk:SQL Server
Prinsip keamanan informasi dengan hak istimewa paling sedikit menegaskan bahwa akun dan aplikasi hanya memiliki akses ke data dan operasi yang mereka butuhkan. Dengan SQL Server yang diaktifkan oleh Azure Arc, Anda dapat menjalankan layanan ekstensi agen dengan hak istimewa paling rendah. Artikel ini menjelaskan cara menjalankan layanan ekstensi agen dengan hak istimewa paling sedikit.
Untuk mengonfigurasi layanan secara opsional agar berjalan dengan hak istimewa paling sedikit, ikuti langkah-langkah dalam artikel ini. Saat ini, layanan tidak berjalan secara otomatis dengan hak istimewa paling sedikit.
Mengonfigurasi akun dan izin layanan Windows untuk Ekstensi Azure untuk SQL Server menjelaskan izin hak istimewa paling sedikit untuk layanan ekstensi agen.
Catatan
Server yang ada dengan ekstensi dari rilis November 2024 atau yang lebih baru akan secara otomatis menerapkan konfigurasi dengan hak istimewa paling sedikit. Aplikasi ini akan terjadi secara bertahap.
Untuk mencegah penerapan otomatis hak istimewa paling sedikit, blokir peningkatan ekstensi ke rilis November 2024.
Setelah Anda mengonfigurasi layanan ekstensi agen untuk berjalan dengan hak istimewa paling sedikit, layanan menggunakan NT Service\SQLServerExtension
akun layanan.
Akun ini NT Service\SQLServerExtension
adalah akun layanan Windows lokal:
- Dibuat dan dikelola oleh Ekstensi Azure untuk SQL Server ketika opsi hak istimewa paling sedikit diaktifkan.
- Memberikan izin dan hak istimewa minimum yang diperlukan untuk menjalankan ekstensi Azure untuk layanan SQL Server pada sistem operasi Windows. Ini hanya memiliki akses ke folder dan direktori yang digunakan untuk membaca dan menyimpan konfigurasi atau menulis log.
- Diberikan izin untuk menyambungkan dan mengkueri di SQL Server dengan login baru khusus untuk akun layanan tersebut yang memiliki izin minimum yang diperlukan. Izin minimum bergantung pada fitur yang diaktifkan.
- Diperbarui ketika izin tidak lagi diperlukan. Misalnya, izin dicabut saat Anda menonaktifkan fitur, menonaktifkan konfigurasi hak istimewa paling sedikit, atau menghapus instalan ekstensi Azure untuk SQL Server. Pencabutan memastikan bahwa tidak ada izin yang tersisa setelah tidak lagi diperlukan.
Prasyarat
Bagian ini mengidentifikasi persyaratan sistem dan alat yang Anda butuhkan untuk menyelesaikan contoh dalam artikel ini.
Persyaratan sistem
Konfigurasi dengan hak istimewa paling sedikit memerlukan:
- Windows Server 2012 atau yang lebih baru
- SQL Server 2012 atau yang lebih baru
- Akun layanan SQL Server harus menjadi anggota
sysadmin
peran server tetap - Semua database harus online dan dapat diperbarui
Konfigurasi dengan hak istimewa terkecil saat ini tidak didukung di Linux.
Persyaratan lain, seperti yang tercantum dalam Prasyarat - SQL Server yang diaktifkan oleh Azure Arc masih berlaku.
Akun layanan SQL Server
Secara default, akun layanan SQL Server adalah anggota sysadmin
peran server tetap.
Seperti yang tercantum dalam prasyarat, akun layanan SQL Server harus menjadi anggota sysadmin
peran server tetap pada setiap instans SQL Server. Ekstensi Azure untuk SQL Server memiliki proses yang disebut Deployer.exe
untuk sementara berjalan seperti NT AUTHORITY\SYSTEM
saat:
- Fitur diaktifkan atau dinonaktifkan
- Instans SQL Server ditambahkan atau dihapus
Deployer.exe
meniru akun layanan SQL Server untuk terhubung ke SQL Server dan menambahkan atau menghapus izin dalam peran server dan database tergantung pada fitur mana yang diaktifkan atau dinonaktifkan untuk memastikan bahwa ekstensi Azure untuk SQL Server menggunakan hak istimewa paling sedikit yang diperlukan. Untuk mengubah izin ini, akun layanan SQL Server harus menjadi anggota sysadmin
peran server.
Jika Anda ingin mengelola proses ini dengan kontrol yang lebih besar, sehingga akun layanan SQL Server bukan anggota peran server sysadmin sepanjang waktu, ikuti langkah-langkah berikut:
- Tambahkan akun layanan SQL Server untuk sementara ke peran server sysadmin.
- Izinkan
Deployer.exe
untuk berjalan setidaknya sekali sehingga izin diatur. - Hapus akun layanan SQL Server dari peran sysadmin.
Ulangi prosedur ini kapan saja fitur diaktifkan atau dinonaktifkan atau instans SQL Server ditambahkan untuk memungkinkan Deployer.exe
untuk memberikan hak istimewa paling sedikit yang diperlukan.
Alat
Untuk menyelesaikan langkah-langkah dalam artikel ini, Anda memerlukan alat berikut:
- Azure CLI
-
arcdata
Versi ekstensi Azure CLI atau yang lebih1.5.9
baru - Ekstensi Azure untuk versi server SQL atau yang lebih
1.1.2504.99
baru
Aktifkan hak istimewa terkecil
Masuk dengan Azure CLI.
az login
arcdata
Verifikasi versi ekstensi.az extension list -o table
Jika hasilnya menyertakan versi
arcdata
, lewati ke langkah berikutnya.Jika perlu, instal atau perbarui
arcdata
ekstensi Azure CLI.Untuk memasang ekstensi:
az extension add --name arcdata
Untuk memperbarui ekstensi:
az extension update --name arcdata
Aktifkan hak istimewa paling sedikit dengan Azure CLI.
Untuk mengaktifkan hak istimewa paling sedikit, atur
LeastPrivilege
bendera fitur ketrue
. Untuk menyelesaikan tugas ini, jalankan perintah berikut dengan nilai yang<resource-group>
diperbarui untuk dan<machine-name>
.az sql server-arc extension feature-flag set --name LeastPrivilege --enable true --resource-group <resource-group> --machine-name <machine-name>
Misalnya, perintah berikut memungkinkan hak istimewa paling sedikit untuk server bernama
myserver
dalam grup sumber daya bernamamyrg
:az sql server-arc extension feature-flag set --name LeastPrivilege --enable true --resource-group myrg --machine-name myserver
Memverifikasi konfigurasi hak istimewa terkecil
Untuk memverifikasi bahwa SQL Server Anda yang diaktifkan oleh Azure Arc dikonfigurasi untuk berjalan dengan hak istimewa paling sedikit:
Di layanan Windows, temukan layanan Microsoft SQL Server Extension Service . Verifikasi bahwa layanan berjalan sebagai akun layanan
NT Service\SqlServerExtension
.Buka penjadwal tugas di server dan periksa apakah tugas berbasis peristiwa dengan nama
SqlServerExtensionPermissionProvider
dibuat di bawahMicrosoft\SqlServerExtension
.Catatan
Sebelum rilis Juli 2024,
SqlServerExtensionPermissionProvider
adalah tugas terjadwal. Ini berjalan per jam.Buka penjadwal tugas di server dan periksa apakah tugas terjadwal dengan nama
SqlServerExtensionPermissionProvider
dibuat di bawahMicrosoft\SqlServerExtension
.Buka SQL Server Management Studio dan periksa login bernama
NT Service\SqlServerExtension
. Verifikasi bahwa akun diberi izin ini:- Menyambungkan SQL
- Tampilkan Status Database
- Tampilkan Status Server
Validasi izin dengan kueri berikut:
Untuk memverifikasi izin tingkat server, jalankan kueri berikut:
EXECUTE AS LOGIN = 'NT Service\SqlServerExtension' SELECT * FROM fn_my_permissions (NULL, 'SERVER');
Untuk memverifikasi izin tingkat database, ganti
<database name>
dengan nama salah satu database Anda, dan jalankan kueri berikut:EXECUTE AS LOGIN = 'NT Service\SqlServerExtension' USE <database name>; SELECT * FROM fn_my_permissions (NULL, 'database');