Errori comuni relativi a Transparent Data Encryption con chiavi gestite dal cliente in Azure Key Vault
Si applica a: Database SQL di Azure Istanza gestita di SQL di Azure Azure Synapse Analytics
Questo articolo descrive come identificare e risolvere problemi di accesso alle chiavi di Azure Key Vault che hanno reso inaccessibile un database configurato per l'uso di Transparent Data Encryption (TDE) con chiavi gestite dai clienti in Azure Key Vault.
Nota
Microsoft Entra ID era precedentemente conosciuto come Azure Active Directory (Azure AD).
Introduzione
Quando la tecnologia TDE è configurata per l'uso di una chiave gestita dal cliente in Azure Key Vault, per mantenere online il database è necessario disporre dell'accesso continuo alla protezione TDE. Se il server SQL logico o l'istanza gestita non hanno più accesso alla protezione TDE gestita dal cliente in Azure Key Vault, un database inizierà a negare tutte le connessioni con il messaggio di errore appropriato e cambierà lo stato in Inaccessibile nel portale di Azure.
Per i primi 30 minuti, se il problema sottostante di accesso alla chiave di Azure Key Vault viene risolto, il database verrà riparato e riportato online automaticamente. Ciò significa che per tutti i casi di interruzione intermittente e temporanea della connessione di rete non è richiesta alcuna azione da parte dell'utente e il database viene riportato online automaticamente. Nella maggior parte dei casi, per risolvere il problema sottostante di accesso alla chiave di Key Vault è necessario l'intervento dell'utente.
Se un database inaccessibile non è più necessario, è possibile eliminarlo immediatamente per evitare l'addebito di costi. Tutte le altre azioni sul database non sono consentite fino a quando non viene ripristinato l'accesso alla chiave di Azure Key Vault e il database non è di nuovo online. Quando un database crittografato con chiavi gestite dal cliente non è accessibile, non è nemmeno possibile modificare l'opzione TDE da chiavi gestite dal cliente a chiavi gestite dal servizio nel server. Questo vincolo è necessario per proteggere i dati da accessi non autorizzati mentre le autorizzazioni alla tecnologia di protezione TDE sono state revocate.
Se un database rimane inaccessibile per più di 30 minuti, non verrà più eseguita la riparazione automatica. Se l'accesso alla chiave di Azure Key Vault richiesta viene ripristinato dopo tale periodo, sarà necessario riconvalidare manualmente l'accesso alla chiave per riportare online il database. Il ripristino dello stato online del database in questo caso può richiedere una notevole quantità di tempo a seconda delle dimensioni del database. Quando il database tornerà di nuovo online, le impostazioni configurate in precedenza, come il gruppo di failover, la cronologia del recupero temporizzato e i tag, andranno perse. È pertanto consigliabile implementare un sistema di notifica basato su Gruppi di azioni che consenta di venire a conoscenza della situazione e di risolvere quanto prima i problemi di accesso sottostanti relativi all'insieme di credenziali delle chiavi.
Errori comuni che causano l'inaccessibilità dei database
La maggior parte dei problemi che si verificano quando si usa TDE con Azure Key Vault è causata da uno degli errori di configurazione seguenti:
L'insieme di credenziali delle chiavi non è disponibile o non esiste
- L'insieme di credenziali delle chiavi è stato eliminato per errore.
- Il firewall è stato configurato per Azure Key Vault, ma non consente l'accesso ai servizi Microsoft.
- Un errore di rete intermittente rende non disponibile l'insieme di credenziali delle chiavi.
Non sono disponibili le autorizzazioni per accedere all'insieme di credenziali delle chiavi o la chiave non esiste
- La chiave è stata accidentalmente eliminata o disabilitata oppure è scaduta.
- L'identità gestita del server (assegnata dal sistema o assegnata dall'utente) è stata eliminata accidentalmente.
- Il server è stato spostato in un'altra sottoscrizione. Una nuova identità gestita (assegnata dal sistema o assegnata dall'utente) deve essere assegnata al server quando questo viene spostato in una sottoscrizione diversa.
- Le autorizzazioni concesse all'identità gestita del server per le chiavi non sono sufficienti (non includono le autorizzazioni Get, Wrap e Unwrap).
- Le autorizzazioni per l'identità gestita del server sono state revocate dall'insieme di credenziali delle chiavi.
Identificare e risolvere gli errori comuni
In questa sezione sono elencati i passaggi di risoluzione dei problemi per gli errori più comuni.
Identità del server mancante
Messaggio di errore
401 AzureKeyVaultNoServerIdentity: l'identità del server non è configurata correttamente nel server. Contattare il supporto tecnico.
Rilevamento
Usare il cmdlet o il comando seguenti per assicurarsi che un'identità sia stata assegnata al server:
Azure PowerShell: Get-AzSqlServer
Interfaccia della riga di comando di Azure: az-sql-server-show
Mitigazione
Usare il cmdlet o il comando seguenti per configurare un'identità gestita assegnata dal sistema o assegnata dall'utente per il server:
Azure PowerShell: Set-AzSqlServer con l'opzione
-AssignIdentity
.Interfaccia della riga di comando di Azure: az sql server update con l'opzione
--assign_identity
.
Nel portale di Azure passare all'insieme di credenziali delle chiavi e quindi passare a Criteri di accesso. Seguire questa procedura:
- Usare il pulsante Aggiungi nuovo per aggiungere l'AppId per il server creato nel passaggio precedente.
- Assegnare le autorizzazioni di chiave seguenti: Get, Wrap e Unwrap
Per ulteriori informazioni, vedere Assegnare un'identità gestita al server.
Importante
Se il server logico per Database SQL di Azure o Istanza gestita di SQL di Azure viene spostato in un nuovo tenant di Microsoft Entra dopo la configurazione iniziale di TDE con l'insieme di credenziali delle chiavi, la configurazione dell'identità gestita deve essere rieseguita nel nuovo tenant.
Insieme di credenziali delle chiavi mancante
Messaggio di errore
503 AzureKeyVaultConnectionFailed - Non è stato possibile completare l'operazione nel server perché i tentativi di connettersi all'insieme di credenziali delle chiavi di Azure non sono riusciti.
Rilevamento
Per identificare l'URI della chiave e l'insieme di credenziali delle chiavi:
Usare il cmdlet o il comando seguente per ottenere l'URI della chiave di un'istanza del server specifica:
Azure PowerShell: Get-AzSqlServerKeyVaultKey
Interfaccia della riga di comando di Azure: az-sql-server-tde-key-show
Usare l'URI della chiave per identificare l'insieme di credenziali delle chiavi:
Azure PowerShell: è possibile esaminare le proprietà della variabile $MyServerKeyVaultKey per ottenere dettagli sull'insieme di credenziali delle chiavi.
Interfaccia della riga di comando di Azure: esaminare la protezione della crittografia del server restituita per ottenere dettagli sull'insieme di credenziali delle chiavi.
Mitigazione
Verificare che l'insieme di credenziali delle chiavi sia disponibile:
- Assicurarsi che l'insieme di credenziali delle chiavi sia disponibile e che il server disponga dell'accesso.
- Se l'insieme di credenziali delle chiavi è protetto da un firewall, assicurarsi che sia selezionata la casella di controllo per consentire ai servizi Microsoft di accedere all'insieme di credenziali delle chiavi.
- Se l'insieme di credenziali delle chiavi è stato eliminato per errore, è necessario ripetere la configurazione dall'inizio.
Chiave mancante
Messaggi di errore
404 ServerKeyNotFound - La chiave server richiesta non è stata trovata nella sottoscrizione corrente.
409 ServerKeyDoesNotExists - La chiave server non esiste.
Rilevamento
Per identificare l'URI della chiave e l'insieme di credenziali delle chiavi:
- Usare il cmdlet o i comandi in Insieme di credenziali delle chiavi mancante per identificare l'URI della chiave aggiunto all'istanza di SQL Server logica. L'esecuzione dei comandi restituisce l'elenco delle chiavi.
Mitigazione
Verificare che la protezione TDE sia presente in Azure Key Vault:
- Identificare l'insieme di credenziali delle chiavi, quindi passare all'insieme di credenziali delle chiavi nel portale di Azure.
- Assicurarsi che la chiave identificata dall'URI della chiave sia presente.
Chiave scaduta
Messaggi di errore
Il server <server_name>
richiede l'autorizzazione dell'utente per la crittografia del servizio di crittografia dell'insieme di credenziali delle chiavi per i criteri di controllo degli accessi in base al ruolo o le autorizzazioni di Azure Key Vault seguenti: Get, WrapKey, UnwrapKey. Concedere le autorizzazioni mancanti all'entità servizio con ID <akv_key>
. Verificare che la chiave sia attiva, non scaduta o disabilitata, impostata con la data di attivazione della chiave non successiva alla data corrente e che il servizi Microsoft attendibile possa ignorare il firewall, se applicabile.
Rilevamento
Per identificare l'URI della chiave e l'insieme di credenziali delle chiavi:
- Usare il portale di Azure, passare a >Oggetti>Chiavi del menu del servizio Insieme di credenziali delle chiavi e controllare la scadenza della chiave.
- Usare il comando PowerShell Get-AzKeyVaultKey.
- Con l'interfaccia della riga di comando di Azure usare il comando az keyvault key show.
Mitigazione
- Controllare la data di scadenza per la chiave dell'insieme di credenziali delle chiavi per verificare che la chiave sia scaduta.
- Estendere la data di scadenza della chiave.
- Riportare online il database selezionando l'opzione Riconvalida chiave con una delle seguenti opzioni:
- Riprovare con la chiave esistente.
- Selezionare la chiave di backup.
Per altre informazioni, vedere Protezione TDE inaccessibile.
Nota
Le chiavi devono essere ruotate un numero specificato di giorni prima della scadenza per fornire tempo sufficiente per rispondere a un errore. Per altre informazioni, vedere Definizioni predefinite di criteri di Azure per l’insieme di credenziali delle chiavi.
Autorizzazioni mancanti
Messaggio di errore
401 AzureKeyVaultMissingPermissions - Nel server mancano le autorizzazioni obbligatorie per Azure Key Vault.
Rilevamento
Per identificare l'URI della chiave e l'insieme di credenziali delle chiavi:
- Usare il cmdlet o i comandi in Insieme di credenziali delle chiavi mancante per identificare l'insieme di credenziali delle chiavi usato dall'istanza di SQL Server logica.
Mitigazione
Confermare che il server ha le autorizzazioni per l'insieme di credenziali delle chiavi e le autorizzazioni corrette per accedere alla chiave:
- Nel portale di Azure, passare all'insieme di credenziali delle chiavi >Criteri di accesso. Trovare l'identità gestita del server (assegnata dal sistema o assegnata dall'utente).
- Se l'identità del server è presente, assicurarsi che abbia le autorizzazioni della chiave seguenti: Get, WrapKey e UnwrapKey.
- Se l'identità del server non è presente, aggiungerla facendo clic sul pulsante Aggiungi nuovo.
Recupero dello stato di TDE dal log attività
Per consentire il monitoraggio dello stato del database a causa di problemi di accesso alla chiave di Azure Key Vault, gli eventi seguenti verranno registrati in Log attività per l'ID della risorsa in base all'URL di Azure Resource Manager.
Nota
Gli eventi possono richiedere almeno 15-30 minuti per essere visualizzati in Log attività dal momento in cui si verifica un problema di accesso all'insieme di credenziali delle chiavi.
Evento registrato quando il servizio non ha più accesso alla chiave di Azure Key Vault
Database SQL di Azure
EventName: MakeDatabaseInaccessible
Stato: Avviato
Descrizione: il database {database_name} nel server {server_name} ha perso l'accesso alla chiave di Azure Key Vault e ora passa allo stato inaccessibile.
Istanza gestita di database SQL di Azure
EventName: MakeManagedDbInaccessible
Stato: Avviato
Descrizione: il database {database_name} nel server gestito {server_name} ha perso l'accesso alla chiave di Azure Key Vault e ora passa allo stato inaccessibile.
Evento registrato quando il problema non è stato risolto entro 30 minuti e l'accesso alla chiave di Azure Key Vault deve essere convalidato manualmente
Database SQL di Azure
EventName: MakeDatabaseInaccessible
Stato: Riuscito
Descrizione: il database non è accessibile e richiede all'utente di risolvere gli errori di Azure Key Vault e di ristabilire l'accesso alla chiave di Azure Key Vault mediante la riconvalida della chiave.
Istanza gestita di database SQL di Azure
EventName: MakeManagedDbInaccessible
Stato: Riuscito
Descrizione: il database {database_name} nel server gestito {server_name} non è accessibile e richiede all'utente di ristabilire l'accesso alla chiave di Azure Key Vault.
Evento registrato quando la riconvalida dell'accesso alla chiave di Azure Key Vault ha esito positivo e il database viene riportato online
Database SQL di Azure
EventName: MakeDatabaseAccessible
Stato: Avviato
Descrizione: l'accesso alla chiave di Azure Key Vault è stato ristabilito e l'operazione per rendere accessibile il database {database_name} nel server {server_name} è iniziata.
Istanza gestita di database SQL di Azure
EventName: MakeManagedDatabaseAccessible
Stato: Avviato
Descrizione: l'accesso alla chiave di Azure Key Vault è stato ristabilito e l'operazione per rendere accessibile il database {database_name} nel server gestito {server_name} è iniziata.
Evento registrato quando il database è stato riportato online correttamente
Database SQL di Azure
EventName: MakeDatabaseAccessible
Stato: Riuscito
Descrizione: l'accesso alla chiave di Azure Key Vault è stato ristabilito e il database {database_name} nel server {server_name} è ora online.
Istanza gestita di database SQL di Azure
EventName: MakeManagedDatabaseAccessible
Stato: Riuscito
Descrizione: l'accesso alla chiave di Azure Key Vault è stato ristabilito e il database {database_name} nel server gestito {server_name} è ora online.
Evento registrato quando la riconvalida dell'accesso alla chiave di Azure Key Vault ha esito negativo
Database SQL di Azure
EventName: MakeDatabaseAccessible
Stato: Non riuscito
Descrizione: l'accesso alla chiave di Azure Key Vault è stato ristabilito e l'operazione per rendere accessibile il database {database_name} nel server {server_name} non è riuscita
Istanza gestita di database SQL di Azure
EventName: MakeManagedDatabaseAccessible
Stato: Non riuscito
Descrizione: l'accesso alla chiave di Azure Key Vault è stato ristabilito e l'operazione per rendere accessibile il database {database_name} nel server gestito {server_name} non è riuscita
Contenuto correlato
- Scoprire Integrità risorse di Azure.
- Configurare Gruppi di azioni per ricevere notifiche e avvisi in base alle preferenze, ad esempio Posta elettronica/SMS/Push/Messaggio vocale, App per la logica, Webhook, Gestione dei servizi IT o Runbook di Automazione.