Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Van toepassing op:Azure SQL Database
Opmerking
- TDE CMK op databaseniveau is beschikbaar voor Azure SQL Database (alle SQL Database-edities). Het is niet beschikbaar voor Azure SQL Managed Instance, on-premises SQL Server, Azure-VM's en Azure Synapse Analytics (toegewezen SQL-pools (voorheen SQL DW)).
- Dezelfde handleiding kan worden toegepast om door de klant beheerde sleutels op databaseniveau in dezelfde tenant te configureren door de parameter federatieve client-id uit te sluiten. Zie Transparent Data Encryption (TDE) met door de klant beheerde sleutels op databaseniveau voor meer informatie over door de klant beheerde sleutels op databaseniveau.
In deze handleiding doorlopen we de stappen voor het maken, bijwerken en ophalen van een Azure SQL Database met transparante gegevensversleuteling (TDE) en door de klant beheerde sleutels (CMK) op databaseniveau, waarbij gebruik wordt gemaakt van een door de gebruiker toegewezen beheerde identiteit voor toegang tot Azure Key Vault. De Azure Key Vault bevindt zich in een andere Microsoft Entra-tenant dan de Azure SQL Database. Zie door de klant beheerde sleutels voor meerdere tenants met transparante gegevensversleutelingvoor meer informatie.
Opmerking
Microsoft Entra-id werd voorheen Azure Active Directory (Azure AD) genoemd.
Vereiste voorwaarden
- In deze handleiding wordt ervan uitgegaan dat u twee Microsoft Entra-tenants hebt.
- De eerste bestaat uit de Azure SQL Database-resource, een Multitenant Microsoft Entra-toepassing en een door de gebruiker toegewezen beheerde identiteit.
- De tweede tenant bevat de Azure Key Vault.
- Raadpleeg een van de volgende handleidingen voor uitgebreide instructies over het instellen van CMK voor meerdere tenants en de RBAC-machtigingen die nodig zijn voor het configureren van Microsoft Entra-toepassingen en Azure Key Vault:
- Azure CLI versie 2.52.0 of hoger.
- Az PowerShell module versie 10.3.0 of hoger.
- De RBAC-machtigingen die nodig zijn voor CMK op databaseniveau zijn dezelfde machtigingen die vereist zijn voor CMK op serverniveau. Precies dezelfde RBAC-machtigingen die van toepassing zijn bij het gebruik van Azure Key Vault, beheerde identiteiten en CMK voor meerdere tenants voor TDE op serverniveau, zijn van toepassing op databaseniveau. Zie Sleutelbeheer voor meer informatie over sleutelbeheer en toegangsbeleid.
Vereiste resources voor de eerste tenant
Voor deze zelfstudie gaan we ervan uit dat de eerste tenant deel uitmaakt van een onafhankelijke softwareleverancier (ISV) en dat de tweede tenant afkomstig is van hun client. Zie door de klant beheerde sleutels voor meerdere tenants met transparante gegevensversleutelingvoor meer informatie over dit scenario.
Voordat we TDE voor Azure SQL Database kunnen configureren met een CMK voor meerdere tenants, moeten we een Multitenant Microsoft Entra-toepassing hebben die is geconfigureerd met een door de gebruiker toegewezen beheerde identiteit die is toegewezen als federatieve identiteitsreferentie voor de toepassing. Volg een van de handleidingen bij de voorwaarden.
In de eerste tenant waar u de Azure SQL Database wilt maken, maakt en configureert u een Microsoft Entra-toepassing met meerdere tenants.
Configureer de door de gebruiker toegewezen beheerde identiteit als federatieve identiteitsreferentie voor de multitenant-toepassing.
Noteer de naam van de toepassing en de toepassings-id. Vind deze informatie in het Azure-portaalMicrosoft>Entra ID>Enterprise-applicaties en zoek naar de aangemaakte applicatie.
Vereiste resources voor de tweede tenant
Opmerking
Azure AD- en MSOnline PowerShell-modules zijn vanaf 30 maart 2024 afgeschaft. Lees de uitfaseringsupdate voor meer informatie. Na deze datum is ondersteuning voor deze modules beperkt tot migratieondersteuning voor Microsoft Graph PowerShell SDK en beveiligingsoplossingen. De afgeschafte modules blijven functioneren tot en met 30 maart 2025.
Het is raadzaam om te migreren naar Microsoft Graph PowerShell om te communiceren met Microsoft Entra ID (voorheen Azure AD). Raadpleeg de veelgestelde vragen over migratie voor veelgestelde vragen over migratie. Opmerking: versies 1.0.x van MSOnline kunnen na 30 juni 2024 onderbrekingen ondervinden.
Op de tweede tenant waar de Azure Key Vault zich bevindt, maak je een serviceprincipal (applicatie) aan door de applicatie-ID van de geregistreerde applicatie in de eerste tenant te gebruiken. Hier zijn enkele voorbeelden van hoe je de multitenant-applicatie registreert. Vervang
<TenantID>en<ApplicationID>door het client-ID tenant-ID van Microsoft Entra ID en het toepassings-ID van de multitenant applicatie.PowerShell:
Connect-Entra -TenantID <TenantID> New-EntraServicePrincipal -AppId <ApplicationID>De Azure CLI:
az login --tenant <TenantID> az ad sp create --id <ApplicationID>
Ga naar de Azure portal>Microsoft Entra ID>Enterprise-toepassingen en zoek naar de toepassing die is gemaakt.
Maak een Azure Key Vault als u er nog geen hebt en maak een sleutel.
het toegangsbeleid maken of instellen.
- Selecteer bij het maken van het toegangsbeleid de machtigingen Ophalen, Sleutel verpakken, Sleutel uitpakken onder Sleutelmachtigingen .
- Selecteer de toepassing voor meerdere tenants die u in de eerste stap in de optie Principal hebt gemaakt bij het maken van het toegangsbeleid.
Nadat je het toegangsbeleid en de sleutel hebt gemaakt, haal je de sleutel uit Azure Key Vault en registreer je de Key Identifier.
Een nieuwe Azure SQL Database maken met door de klant beheerde sleutels op databaseniveau
De volgende voorbeelden tonen hoe je een database aanmaakt in Azure SQL Database met een door de gebruiker toegewezen beheerde identiteit en hoe je een cross-tenant klantbeheerde sleutel op databaseniveau kunt instellen. Je hebt de door de gebruiker toegewezen beheerde identiteit nodig om een klantbeheerde sleutel in te stellen voor transparante dataversleuteling tijdens de databasecreatiefase.
Ga naar Azure SQL Hub op aka.ms/azuresqlhub.
Vouw azure SQL Database uit in het resourcemenu en selecteer SQL-databases.
Selecteer SQL-database in de vervolgkeuzelijst + Create.
Selecteer op het tabblad Basisbeginselen van het formulier SQL Database maken onder Projectdetails het gewenste Azure-abonnement, de resourcegroep en de server voor uw database. Gebruik vervolgens een unieke naam voor uw databasenaam. Als u nog geen logische server voor Azure SQL Database hebt aangemaakt, raadpleeg dan Server maken die geconfigureerd is met TDE en een klantbeheerder-sleutel (CMK) voor meerdere tenants als referentie.
Wanneer u bij het tabblad Beveiliging bent, selecteert u Transparante gegevensversleuteling configureren voor de sleutel op databaseniveau.
Selecteer in het menu Transparante gegevensversleuteling de door de klant beheerde sleutel (CMK) op databaseniveau.
Voor User-Assigned Managed Identity selecteert u Configureer om een databaseidentiteit in te schakelen en Voeg een door gebruikers toegewezen beheerde identiteit toe aan de resource als een gewenste identiteit niet in het Identity-menu wordt vermeld. Selecteer vervolgens Toepassen.
Opmerking
U kunt hier de federatieve clientidentiteit configureren als u CMK voor meerdere tenants configureert voor TDE.
Selecteer In het menu Transparante gegevensversleuteling de optie Sleutel wijzigen. Selecteer het gewenste Abonnement, Key Vault, Sleutelen versie voor de door de klant beheerde sleutel die moet worden gebruikt voor TDE. Selecteer de knop Selecteren. Nadat u een sleutel hebt geselecteerd, kunt u indien nodig extra databasesleutels toevoegen met behulp van de Azure Key Vault-URI (object-id) in het menu Transparante gegevensversleuteling .
Automatische sleutelrotatie kan ook worden ingeschakeld op databaseniveau met behulp van het selectievakje Voor automatisch draaien van sleutels in het menu Transparante gegevensversleuteling .
Selecteer Toepassen om door te gaan met het maken van de database.
Selecteer Volgende: Aanvullende instellingen.
Klik op Volgende: Tags.
Overweeg het gebruik van Azure-tags. Bijvoorbeeld de tag 'Eigenaar' of 'CreatedBy' om te bepalen wie de resource heeft gemaakt en de omgevingstag om te bepalen of deze resource zich in Productie, Ontwikkeling, enzovoort bevindt. Zie Uw naamgevings- en tagstrategie voor Azure-resources ontwikkelen voor meer informatie.
Kies Beoordelen + creëren.
Controleer op de pagina Beoordelen en maken de instellingen en selecteer daarna Maken.
Opmerking
Het maken van de database mislukt als de door de gebruiker toegewezen beheerde identiteit niet over de juiste machtigingen beschikt voor de sleutelkluis. De door de gebruiker toegewezen beheerde identiteit heeft de machtigingen Get, WrapKey en UnwrapKey nodig voor de sleutelkluis. Zie Beheerde identiteiten voor transparante gegevensversleuteling met door de klant beheerde sleutel voor meer informatie.
Een bestaande Azure SQL Database bijwerken met door de klant beheerde sleutels op databaseniveau
De volgende voorbeelden laten zien hoe een bestaande database op Azure SQL Database met een door de gebruiker toegewezen beheerde identiteit kan worden bijgewerkt en hoe je een cross-tenant klant-beheerde sleutel op databaseniveau kunt instellen. Je hebt een door de gebruiker toegewezen beheerde identiteit nodig om een door de klant beheerde sleutel in te stellen voor transparante data-encryptie.
Zie Azure CLI installeren artikel voor meer informatie over het installeren van de huidige versie van Azure CLI.
Werk een database bij die is geconfigureerd met door de gebruiker toegewezen beheerde identiteit en door de klant beheerde TDE voor meerdere tenants met behulp van de opdracht az sql db create . De sleutel-id van de tweede tenant kan worden gebruikt in het veld encryption-protector. De toepassings-id van de multitenant-toepassing kan worden gebruikt in het veld federated-client-id.
Om uw door de gebruiker toegewezen beheerde identiteit Resource IDte krijgen, zoekt u naar beheerde identiteiten in de Azure portal. Zoek uw beheerde identiteit en ga naar Eigenschappen. Een voorbeeld van uw UMI resource-id ziet eruit als /subscriptions/<subscriptionId>/resourceGroups/<ResourceGroupName>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<managedIdentity>. De --encryption-protector-auto-rotation parameter kan worden gebruikt om automatische sleutelrotatie op databaseniveau in te schakelen.
az sql db update --resource-group $resourceGroupName --server $serverName --name mySampleDatabase --sample-name AdventureWorksLT --edition GeneralPurpose --compute-model Serverless --family Gen5 --capacity 2 --assign-identity --user-assigned-identity-id $identityid --encryption-protector $keyid --federated-client-id $federatedclientid --keys $keys --keys-to-remove $keysToRemove --encryption-protector-auto-rotation True
De lijst $keys is een door spaties gescheiden lijst met sleutels die moeten worden toegevoegd aan de database en $keysToRemove is een door spatie gescheiden lijst met sleutels die uit de database moeten worden verwijderd
$keys = '"https://yourvault.vault.azure.net/keys/yourkey1/6638b3667e384aefa31364f94d230000" "https://yourvault.vault.azure.net/keys/yourkey2/ fd021f84a0d94d43b8ef33154bca0000"'
$keysToRemove = '"https://yourvault.vault.azure.net/keys/yourkey3/6638b3667e384aefa31364f94d230000" "https://yourvault.vault.azure.net/keys/yourkey4/fd021f84a0d94d43b8ef33154bca0000"'
De door de klant beheerde sleutelinstellingen op databaseniveau weergeven in een Azure SQL Database
Hieronder ziet u voorbeelden van het ophalen van door de klant beheerde sleutels op databaseniveau voor een database. De ARM-resource Microsoft.Sql/servers/databases toont standaard alleen de TDE-beveiliging en beheerde identiteit die in de database zijn geconfigureerd. Als u de volledige lijst met sleutels wilt uitbreiden, gebruikt u de parameter. -ExpandKeyList Daarnaast kunnen filters zoals -KeysFilter "current" en een bepaald tijdstip (bijvoorbeeld 2023-01-01) worden gebruikt om de huidige gebruikte sleutels en sleutels op een bepaald tijdstip op te halen. Deze filters worden alleen ondersteund voor afzonderlijke databasequery's en niet voor query's op serverniveau.
Zie Azure CLI installeren artikel voor meer informatie over het installeren van de huidige versie van Azure CLI.
# Retrieve the basic database level customer-managed key settings from a database
az sql db show --resource-group $resourceGroupName --server $serverName --name mySampleDatabase
# Retrieve the basic database level customer-managed key settings from a database and all the keys ever added
az sql db show --resource-group $resourceGroupName --server $serverName --name mySampleDatabase --expand-keys
# Retrieve the basic database level customer-managed key settings from a database and the current keys in use
az sql db show --resource-group $resourceGroupName --server $serverName --name mySampleDatabase --expand-keys --keys-filter current
# Retrieve the basic database level customer-managed key settings from a database and the keys in use at a particular point in time
az sql db show --resource-group $resourceGroupName --server $serverName --name mySampleDatabase --expand-keys --keys-filter 01-01-2015
# Retrieve all the databases in a server to check which ones are configured with database level customer-managed keys
az sql db list --resource-group $resourceGroupName --server $serverName
Alle sleutels op een logische server weergeven
Als u de lijst met alle sleutels (en niet alleen de primaire beveiliging) wilt ophalen die door elke database onder de server worden gebruikt, moet er afzonderlijk een query worden uitgevoerd met de sleutelfilters. Hier volgt een voorbeeld van een PowerShell-query om elke sleutel onder de logische server weer te geven.
Gebruik de cmdlet Get-AzSqlDatabase .
$dbs = Get-AzSqlDatabase -resourceGroupName <ResourceGroupName> -ServerName <ServerName>
foreach ($db in $dbs)
{
Get-AzSqlDatabase -DatabaseName $db.DatabaseName -ServerName $db.ServerName -ResourceGroupName $db.ResourceGroupName -ExpandKeyList
}
De door de klant beheerde sleutel op databaseniveau opnieuwvalideren in een Azure SQL Database
Als de TDE-beschermer ontoegankelijk is zoals beschreven in Azure SQL transparante data-encryptie met door de klant beheerde sleutel, wordt de database ontoegankelijk. Nadat je de sleuteltoegang hebt gerepareerd, gebruik je de hervalidatiesleutel-operatie om de database weer toegankelijk te maken. De volgende commando's geven voorbeelden.
Zie Azure CLI installeren artikel voor meer informatie over het installeren van de huidige versie van Azure CLI.
az sql db tde key revalidate --resource-group $resourceGroupName --server $serverName --database mySampleDatabase
De door de klant beheerde sleutel op databaseniveau herstellen in een Azure SQL Database
Een database die is geconfigureerd met CMK op databaseniveau, kan worden teruggezet naar versleuteling op serverniveau als de server is geconfigureerd met een door de service beheerde sleutel met behulp van de volgende opdrachten.
Zie Azure CLI installeren artikel voor meer informatie over het installeren van de huidige versie van Azure CLI.
az sql db tde key revert --resource-group $resourceGroupName --server $serverName --name mySampleDatabase