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.

Mengonfigurasi akun dan izin layanan Windows untuk Ekstensi Azure untuk SQL Server menjelaskan izin hak istimewa paling sedikit untuk layanan ekstensi agen.

Hak istimewa terkecil diaktifkan secara default

Hak istimewa terkecil diaktifkan secara default pada versi Azure Extension for SQL Server berikut:

  • Versi 1.1.3453.436
  • Versi 1.1.3518.465 dan versi selanjutnya

Hak istimewa terkecil tidak diaktifkan secara default pada versi sebelum 1.1.3453.436 atau pada versi 1.1.3464.439, 1.1.3494.451, dan 1.1.3500.453. Untuk versi-versi ini, ikuti langkah-langkah dalam artikel ini untuk mengaktifkan hak istimewa terkecil secara manual.

Catatan

Untuk server yang sudah ada yang menggunakan 1.1.2859.223 atau versi yang lebih baru, ketika peningkatan otomatis diaktifkan, konfigurasi dengan hak istimewa paling rendah akhirnya diterapkan sebagai bagian dari peningkatan otomatis. Untuk mencegah penerapan otomatis konfigurasi dengan hak istimewa sedikit, blokir peningkatan ekstensi setelah 1.1.2859.223.

Ketika hak istimewa terkecil diaktifkan, Ekstensi Azure untuk SQL Server secara otomatis membuat dan mengelola NT SERVICE\SqlServerExtension sebagai akun layanan Windows lokal dan login SQL Server:

  • Ekstensi ini hanya memberikan izin Windows yang diperlukan untuk membaca dan menyimpan konfigurasi serta menulis log.
  • Ekstensi ini memberikan kepada login izin minimum SQL Server yang diperlukan oleh fitur-fitur yang diaktifkan.
  • Ekstensi ini mencabut izin ketika tidak lagi diperlukan, seperti saat Anda menonaktifkan sebuah fitur.
  • Ekstensi akan menghapus akun saat Anda menghapus Azure Extension for SQL Server atau menonaktifkan hak terkecil.

Prasyarat

Bagian ini mengidentifikasi persyaratan sistem dan alat yang Anda butuhkan untuk mengaktifkan atau menonaktifkan hak terkecil.

Persyaratan sistem

Mengonfigurasi hak istimewa terkecil memerlukan:

  • Server Windows 2016 atau versi yang lebih baru.
  • SQL Server 2014 (12.x) atau versi yang lebih baru.
  • Akun layanan SQL Server harus menjadi anggota peran server tetap sysadmin.
  • Semua basis data harus online dan dapat diperbarui.

Hak istimewa terkecil saat ini tidak didukung di Linux.

Alat

Untuk menyelesaikan langkah-langkah dalam artikel ini, Anda memerlukan alat berikut:

  • Azure CLI
  • Ekstensi Azure CLI versi arcdata atau yang lebih baru
  • Ekstensi 1.1.2859.223 Azure untuk versi SQL Server atau versi yang lebih baru untuk mengaktifkan hak istimewa terkecil secara manual.

Aktifkan atau nonaktifkan hak istimewa terkecil

  1. Masuk dengan Azure CLI.

    az login
    
  2. arcdata Verifikasi versi ekstensi.

    az extension list -o table
    

    Jika hasilnya menyertakan versi yang didukung dari 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 menonaktifkan, atur bendera fitur ke .false Untuk menyelesaikan tugas ini, jalankan perintah berikut dengan nilai Anda untuk <resource-group> 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 Services, temukan Microsoft SQL Server Extension Service. Verifikasi bahwa layanan berjalan di bawah NT SERVICE\SqlServerExtension akun layanan.

  2. Buka Penjadwal Tugas di server. Verifikasi bahwa tugas berbasis peristiwa bernama SqlServerExtensionPermissionProvider ada di bawah Microsoft\SqlServerExtension.

  3. Buka SQL Server Management Studio dan periksa login bernama NT SERVICE\SqlServerExtension. Pastikan akun diberikan izin dasar berikut:

    • CONNECT SQL
    • VIEW DATABASE STATE
    • VIEW SERVER STATE
  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');
    
    REVERT;
    

    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');
    
    REVERT;
    

