Az Azure Arc által engedélyezett SQL Server üzemeltetése a legkisebb jogosultsággal

A következőkre vonatkozik:SQL Server

A minimális jogosultságok információbiztonsági elve azt állítja, hogy a fiókok és alkalmazások csak az általuk igényelt adatokhoz és műveletekhez férhetnek hozzá. Az Azure Arc által engedélyezett SQL Serverrel az ügynökbővítmény-szolgáltatást a legkevesebb jogosultsággal futtathatja. Ez a cikk azt ismerteti, hogyan futtatható az ügynökbővítmény-szolgáltatás a legkevésbé jogosultsággal.

Ha úgy szeretné konfigurálni a szolgáltatást, hogy a legkisebb jogosultsággal fusson, kövesse az ebben a cikkben ismertetett lépéseket. A szolgáltatás jelenleg nem fut automatikusan minimális jogosultsággal.

Windows-szolgáltatásfiókok és az SQL Serverhez készült Azure Extension engedélyeinek konfigurálása leírja az ügynökbővítmény által igényelt legkisebb jogosultságokat.

Jegyzet

Jelenleg a rendszer alapértelmezés szerint nem alkalmazza a legkevésbé kiemelt konfigurációt.

A meglévő vagy újabb verziójú 1.1.2859.223 kiszolgálókon végül a legkevésbé kiemelt konfiguráció lesz alkalmazva. Ez a bővítmény 2024 novemberében jelent meg. A minimális jogosultság automatikus alkalmazásának megakadályozása érdekében tiltsa le a bővítményfrissítéseket a következő után 1.1.2859.223.

Miután úgy konfigurálta az ügynökbővítmény-szolgáltatást, hogy a legkisebb jogosultsággal fusson, a NT SERVICE\SqlServerExtension szolgáltatásfiókot használja.

A NT SERVICE\SqlServerExtension fiók egy helyi Windows-szolgáltatásfiók:

  • Az SQL Server azure-bővítménye hozza létre és felügyeli, ha a minimális jogosultsági lehetőség engedélyezve van.
  • Megkapta a minimálisan szükséges engedélyeket és jogosultságokat az SQL Server azure-bővítményének Windows operációs rendszeren való futtatásához. Csak a konfigurációk olvasásához és tárolásához vagy naplók írásához használt mappákhoz és könyvtárakhoz fér hozzá.
  • Engedélyt kapott az SQL Serveren való csatlakozásra és lekérdezésre egy olyan új bejelentkezéssel, amely kifejezetten az adott szolgáltatásfiókhoz szükséges minimális engedélyekkel rendelkezik. A minimális engedélyek az engedélyezett funkcióktól függenek.
  • Frissítve, ha már nincs szükség engedélyekre. A funkció letiltásakor például az engedélyek visszavonásra kerülnek. A visszavonás biztosítja, hogy a már nem szükséges engedélyek ne maradjanak meg.
  • NT SERVICE\SqlServerExtension törlődik Azure SQL Server bővítményének eltávolításakor, vagy ha a minimális jogosultsági konfiguráció le van tiltva.

Előfeltételek

Ez a szakasz a jelen cikkben szereplő példa végrehajtásához szükséges rendszerkövetelményeket és eszközöket azonosítja.

Rendszerkövetelmények

A minimális jogosultsággal rendelkező konfigurációhoz a következőre van szükség:

  • Windows Server 2012 vagy újabb verziók.
  • SQL Server 2012-ben vagy újabb verziókban.
  • A SQL Server szolgáltatásfióknak a sysadmin rögzített kiszolgálói szerepkör tagjának kell lennie.
  • Minden adatbázisnak online állapotúnak és frissíthetőnek kell lennie.

A minimális jogosultsággal rendelkező konfiguráció jelenleg nem támogatott Linux rendszeren.

Az előfeltételekben felsorolt egyéb követelmények továbbra is érvényesek.

SQL Server-szolgáltatásfiók

Alapértelmezés szerint a SQL Server szolgáltatásfiók a sysadmin rögzített kiszolgálói szerepkör tagja.

Ahogy az előfeltételek között szerepel, a SQL Server szolgáltatásfióknak tagjának kell lennie a sysadmin rögzített kiszolgálói szerepkörben az egyes SQL Server-példányokon. Az SQL Server Azure bővítményének van egy Deployer.exe nevű folyamata, amely NT AUTHORITY\SYSTEM néven fut, amikor:

  • A funkciók engedélyezve vannak vagy le vannak tiltva
  • Sql Server-példányok hozzáadása vagy eltávolítása

Jegyzet

Deployer.exe az SQL Server szolgáltatásfiók személyazonosságát ölti magára, amikor csatlakozik az SQL Serverhez. A csatlakozás után engedélyeket ad hozzá vagy távolít el a kiszolgálói és adatbázis-szerepkörökben attól függően, hogy mely funkciók vannak engedélyezve vagy letiltva. Ez a folyamat biztosítja, hogy a SQL Server Azure bővítménye a legkevésbé szükséges jogosultságokat használja. Ezért a SQL Server szolgáltatásfióknak a sysadmin rögzített kiszolgálói szerepkör tagjának kell lennie.

