Gestire SQL Server abilitato da Azure Arc con privilegi minimi

Si applica a:SQL Server

Il principio di sicurezza delle informazioni dei privilegi minimi afferma che gli account e le applicazioni hanno accesso solo ai dati e alle operazioni necessari. Con SQL Server abilitato da Azure Arc, è possibile eseguire il servizio di estensione dell'agente con privilegi minimi. Questo articolo illustra come eseguire il servizio di estensione dell'agente con privilegi minimi.

Configurare gli account del servizio Windows e le autorizzazioni per l'estensione Azure per SQL Server descrive le autorizzazioni con privilegi minimi per il servizio di estensione dell'agente.

Minimo privilegio abilitato di default

Il privilegio minimo è abilitato di default nelle seguenti versioni di Azure Extension for SQL Server:

  • Versione 1.1.3453.436
  • Versione 1.1.3518.465 e versioni successive

Il privilegio minimo non è abilitato di default nelle versioni precedenti a 1.1.3453.436 o nelle versioni 1.1.3464.439, 1.1.3494.451 e 1.1.3500.453. Per queste versioni, segui i passaggi di questo articolo per abilitare manualmente il minor privilegio.

Nota

Per i server esistenti che utilizzano 1.1.2859.223 o versioni successive, quando l'aggiornamento automatico è abilitato, la configurazione a privilegio minimo viene applicata come parte degli aggiornamenti automatici. Per evitare l'applicazione automatica della configurazione dei privilegi minimi, blocca gli aggiornamenti dell'estensione dopo 1.1.2859.223.

Quando il minimo privilegio è abilitato, l'estensione Azure per SQL Server crea e gestisce NT SERVICE\SqlServerExtension automaticamente come account locale di servizio Windows e login SQL Server:

  • L'estensione concede all'account solo i permessi Windows necessari per leggere e memorizzare i registri di configurazione e scrittura.
  • L'estensione concede al login i permessi minimi di SQL Server richiesti dalle funzionalità abilitate.
  • L'estensione revoca i permessi quando non sono più necessari, ad esempio quando disabiliti una funzione.
  • L'estensione rimuove l'account quando disinstalli Azure Extension for SQL Server o disabiliti il privilegio minimo.

Prerequisiti

Questa sezione identifica i requisiti di sistema e gli strumenti necessari per abilitare o disabilitare il privilegio minimo.

Requisiti di sistema

Configurare il privilegio minimo richiede:

  • Windows Server 2016 o versioni successive.
  • SQL Server 2014 (12.x) o versioni successive.
  • L'account del servizio SQL Server deve essere membro del ruolo predefinito del server sysadmin.
  • Tutti i database devono essere online e aggiornabili.

Attualmente il minimo privilegio non è supportato su Linux.

Strumenti

Per completare i passaggi in questo articolo, sono necessari gli strumenti seguenti:

Abilita o disabilita il minor privilegio

  1. Accedere tramite l'interfaccia della riga di comando di Azure.

    az login
    
  2. Verificare la versione dell'estensione arcdata.

    az extension list -o table
    

    Se i risultati includono una versione supportata di arcdata, passare al passaggio successivo.

    Se necessario, installare o aggiornare l'estensione dell'interfaccia della riga di comando di Azure arcdata.

    Per installare l'estensione:

    az extension add --name arcdata
    

    Per aggiornare l'estensione:

    az extension update --name arcdata
    
  3. Abilitare privilegi minimi con l'interfaccia della riga di comando di Azure.

    Per abilitare i privilegi minimi, impostare il flag di funzionalità LeastPrivilege su true. Per disabilitare, imposta il flag della funzione su false. Per completare questa attività, esegui il seguente comando con i valori corrispondenti a <resource-group> e <machine-name>.

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

    Ad esempio, il comando seguente abilita i privilegi minimi per un server denominato myserver in un gruppo di risorse denominato myrg:

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

Verificare la configurazione dei privilegi minimi

