Använda SQL Server som aktiveras av Azure Arc med minsta möjliga behörighet

gäller för:SQL Server

Principen för informationssäkerhet med minsta behörighet anger att konton och program endast har åtkomst till de data och åtgärder som krävs. Med SQL Server aktiverat av Azure Arc kan du köra agenttilläggstjänsten med minsta möjliga behörighet. Den här artikeln beskriver hur du kör agenttilläggstjänsten med minsta möjliga behörighet.

Konfigurera Windows-tjänstkonton och behörigheter för Azure-tillägget för SQL Server beskriver de minst behörigheter som gäller för agenttilläggstjänsten.

Minsta privilegium aktiverat som standard

Minsta privilegium är aktiverat som standard i följande versioner av Azure Extension för SQL Server:

  • Version 1.1.3453.436
  • Version 1.1.3518.465 och senare versioner

Minsta privilegium är inte aktiverat som standard i versioner äldre än 1.1.3453.436 eller i versionerna 1.1.3464.439, 1.1.3494.451 och 1.1.3500.453. För dessa versioner, följ stegen i denna artikel för att manuellt aktivera least privilege.

Obs

För befintliga servrar som använder 1.1.2859.223 eller senare versioner, när automatisk uppgradering är aktiverad, tillämpas så småningom minstprivilegie-konfigurationen som en del av automatiska uppgraderingar. För att förhindra automatisk tillämpning av konfigurationen med minsta privilegium, blocka tilläggsuppgraderingar efter 1.1.2859.223.

När least privilege är aktiverat skapar och hanterar NT SERVICE\SqlServerExtension Azure Extension for SQL Server automatiskt som ett lokalt Windows-tjänstekonto och SQL Server-inloggning:

  • Tillägget ger kontot endast de Windows-behörigheter som krävs för att läsa och lagra konfiguration samt skriva loggar.
  • Tillägget ger inloggningen de minsta SQL Server-behörigheter som krävs av de aktiverade funktionerna.
  • Tillägget återkallar behörigheter när de inte längre behövs, till exempel när du inaktiverar en funktion.
  • Tillägget tar bort kontot när du avinstallerar Azure Extension för SQL Server eller inaktiverar least privilege.

Förutsättningar

Detta avsnitt identifierar systemkraven och verktygen du behöver för att aktivera eller inaktivera least privilege.

Systemkrav

Att konfigurera least privilege kräver:

  • Windows Server 2016 eller senare versioner.
  • SQL Server 2014 (12.x) eller senare versioner.
  • SQL Server-tjänstkontot måste vara medlem i sysadmin fast serverroll.
  • Alla databaser måste vara online och uppdaterabara.

Least privilege stöds för närvarande inte på Linux.

Arbetsredskap

För att slutföra stegen i den här artikeln behöver du följande verktyg:

  • Azure CLI
  • arcdata Azure CLI-tillägg version 1.5.9 eller senare
  • Azure Extension för SQL Server-versionen 1.1.2859.223 eller senare versioner för att manuellt aktivera least privilege.

Aktivera eller inaktivera lägsta behörighet

  1. Logga in med Azure CLI.

    az login
    
  2. Kontrollera arcdata-tilläggsversionen.

    az extension list -o table
    

    Om resultatet innehåller en version av arcdatasom stöds går du vidare till nästa steg.

    Om det behövs installerar eller uppdaterar du arcdata Azure CLI-tillägget.

    Så här installerar du tillägget:

    az extension add --name arcdata
    

    Så här uppdaterar du tillägget:

    az extension update --name arcdata
    
  3. Aktivera lägsta behörighet med Azure CLI.

    Om du vill aktivera lägsta behörighet anger du LeastPrivilege-funktionsflaggan till true. För att inaktivera, ställ in funktionsflaggan till false. För att slutföra denna uppgift, kör följande kommando med dina värden för <resource-group> och <machine-name>.

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

    Följande kommando aktiverar till exempel lägsta behörighet för en server med namnet myserver i en resursgrupp med namnet myrg:

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

Verifiera konfiguration med minsta möjliga behörighet