Ha nagyobb kontroll alatt szeretné kezelni ezt a folyamatot, úgy, hogy a SQL Server szolgáltatásfiók ne legyen állandóan tagja a sysadmin rögzített kiszolgálói szerepkörnek, kövesse az alábbi lépéseket:

  1. Ideiglenesen adja hozzá a SQL Server szolgáltatásfiókot a sysadmin rögzített kiszolgálói szerepkörhöz.
  2. Engedélyezze, hogy Deployer.exe legalább egyszer fusson, hogy az engedélyek be legyenek állítva.
  3. Távolítsa el a SQL Server szolgáltatásfiókot a sysadmin rögzített kiszolgálói szerepkörből.

Ismételje meg ezt az eljárást minden alkalommal, amikor a funkciók engedélyezve vannak, le vannak tiltva, vagy SQL Server példányokat ad hozzá, hogy lehetővé tegye Deployer.exe számára a legkevésbé szükséges jogosultságok megadását.

Important

Az SQL Serverhez való Azure bővítmény Deployer.exe számára NT AUTHORITY\SYSTEM szükséges, hogy CONNECT SQL engedéllyel mind standard, mind least privilege módban csatlakozni tudjon az SQL Serverhez. Ez a követelmény azért létezik, mert Deployer.exe mindig a LocalSystem fiók alatt fut, függetlenül attól, hogy a bővítmény melyik szolgáltatásfiókot használja a kiépítés után.

Ha NT AUTHORITY\SYSTEM nem tud csatlakozni SQL Server, Deployer.exe nem tudja létrehozni a NT SERVICE\SqlServerExtension bejelentkezést, vagy nem adhat meg a szükséges engedélyeket. A minimális jogosultsági mód engedélyezése előtt ellenőrizze, hogy NT AUTHORITY\SYSTEM rendelkezik-e aktív SQL Server bejelentkezéssel CONNECT SQL engedéllyel. Tekintse meg az ellenőrzési lépések előfeltételeit .

Eszközök

A cikkben ismertetett lépések végrehajtásához a következő eszközökre van szüksége:

A minimális jogosultság engedélyezése

  1. Jelentkezzen be az Azure CLI-vel.

    az login
    
  2. Ellenőrizze a arcdata bővítmény verzióját.

    az extension list -o table
    

    Ha az eredmények tartalmazzák a arcdatatámogatott verzióját, ugorjon a következő lépésre.

    Szükség esetén telepítse vagy frissítse a arcdata Azure CLI-bővítményt.

    A bővítmény telepítése:

    az extension add --name arcdata
    

    A bővítmény frissítése:

    az extension update --name arcdata
    
  3. A minimális jogosultság engedélyezése az Azure CLI-vel.

    A minimális jogosultság engedélyezéséhez állítsa a LeastPrivilege funkciójelzőt true. A feladat elvégzéséhez futtassa a következő parancsot a <resource-group> és <machine-name>frissített értékeivel.

    az sql server-arc extension feature-flag set --name LeastPrivilege --enable true --resource-group <resource-group> --machine-name <machine-name>
    

    Az alábbi parancs például engedélyezi a myserver nevű kiszolgáló minimális jogosultságát egy myrgnevű erőforráscsoportban:

    az sql server-arc extension feature-flag set --name LeastPrivilege --enable true --resource-group myrg --machine-name myserver
    

A legkisebb jogosultságok beállításának ellenőrzése

Annak ellenőrzése, hogy az Azure Arc által engedélyezett SQL Server úgy van-e konfigurálva, hogy a legkisebb jogosultsággal fusson:

  1. A Windows-szolgáltatásokban keresse meg Microsoft SQL Server Extension Service szolgáltatást. Ellenőrizze, hogy a szolgáltatás szolgáltatásfiókként fut-e NT SERVICE\SqlServerExtension.

  2. Nyissa meg a feladatütemezőt a kiszolgálón, és ellenőrizze, hogy SqlServerExtensionPermissionProvider nevű eseményvezérelt tevékenység jön-e létre a Microsoft\SqlServerExtension alatt.

    Jegyzet

    A 2024. júliusi kiadás előtt egy ütemezett feladat volt SqlServerExtensionPermissionProvider, amely óránként futott.

  3. Nyissa meg az SQL Server Management Studiót, és ellenőrizze a NT SERVICE\SqlServerExtensionnevű bejelentkezést. Ellenőrizze, hogy a fiókhoz az alábbi engedélyek tartoznak-e:

    • SQL csatlakoztatása
    • Adatbázis állapotának megtekintése
    • Kiszolgáló állapotának megtekintése
  4. Ellenőrizze az engedélyeket a következő lekérdezésekkel:

    A kiszolgálószintű engedélyek ellenőrzéséhez futtassa a következő lekérdezést:

    EXECUTE AS LOGIN = 'NT SERVICE\SqlServerExtension';
    
    SELECT *
    FROM fn_my_permissions(NULL, 'SERVER');
    
    REVERT;
    

    Az adatbázisszintű engedélyek ellenőrzéséhez cserélje le <database name> az egyik adatbázis nevére, és futtassa a következő lekérdezést:

    EXECUTE AS LOGIN = 'NT SERVICE\SqlServerExtension';
    
    USE <database name>;
    SELECT * FROM fn_my_permissions(NULL, 'database');
    
    REVERT;