Provoz SQL Serveru povoleného službou Azure Arc s nejnižšími oprávněními
platí pro:SQL Server
Princip zabezpečení informací s nejnižšími oprávněními potvrzuje, že účty a aplikace mají přístup pouze k datům a operacím, které vyžadují. S SQL Serverem povoleným službou Azure Arc můžete spustit službu rozšíření agenta s nejnižšími oprávněními. Tento článek vysvětluje, jak spustit službu rozšíření agenta s nejnižšími možnými oprávněními.
Pokud chcete volitelně nakonfigurovat službu tak, aby běžela s nejnižšími oprávněními, postupujte podle kroků v tomto článku. V současné době se služba nespustí automaticky s nejnižšími oprávněními.
Konfigurace účtů a oprávnění služby Windows pro rozšíření Azure pro SQL Server popisuje nejnižší oprávnění pro službu rozšíření agenta.
Poznámka
Stávající servery s rozšířením od vydání z listopadu 2024 nebo pozdějšího budou mít automaticky aplikovanou nejméně privilegovanou konfiguraci. K této aplikaci dojde postupně.
Aby se zabránilo automatické aplikaci principu nejnižších oprávnění, zablokujte upgrady rozšíření na listopadovou verzi 2024.
Jakmile nakonfigurujete službu rozšíření agenta tak, aby běžela s nejnižšími oprávněními, použije účet služby NT Service\SQLServerExtension
.
Účet NT Service\SQLServerExtension
je místní účet služby systému Windows:
- Vytvoření a správa rozšířením Azure pro SQL Server, pokud je povolená možnost nejnižšího oprávnění.
- Udělili minimální požadovaná oprávnění a oprávnění ke spuštění rozšíření Azure pro službu SQL Serveru v operačním systému Windows. Má přístup pouze ke složkám a adresářům používaným ke čtení a ukládání konfigurace nebo zápisu protokolů.
- Uděleno oprávnění pro připojení a dotazování na SQL Server s novým přihlášením speciálně pro tento účet služby, který má minimální požadovaná oprávnění. Minimální oprávnění závisí na povolených funkcích.
- Aktualizováno, když už oprávnění nejsou potřebná. Oprávnění se například odvolají, když zakážete funkci, zakážete konfiguraci nejnižších oprávnění nebo odinstalujete rozšíření Azure pro SQL Server. Odvolání zajistí, že po tom, co už nejsou potřebná, nezůstanou žádná oprávnění.
Požadavky
Tato část popisuje systémové požadavky a nástroje, které potřebujete k dokončení příkladu v tomto článku.
Požadavky na systém
Konfigurace s nejnižšími oprávněními vyžaduje:
- Windows Server 2012 nebo novější
- SQL Server 2012 nebo novější
- Účet služby SQL Serveru musí být členem
sysadmin
pevné role serveru. - Všechny databáze musí být online a aktualizovatelné.
Konfigurace s nejnižším oprávněním se v současné době nepodporuje v Linuxu.
Další požadavky uvedené v Požadavky – SQL Server povolený službou Azure Arc stále platí.
Účet služby SQL Serveru
Ve výchozím nastavení je účet služby SYSTÉMU SQL Server členem sysadmin
pevné role serveru.
Jak je uvedeno v požadavcích, musí být účet služby SQL Serveru členem sysadmin
pevné role serveru v každé instanci SQL Serveru. Rozšíření Azure pro SQL Server má proces označovaný jako Deployer.exe
, který se dočasně spouští jako NT AUTHORITY\SYSTEM
v následujících případech:
- Funkce jsou povolené nebo zakázané.
- Instance SQL Serveru se přidají nebo odeberou.
Deployer.exe
zosobní účet služby SQL Serveru pro připojení k SQL Serveru a přidání nebo odebrání oprávnění v rolích serveru a databáze v závislosti na tom, které funkce jsou povolené nebo zakázané, aby se zajistilo, že rozšíření Azure pro SQL Server používá nejnižší požadovaná oprávnění. Chcete-li tato oprávnění upravit, musí být účet služby SYSTÉMU SQL Server členem role serveru sysadmin
.
Pokud chcete tento proces spravovat s větší kontrolou, aby účet služby SQL Server nebyl členem role serveru sysadmin po celou dobu, postupujte takto:
- Dočasně přidejte účet služby SYSTÉMU SQL Server do role serveru sysadmin.
- Povolte spuštění
Deployer.exe
alespoň jednou, aby byla nastavena oprávnění. - Odeberte účet služby SQL Serveru z role správce systému.
Tento postup opakujte vždy, když jsou povolené nebo zakázané funkce nebo se přidají instance SQL Serveru, aby Deployer.exe
udělila nejnižší požadovaná oprávnění.
Nářadí
K dokončení kroků v tomto článku potřebujete následující nástroje:
- Azure CLI
-
arcdata
rozšíření Azure CLI verze1.5.9
nebo novější - Rozšíření Azure pro verzi SQL Serveru
1.1.2504.99
nebo novější
Povolení nejnižších oprávnění
Přihlaste se pomocí Azure CLI.
az login
Ověřte verzi rozšíření
arcdata
.az extension list -o table
Pokud výsledky obsahují podporovanou verzi
arcdata
, přejděte k dalšímu kroku.V případě potřeby nainstalujte nebo aktualizujte rozšíření
arcdata
Azure CLI.Instalace rozšíření:
az extension add --name arcdata
Aktualizovat rozšíření:
az extension update --name arcdata
Povolení nejnižšího oprávnění pomocí Azure CLI
Pokud chcete povolit nejnižší oprávnění, nastavte příznak funkce
LeastPrivilege
natrue
. Chcete-li dokončit tuto úlohu, spusťte následující příkaz s aktualizovanými hodnotami pro<resource-group>
a<machine-name>
.az sql server-arc extension feature-flag set --name LeastPrivilege --enable true --resource-group <resource-group> --machine-name <machine-name>
Následující příkaz například povolí nejnižší oprávnění pro server s názvem
myserver
ve skupině prostředků s názvemmyrg
:az sql server-arc extension feature-flag set --name LeastPrivilege --enable true --resource-group myrg --machine-name myserver
Ověření konfigurace nejnižších oprávnění
Pokud chcete ověřit, že sql Server povolený službou Azure Arc je nakonfigurovaný tak, aby běžel s nejnižšími oprávněními:
Ve službách Systému Windows vyhledejte službu Microsoft SQL Server Extension Service. Ověřte, že je služba spuštěná pod účtem služby
NT Service\SqlServerExtension
.Otevřete plánovač úloh na serveru a zkontrolujte, jestli je v
Microsoft\SqlServerExtension
vytvořen úkol řízený událostmi s názvemSqlServerExtensionPermissionProvider
.Poznámka
Před verzí z července 2024 je
SqlServerExtensionPermissionProvider
naplánovanou úlohou. Koná se každou hodinu.Otevřete plánovač úloh na serveru a zkontrolujte, jestli je v
Microsoft\SqlServerExtension
vytvořen naplánovaný úkol s názvemSqlServerExtensionPermissionProvider
.Otevřete APLIKACI SQL Server Management Studio a zkontrolujte přihlašovací jméno
NT Service\SqlServerExtension
. Ověřte, že má účet přiřazená tato oprávnění:- Připojit SQL
- Zobrazit stav databáze
- Zobrazit stav serveru
Ověřte oprávnění pomocí následujících dotazů:
Pokud chcete ověřit oprávnění na úrovni serveru, spusťte následující dotaz:
EXECUTE AS LOGIN = 'NT Service\SqlServerExtension' SELECT * FROM fn_my_permissions (NULL, 'SERVER");
Pokud chcete ověřit oprávnění na úrovni databáze, nahraďte
<database name>
názvem jedné z vašich databází a spusťte následující dotaz:EXECUTE AS LOGIN = 'NT Service\SqlServerExtension' USE <database name>; SELECT * FROM fn_my_permissions (NULL, 'database");