Så här kontrollerar du att din SQL Server som är aktiverad av Azure Arc har konfigurerats att köras med minst behörighet:

  1. Under Services, hitta Microsoft SQL Server Extension Service. Kontrollera att tjänsten körs under servicekontot NT SERVICE\SqlServerExtension .

  2. Öppna Task Scheduler på servern. Kontrollera att en händelsestyrd uppgift med namnet SqlServerExtensionPermissionProvider finns under Microsoft\SqlServerExtension.

  3. Öppna SQL Server Management Studio och kontrollera inloggningen med namnet NT SERVICE\SqlServerExtension. Verifiera att kontot har tilldelats dessa grundläggande behörigheter:

    • CONNECT SQL
    • VIEW DATABASE STATE
    • VIEW SERVER STATE
  4. Verifiera behörigheterna med följande frågor:

    Kör följande fråga för att verifiera behörigheter på servernivå:

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

    Om du vill verifiera behörigheter på databasnivå ersätter du <database-name> med namnet på en av dina databaser och kör följande fråga:

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

Valfritt: Hantera SQL Server databasmotorns tjänstekonto

Använd standardkonfigurationen av tjänstekontot för de flesta miljöer. Använd följande procedur endast om du behöver ta bort SQL Server-databasmotorns tjänstekonto från sysadmin-rollen med fast server mellan tilläggsoperationer.

För att använda läget med lägsta behörighet måste tjänstkontot för databasmotorn i SQL Server vara medlem i den fasta serverrollen sysadmin på varje SQL Server-instans. Detta medlemskap gör det möjligt för systemet att automatiskt bevilja eller återkalla behörigheter. Som standard är SQL Server Database Engine-tjänstkontot medlem i den fasta serverrollen sysadmin.

Azure-tillägget för SQL Server kör en tillfällig process som kallas Deployer.exeNT AUTHORITY\SYSTEM när:

  • Du aktiverar eller inaktiverar funktioner
  • Du lägger till eller tar bort SQL Server-instanser
  • Du installerar eller uppgraderar tillägget

Deployer.exe personifierar SQL Server-tjänstkontot när den ansluter till SQL Server. När den är ansluten lägger den till eller tar bort behörigheter i server- och databasrollerna beroende på vilka funktioner som är aktiverade eller inaktiverade. Den här processen säkerställer att Azure-tillägget för SQL Server använder de lägsta behörigheter som krävs.

Om du vill hantera den här processen med mer kontroll, så att SQL Server tjänstkontot inte är medlem i sysadmin fast serverroll hela tiden följer du dessa steg:

  1. Innan du installerar eller uppgraderar tillägget, aktiverar eller inaktiverar en funktion, eller lägger till eller tar bort en SQL Server-instans, lägg tillfälligt till SQL Server-databasmotorns tjänstekonto i sysadmin-funktionen med fast server.
  2. Tillåt att Deployer.exe körs minst en gång så att behörigheterna ställs in.
  3. Ta bort SQL Server-tjänstkontot från sysadmin fast serverroll.

Upprepa denna propus varje gång du installerar eller uppgraderar tillägget, aktiverar eller inaktiverar en funktion, eller lägger till eller tar bort en SQL Server-instans. Denna procedur gör det möjligt för Deployer.exe att bevilja de minsta privilegier som krävs.

Eftersom du måste upprepa denna procedur för varje tilläggsuppgradering, överväg att inaktivera automatiska uppgraderingar. Du kan sedan använda ett skript som utför dessa steg och uppgraderar tillägget.

Important

Azure-tillägget för SQL Server Deployer.exe kräver NT AUTHORITY\SYSTEM för att kunna ansluta till SQL Server, med behörigheten CONNECT SQL, både i standard och least privilege lägen. Det här kravet finns eftersom Deployer.exe alltid körs under LocalSystem-kontot, oavsett vilket tjänstkonto som tillägget använder efter konfigurationen.

Om NT AUTHORITY\SYSTEM inte kan ansluta till SQL Server kan Deployer.exe inte skapa NT SERVICE\SqlServerExtension inloggning eller bevilja nödvändiga behörigheter. Innan du aktiverar lägsta behörighetsläge kontrollerar du att NT AUTHORITY\SYSTEM har en aktiv SQL Server inloggning med behörigheten CONNECT SQL. För att verifiera, se Förkunskaper.

Om SQL Server Database Engine-tjänstkontot inte har den fasta serverrollen sysadmin, kan just-in-time-behörigheter inte tilldelas.

För detaljer om när dessa behörigheter används, se Konfigurera Windows-tjänstekonton och behörigheter för Azure Extension för SQL Server.