Sdílet prostřednictvím


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:

  1. Dočasně přidejte účet služby SYSTÉMU SQL Server do role serveru sysadmin.
  2. Povolte spuštění Deployer.exe alespoň jednou, aby byla nastavena oprávnění.
  3. 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:

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 Microsoft\SqlServerExtensionvytvořen úkol řízený událostmi s názvem SqlServerExtensionPermissionProvider .

    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\SqlServerExtensionvytvořen naplánovaný úkol s názvem SqlServerExtensionPermissionProvider .

  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");
    

    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");