Per informazioni dettagliate, vedere Transparent Data Encryption con chiave gestita dal cliente
Si applica a: Database SQL di Azure Istanza gestita di SQL di Azure
Microsoft Entra ID, in precedenza Azure Active Directory, fornisce un'identità gestita automaticamente per l'autenticazione a qualsiasi servizio di Azure che supporta l'autenticazione di Microsoft Entra, ad esempio Azure Key Vault, senza esporre le credenziali nel codice. Per altre informazioni, vedere Tipi di identità gestita in Azure.
Esistono due tipi di identità gestite:
- Assegnata dal sistema
- Assegnata dall'utente
Per altre informazioni, consultare Identità gestite in Microsoft Entra ID per Azure SQL.
Per TDE con chiave gestita dal cliente (CMK) in Azure SQL, viene usata un'identità gestita nel server per fornire diritti di accesso al server nell'insieme di credenziali delle chiavi. Ad esempio, l'identità gestita assegnata dal sistema del server deve essere fornita con le autorizzazioni dell'insieme di credenziali delle chiavi prima di abilitare TDE con CMK nel server.
Oltre all'identità gestita assegnata dal sistema già supportata per TDE con chiave gestita dal cliente, è possibile usare un'identità gestita assegnata dall'utente (UMI) assegnata dal sistema al server per consentire al server di accedere all'insieme di credenziali delle chiavi. Un prerequisito per abilitare l'accesso all'insieme di credenziali delle chiavi consiste nel garantire che l'identità gestita assegnata dall'utente abbia fornito le autorizzazioni Get, wrapKey e unwrapKey nell'insieme di credenziali delle chiavi. Poiché l'identità gestita assegnata dall'utente è una risorsa autonoma che può essere creata e concessa l'accesso all'insieme di credenziali delle chiavi, TDE con una chiave gestita dal cliente può ora essere abilitata in fase di creazione per il server o il database.
Nota
Per assegnare un'identità gestita assegnata dall'utente al server logico o all'istanza gestita, un utente deve avere il ruolo Controllo degli accessiCollaboratore SQL Server o Collaboratore Istanza gestita di SQL in base al ruolo di Azure insieme a qualsiasi altro ruolo controllo degli accessi in base al ruolo di Azure contenente l'azione Microsoft.ManagedIdentity/userAssignedIdentities/*/assign/action.
Vantaggi dell'uso della messaggistica unificata per TDE gestito dal cliente
Consente di pre-autorizzare l'accesso all'insieme di credenziali delle chiavi per i server logici o le istanze gestite di SQL di Azure creando un'identità gestita assegnata dall'utente e concedendole l'accesso all'insieme di credenziali delle chiavi, anche prima della creazione del server o del database
Consente la creazione di un server logico Azure SQL con TDE e CMK abilitati
Consente di assegnare la stessa identità gestita assegnata dall'utente a più server, eliminando la necessità di attivare individualmente l'identità gestita assegnata dal sistema per ciascun server logico o istanza gestita di SQL di Azure e fornendogli l'accesso all'insieme di credenziali delle chiavi
Offre la possibilità di applicare CMK in fase di creazione del server con un criterio di Azure integrato disponibile
Considerazioni sull'uso della messaggistica unificata per TDE gestito dal cliente
- Per impostazione predefinita, TDE in Azure SQL usa l'identità gestita assegnata dall'utente primaria impostata nel server per l'accesso all'insieme di credenziali delle chiavi. Se al server non sono state assegnate identità assegnate dall'utente, per l'accesso all'insieme di credenziali delle chiavi viene usata l'identità gestita assegnata dal sistema del server.
- Quando si usa un'identità gestita assegnata dall'utente per TDE con CMK, assegnare l'identità al server e impostarla come identità primaria per il server
- L'identità gestita assegnata dall'utente primario richiede l'accesso continuo all'insieme di credenziali delle chiavi (autorizzazioni get, wrapKey, unwrapKey). Se l'accesso dell'identità all'insieme di credenziali delle chiavi viene revocato o non vengono fornite autorizzazioni sufficienti, il database passerà allo stato Inaccessibile
- Se l'identità gestita assegnata dall'utente primaria viene aggiornata a un'identità gestita assegnata dall'utente diversa, è necessario assegnare alla nuova identità le autorizzazioni necessarie per l'insieme di credenziali delle chiavi prima di aggiornare il database primario
- Per cambiare il server dall'identità gestita assegnata dall'utente all'identità gestita assegnata dal sistema per l'accesso all'insieme di credenziali delle chiavi, fornire l'identità gestita assegnata dal sistema con le autorizzazioni necessarie per l'insieme di credenziali delle chiavi, quindi rimuovere tutte le identità gestite assegnate dall'utente dal server
Importante
L'identità gestita assegnata dall'utente primaria usata per TDE con la chiave gestita dal cliente non deve essere eliminata da Azure. L'eliminazione di questa identità comporta la perdita dell'accesso al server all'insieme di credenziali delle chiavi e ai database diventano inaccessibili.
Limitazioni e problemi noti
- Se l'insieme di credenziali delle chiavi si trova dietro una rete virtuale che usa un firewall, è necessario abilitare l'opzione Consenti ai servizi Microsoft attendibili di ignorare questo firewall nel menu Rete dell'insieme di credenziali delle chiavi se si vuole usare un'identità gestita assegnata dall'utente o un'identità gestita assegnata dal sistema. Dopo aver abilitato questa opzione, le chiavi disponibili non possono essere elencate nel menu TDE di SQL Server nel portale di Azure. Per impostare una singola chiave gestita dal cliente, è necessario usare un identificatore chiave. Quando l'opzione Consenti ai servizi Microsoft attendibili di ignorare questo firewall non è abilitata, viene restituito l'errore seguente:
Failed to save Transparent Data Encryption settings for SQL resource: <ServerName>. Error message: The managed identity with ID '/subscriptions/subsriptionID/resourcegroups/resource_name/providers/Microsoft.ManagedIdentity/userAssignedIdentities/umi_name' requires the following Azure Key Vault permissions: 'Get, WrapKey, UnwrapKey' to the key 'https://keyvault_name/keys/key_name'. Please grant the missing permissions to the identity. Additionally ensure the key is not expired and is not disabled. For expired key, please extend the key expiry time so that SQL can use it to perform wrap and unwrap operations. If your key vault is behind a virtual network or firewall, ensure you select the 'Allow trusted Microsoft services to bypass this firewall' option. (https://aka.ms/sqltdebyokcreateserver).
- Se viene visualizzato l'errore precedente, verificare se l'insieme di credenziali delle chiavi si trova dietro una rete virtuale o un firewall e assicurarsi che l'opzione Consenti ai servizi Microsoft attendibili di ignorare il firewall sia abilitata.
- L'identità gestita assegnata dall'utente per Istanza gestita di SQL è attualmente supportata solo in insiemi di credenziali delle chiavi con accesso pubblico da tutte le reti abilitate. Non è supportato quando il firewall Azure Key Vault filtra reti virtuali e indirizzi IP specifici o usa connessioni endpoint private.
- Quando più identità gestite assegnate dall'utente vengono assegnate al server o all'istanza gestita, se una singola identità viene rimossa dal server usando il riquadro Identità del portale di Azure, l'operazione ha esito positivo ma l'identità non viene rimossa dal server. La rimozione di tutte le identità gestite assegnate dall'utente insieme dal portale di Azure funziona correttamente.
- Quando il server o l'istanza gestita viene configurata con TDE gestito dal cliente e sia le identità gestite assegnate dal sistema che le identità gestite assegnate dall'utente vengono abilitate nel server, rimuovendo le identità gestite assegnate dall'utente dal server senza prima concedere all'identità gestita assegnata dal sistema l'accesso all'insieme di credenziali delle chiavi genera il messaggio Si è verificato un errore imprevisto . Assicurarsi che l'identità gestita assegnata dal sistema sia stata fornita l'accesso all'insieme di credenziali delle chiavi prima di rimuovere l'identità gestita assegnata dall'utente primario (e qualsiasi altra identità gestita assegnata dall'utente) dal server.