Bagikan melalui


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:

  1. Tambahkan akun layanan SQL Server untuk sementara ke peran server sysadmin.
  2. Izinkan Deployer.exe untuk berjalan setidaknya sekali sehingga izin diatur.
  3. 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:

Aktifkan hak istimewa terkecil

  1. Masuk dengan Azure CLI.

    az login
    
  2. 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
    
  3. Aktifkan hak istimewa paling sedikit dengan Azure CLI.

    Untuk mengaktifkan hak istimewa paling sedikit, atur LeastPrivilege bendera fitur ke true. 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 bernama myrg:

    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:

  1. Di layanan Windows, temukan layanan Microsoft SQL Server Extension Service . Verifikasi bahwa layanan berjalan sebagai akun layanan NT Service\SqlServerExtension. 

  2. Buka penjadwal tugas di server dan periksa apakah tugas berbasis peristiwa dengan nama SqlServerExtensionPermissionProvider dibuat di bawah Microsoft\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 bawah Microsoft\SqlServerExtension.

  3. 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
  4. 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');