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

V současné době není ve výchozím nastavení použita nejméně privilegovaná konfigurace.

Stávající servery s verzí 1.1.2859.223 rozšíření nebo vyšší budou mít nakonec použitou konfiguraci s nejnižšími privilegovanými oprávněními. Toto rozšíření bylo vydáno v listopadu 2024. Pokud chcete zabránit automatické aplikaci nejnižších oprávnění, zablokujte upgrady rozšíření po 1.1.2859.223.

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ž funkci zakážete. Odvolání zajistí, že po tom, co už nejsou potřebná, nezůstanou žádná oprávnění.
  • NT SERVICE\SqlServerExtension se odebere při odinstalaci rozšíření Azure pro SQL Server nebo při zakázání konfigurace nejnižších 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ších verzích.
  • SQL Server verze 2012 nebo novější.
  • Účet služby SQL Server musí být členem sysadmin pevné role serveru.
  • Všechny databáze musí být online a aktualizovatelné.

Konfigurace s nejnižšími oprávněními se v současné době nepodporuje v Linuxu.

Další požadavky uvedené v části Požadavky stále platí.

Účet služby SQL Serveru

Ve výchozím nastavení je účet služby SQL Server členem pevné role serveru sysadmin.

Jak je uvedeno v požadavcích, musí být účet služby SQL Server členem sysadmin pevné role serveru v každé instanci SQL Server. Rozšíření Azure pro SQL Server má proces s názvem Deployer.exe, který běží 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.

Poznámka

Deployer.exe převezme identitu účtu služby SQL Server při připojení k SQL Serveru. Po připojení přidá nebo odebere oprávnění v serverových a databázových rolích v závislosti na tom, které funkce jsou povolené nebo zakázané. Tento proces zajišťuje, aby rozšíření Azure pro SQL Server používalo minimální požadovaná oprávnění. Účet služby SQL Server proto musí být členem sysadmin pevné role serveru.

Pokud chcete tento proces spravovat s větší kontrolou, aby účet služby SQL Server nebyl členem sysadmin pevné role serveru po celou dobu, postupujte takto:

  1. Dočasně přidejte účet služby SQL Server do role pevného serveru sysadmin.
  2. Povolte spuštění Deployer.exe alespoň jednou, aby byla nastavena oprávnění.
  3. Odeberte účet služby SQL Server z pevné role serveru sysadmin.

Tento postup opakujte pokaždé, když jsou funkce povoleny nebo zakázány nebo jsou přidány instance SQL Serveru, aby Deployer.exe mohlo udělit co nejnižší potřebná oprávnění.

Důležité

Rozšíření Azure pro SQL Server Deployer.exe vyžaduje, aby se NT AUTHORITY\SYSTEM mohl připojit k SQL Server s oprávněním CONNECT SQL v režimech standard i least privilege. Tento požadavek existuje, protože Deployer.exe vždy běží pod LocalSystem účtem bez ohledu na to, který účet služby rozšíření používá po zřízení.

Pokud se NT AUTHORITY\SYSTEM nemůže připojit k SQL Server, Deployer.exe nemůže vytvořit přihlášení NT SERVICE\SqlServerExtension nebo udělit požadovaná oprávnění. Před povolením režimu nejnižších oprávnění ověřte, že NT AUTHORITY\SYSTEM má aktivní SQL Server přihlášení s oprávněním CONNECT SQL. Postup ověření najdete v části Požadavky .

Nářadí

K dokončení kroků v tomto článku potřebujete následující nástroje:

Povolení nejnižších oprávnění

  1. Přihlaste se pomocí Azure CLI.

    az login
    
  2. 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
    
  3. Povolení nejnižšího oprávnění pomocí Azure CLI

    Pokud chcete povolit nejnižší oprávnění, nastavte příznak funkce LeastPrivilege na true. 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ázvem myrg:

    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:

  1. 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.

  2. Otevřete plánovač úloh na serveru a zkontrolujte, jestli je v části SqlServerExtensionPermissionProvider vytvořen úkol řízený událostmi s názvem Microsoft\SqlServerExtension.

    Poznámka

    Před červencovým vydáním v roce 2024 byl SqlServerExtensionPermissionProvider naplánovaný úkol, který běžel každou hodinu.

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

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