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
I server esistenti con l’estensione da novembre 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 di novembre 2024.
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
- L'account del servizio SQL Server deve essere membro del ruolo predefinito del
sysadmin
server - Tutti i database devono essere online e aggiornabili
La configurazione con privilegi minimi non è attualmente supportata in Linux.
Altri requisiti, come indicato in Prerequisiti - SQL Server abilitato da Azure Arc sono ancora applicabili.
Strumenti
Per completare i passaggi in questo articolo, sono necessari gli strumenti seguenti:
- Interfaccia della riga di comando di Azure
arcdata
Estensione dell'interfaccia della riga di comando di Azure1.5.9
versione o successiva- Estensione Azure per SQL Server versione
1.1.2504.99
o successiva
Abilitare i privilegi minimi
Accedere con l'interfaccia della riga di comando di Azure.
az login
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
Abilitare privilegi minimi con l'interfaccia della riga di comando di Azure.
Per abilitare i privilegi minimi, impostare il flag di funzionalità
LeastPrivilege
sutrue
. 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 denominatomyrg
: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:
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
.Aprire l'utilità di pianificazione nel server e verificare che venga creato un task guidato dagli eventi con nome
SqlServerExtensionPermissionProvider
inMicrosoft\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
inMicrosoft\SqlServerExtension
.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
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");