Opsional: Kelola akun layanan mesin basis data SQL Server

Gunakan konfigurasi akun layanan default untuk sebagian besar lingkungan. Gunakan prosedur berikut hanya jika Anda perlu menghapus akun layanan mesin database SQL Server dari peran server tetap sysadmin di antara operasi ekstensi.

Untuk menggunakan mode hak istimewa terkecil, akun layanan mesin database SQL Server harus menjadi anggota peran server tetap sysadmin pada setiap instance SQL Server. Keanggotaan ini memungkinkan sistem secara otomatis memberikan atau mencabut izin. Secara default, akun layanan mesin basis data SQL Server adalah anggota dari peran server tetap sysadmin.

Ekstensi Azure untuk SQL Server menjalankan proses sementara yang disebut Deployer.exe sebagai NT AUTHORITY\SYSTEM ketika:

  • Anda mengaktifkan atau menonaktifkan fitur
  • Anda menambahkan atau menghapus instance SQL Server
  • Anda menginstal atau meningkatkan ekstensi

Deployer.exe meniru akun layanan SQL Server saat terhubung ke SQL Server. Setelah tersambung, ia menambahkan atau menghapus izin di server dan peran database tergantung pada fitur mana yang diaktifkan atau dinonaktifkan. Proses ini memastikan bahwa Ekstensi Azure untuk SQL Server menggunakan hak istimewa paling sedikit yang diperlukan.

Jika Anda ingin mengelola proses ini dengan kontrol yang lebih besar, sehingga akun layanan SQL Server bukan anggota sysadmin peran server tetap sepanjang waktu, ikuti langkah-langkah berikut:

  1. Sebelum Anda menginstal atau meningkatkan ekstensi, mengaktifkan atau menonaktifkan fitur, atau menambahkan atau menghapus instance SQL Server, tambahkan sementara akun layanan mesin database SQL Server ke peran server tetap sysadmin.
  2. Izinkan Deployer.exe untuk berjalan setidaknya sekali agar izin dapat diatur.
  3. Hapus akun layanan SQL Server dari peran server tetap sysadmin.

Ulangi prosedur ini setiap kali Anda menginstal atau meningkatkan ekstensi, mengaktifkan atau menonaktifkan fitur, atau menambahkan atau menghapus instance SQL Server. Prosedur ini memungkinkan Deployer.exe pemberian hak istimewa seminimal mungkin yang diperlukan.

Karena Anda harus mengulangi prosedur ini untuk setiap peningkatan ekstensi, pertimbangkan untuk menonaktifkan peningkatan otomatis. Anda kemudian dapat menggunakan skrip yang melakukan langkah-langkah ini dan meningkatkan ekstensi.

Important

Ekstensi Azure untuk SQL Server Deployer.exe memerlukan NT AUTHORITY\SYSTEM agar dapat tersambung ke SQL Server, dengan izin CONNECT SQL baik dalam mode standard dan least privilege. Persyaratan ini ada karena Deployer.exe selalu berjalan di bawah akun LocalSystem, terlepas dari akun layanan mana yang digunakan ekstensi setelah penyediaan.

Jika NT AUTHORITY\SYSTEM tidak dapat tersambung ke SQL Server, Deployer.exe tidak dapat membuat login NT SERVICE\SqlServerExtension atau memberikan izin yang diperlukan. Sebelum Anda mengaktifkan mode hak akses paling minimal, verifikasi bahwa NT AUTHORITY\SYSTEM memiliki login SQL Server aktif dengan izin CONNECT SQL. Untuk memverifikasi, lihat Prasyarat.

Jika akun layanan mesin database SQL Server tidak memiliki peran server tetap sysadmin, izin just-in-time tidak dapat diberikan.

Untuk detail tentang kapan izin ini digunakan, lihat Konfigurasikan akun layanan Windows dan izin untuk Azure Extension for SQL Server.