Condividi tramite


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.

Per configurare facoltativamente il servizio per l'esecuzione con privilegi minimi, seguire i passaggi descritti in questo articolo. Attualmente, il servizio non viene eseguito in automatico 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.

Nota

A partire dalla versione di agosto 2024, tutte le estensioni distribuite tramite l'onboarding automatico avranno automaticamente la configurazione dei privilegi minimi.

I server esistenti con estensione 1.1.2717.190 (giugno 2024) o versioni successive avranno automaticamente la configurazione con privilegi minimi. Questa applicazione verrà eseguita gradualmente.

Per impedire l'applicazione automatica dei privilegi minimi, bloccare gli aggiornamenti dell'estensione alla versione 1.1.2717.190 o successiva.

Dopo aver configurato il servizio di estensione dell'agente per l'esecuzione con privilegi minimi, viene usato l'account del servizio NT Service\SQLServerExtension.

L'account NT Service\SQLServerExtension è un account del servizio di Windows locale:

  • Creato e gestito dall'estensione Azure per SQL Server quando l'opzione con privilegi minimi è abilitata.
  • A cui sono stati concessi le autorizzazioni e i privilegi minimi necessari per eseguire l'estensione Azure per il servizio SQL Server nel sistema operativo Windows. Dispone dell'accesso solo a cartelle ed elenchi usati per leggere e archiviare log di configurazione o scrittura.
  • A cui è stata concessa l'autorizzazione per connettersi ed eseguire query in SQL Server con un nuovo account di accesso specifico per l'account del servizio che dispone delle autorizzazioni minime necessarie. Le autorizzazioni minime dipendono dalle funzionalità abilitate.
  • Aggiornato quando le autorizzazioni non sono più necessarie. Ad esempio, le autorizzazioni vengono revocate quando si disabilita una funzionalità, si disabilita la configurazione con privilegi minimi o si disinstalla l'estensione Azure per SQL Server. La revoca garantisce che non rimangano autorizzazioni dopo che non sono più necessarie.

Prerequisiti

Questa sezione identifica i requisiti di sistema e gli strumenti necessari per completare l'esempio in questo articolo.

Requisiti di sistema

La configurazione con privilegi minimi richiede:

  • Windows Server 2012 o versioni successive
  • SQL Server 2012 o versione successiva

La configurazione con privilegi minimi non è attualmente supportata in Linux.

Strumenti

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

Abilitare i privilegi minimi

  1. Accedere con 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 completare questo task, eseguire il comando seguente con i valori aggiornati per <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 abilitato da Azure Arc sia configurata per l'esecuzione con privilegi minimi:

  1. Nei servizi di Windows, ricercare il Servizio di estensione di Microsoft SQL Server. Verificare che il servizio sia in esecuzione nell'account del servizio NT Service\SqlServerExtension. 

  2. Aprire l'utilità di pianificazione nel server e verificare che venga creato un task guidato dagli eventi con nome SqlServerExtensionPermissionProvider in Microsoft\SqlServerExtension.

    Nota

    Prima della versione di luglio 2024, SqlServerExtensionPermissionProvider è un'attività pianificata. Viene eseguito ogni ora.

    Aprire l'utilità di pianificazione nel server e verificare che venga creato un task pianificato con nome SqlServerExtensionPermissionProvider in Microsoft\SqlServerExtension.

  3. Aprire SQL Server Management Studio e controllare l'account di accesso denominato NT Service\SqlServerExtension. Verificare che all'account siano assegnate queste autorizzazioni:

    • Connessione a SQL
    • Visualizzazione dello stato del database
    • Visualizzazione dello stato del server
  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");
    

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