Per verificare che l'istanza di SQL Server abilitata tramite Azure Arc sia configurata per l'esecuzione con privilegi minimi:

  1. In Servizi, localizza Microsoft SQL Server Extension Service. Verificare che il servizio venga eseguito con l'account di servizio NT SERVICE\SqlServerExtension.

  2. Apri il Task Scheduler sul server. Verifica che un compito guidato dagli eventi denominato SqlServerExtensionPermissionProvider esista sotto Microsoft\SqlServerExtension.

  3. Aprire SQL Server Management Studio e controllare l'account di accesso denominato NT SERVICE\SqlServerExtension. Verifica che all'account siano assegnati questi permessi di base:

    • CONNECT SQL
    • VIEW DATABASE STATE
    • VIEW SERVER STATE
  4. Convalidare le autorizzazioni con le query seguenti:

    Per verificare le autorizzazioni a livello di server, eseguire la query seguente:

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

    Per verificare le autorizzazioni a livello di database, sostituire <database-name> con il nome di uno dei database ed eseguire la query seguente:

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

Opzionale: Gestisci l'account del servizio del motore di database di SQL Server

Usa la configurazione predefinita dell'account di servizio per la maggior parte degli ambienti. Usa la procedura seguente solo se devi rimuovere l'account del servizio Motore di database di SQL Server dal ruolo predefinito del server sysadmin tra un'operazione di estensione e l'altra.

Per utilizzare la modalità con privilegi minimi, l'account del servizio del motore di database di SQL Server deve essere membro del ruolo del server predefinito sysadmin su ogni istanza di SQL Server. Questa appartenenza consente al sistema di concedere o revocare automaticamente i permessi. Per impostazione predefinita, l'account del servizio Motore di database di SQL Server è membro del ruolo del server fisso sysadmin.

L'estensione di Azure per SQL Server esegue un processo temporaneo denominato Deployer.exe come NT AUTHORITY\SYSTEM quando:

  • Abiliti o disabiliti le funzionalità
  • Si aggiungono o si rimuovono istanze di SQL Server
  • Installi o aggiorni l'estensione

Deployer.exe rappresenta l'account del servizio SQL Server quando si connette a SQL Server. Dopo la connessione, aggiunge o rimuove le autorizzazioni nei ruoli del server e del database a seconda delle funzionalità abilitate o disabilitate. Questo processo garantisce che l'estensione Azure per SQL Server usi i privilegi minimi necessari.

Se si vuole gestire questo processo con un maggiore controllo, in modo che l'account del servizio SQL Server non sia membro del sysadmin ruolo predefinito del server, seguire questa procedura:

  1. Prima di installare o aggiornare l'estensione, abilitare o disabilitare una funzionalità, o aggiungere o rimuovere un'istanza di SQL Server, aggiungi temporaneamente l'account del servizio del motore database SQL Server al ruolo di server fisso sysadmin.
  2. Consentire Deployer.exe l'esecuzione almeno una volta in modo che siano impostate le autorizzazioni.
  3. Rimuovere l'account del servizio SQL Server dal ruolo predefinito del server sysadmin.

Ripeti questa procedura ogni volta che installi o aggiorni l'estensione, abiliti o disabiliti una funzionalità, o aggiungi o rimuovi un'istanza di SQL Server. Questa procedura consente Deployer.exe di concedere il minimo di privilegi richiesti.

Poiché devi ripetere questa procedura per ogni aggiornamento delle estensioni, considera di disabilitare gli aggiornamenti automatici. Puoi poi usare uno script che esegue questi passaggi e aggiorna l'estensione.

Importante

L'estensione Azure per SQL Server Deployer.exe richiede che NT AUTHORITY\SYSTEM sia in grado di connettersi a SQL Server, con l'autorizzazione CONNECT SQL, sia nelle modalità standard che in least privilege. Questo requisito esiste perché Deployer.exe viene sempre eseguito sotto l'account LocalSystem, indipendentemente dall'account usato dall'estensione dopo il provisioning.

Se non riesce a connettersi a SQL Server, non è in grado di creare l'account di accesso /> NT AUTHORITY\SYSTEM abbia un account di accesso attivo SQL Server con autorizzazione /CONNECT SQL. Per verificare, vedi Prerequisiti.

Se l'account del servizio del motore di database di SQL Server non dispone del ruolo predefinito del server sysadmin, non è possibile concedere le autorizzazioni JIT.

Per dettagli su quando questi permessi vengono utilizzati, vedi Configura account e permessi di servizio Windows per Azure Extension for SQL Server.