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)).
In deze handleiding doorlopen we de stappen voor het configureren van geo-replicatie en het herstellen van back-ups in een Azure SQL Database. De Azure SQL Database is geconfigureerd met TDE (Transparent Data Encryption) 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. Zowel de Azure Key Vault als de logische server voor Azure SQL bevinden zich in dezelfde Microsoft Entra-tenant voor deze handleiding, maar ze kunnen zich in verschillende tenants bevinden.
Dezelfde handleiding kan worden toegepast om door de klant beheerde sleutels op databaseniveau in een andere tenant te configureren door de parameter federatieve client-id op te geven. Zie Identiteits- en sleutelbeheer voor TDE met door de klant beheerde sleutels op databaseniveau voor meer informatie.
Belangrijk
Nadat de database is gemaakt of hersteld, wordt in het menu Transparent Data Encryption in Azure Portal de nieuwe database weergegeven met dezelfde instellingen als de brondatabase, maar er ontbreken mogelijk sleutels. In alle gevallen waarin een nieuwe database wordt gemaakt op basis van een brondatabase, kan het aantal sleutels dat wordt weergegeven voor een doeldatabase in azure Portal , de lijst Aanvullende databasesleutels kleiner zijn dan het aantal sleutels dat wordt weergegeven voor een brondatabase. Dit komt doordat het aantal weergegeven sleutels afhankelijk is van de vereisten voor afzonderlijke functies die worden gebruikt om een doeldatabase te maken. Als u alle sleutels wilt weergeven die beschikbaar zijn voor een nieuwe database, gebruikt u de beschikbare API's in De instellingen voor door de klant beheerde sleutels op databaseniveau weergeven in een Azure SQL Database.
Een Azure SQL Database maken met door de klant beheerde sleutels op databaseniveau als secundaire sleutel of kopie
Gebruik de volgende instructies of opdrachten om een secundaire replica te maken of het doel van een Azure SQL Database te kopiëren dat is geconfigureerd met door de klant beheerde sleutels op databaseniveau. Een door de gebruiker toegewezen beheerde identiteit is vereist voor het instellen van een door de klant beheerde sleutel voor transparante gegevensversleuteling tijdens de aanmaakfase van de database.
Een databasekopie maken met door de klant beheerde sleutels op databaseniveau
Als u een database in Azure SQL Database wilt maken als kopie met door de klant beheerde sleutels op databaseniveau, voert u de volgende stappen uit:
Ga naar Azure Portal en navigeer naar de Azure SQL Database die is geconfigureerd met door de klant beheerde sleutels op databaseniveau. Open het tabblad Transparent Data Encryption van het menu Gegevensversleuteling en controleer de lijst met huidige sleutels die door de database worden gebruikt.
Maak een kopie van de database door Kopiëren te selecteren in het menu Overzicht van de database.
Het menu SQL Database maken - Database kopiëren wordt weergegeven. Gebruik een andere server voor deze database, maar dezelfde instellingen als de database die u probeert te kopiëren. Selecteer In de sectie Transparent Data Encryption Key Management de optie Transparante gegevensversleuteling configureren.
Wanneer het menu Transparent Data Encryption wordt weergegeven, controleert u de CMK-instellingen voor deze kopieerdatabase. De instellingen en sleutels moeten worden gevuld met dezelfde identiteit en sleutels die in de brondatabase worden gebruikt.
Selecteer Toepassen om door te gaan en selecteer Vervolgens Beoordelen en maken om de kopiedatabase te maken.
Een secundaire replica maken met door de klant beheerde sleutels op databaseniveau
Ga naar Azure Portal en navigeer naar de Azure SQL Database die is geconfigureerd met door de klant beheerde sleutels op databaseniveau. Open het menu Transparent Data Encryption en controleer de lijst met huidige sleutels die door de database worden gebruikt.
Selecteer Replica's onder Instellingen voor gegevensbeheer voor de database. Selecteer Replica maken om een secundaire replica van de database te maken.
Het menu SQL Database maken - Geo Replica wordt weergegeven. Gebruik een secundaire server voor deze database, maar dezelfde instellingen als de database die u wilt repliceren. Selecteer In de sectie Transparent Data Encryption Key Management de optie Transparante gegevensversleuteling configureren.
Wanneer het menu Transparent Data Encryption wordt weergegeven, controleert u de CMK-instellingen voor deze databasereplica. De instellingen en sleutels moeten worden gevuld met dezelfde identiteit en sleutels die in de primaire database worden gebruikt.
Selecteer Toepassen om door te gaan en selecteer Vervolgens Beoordelen en maken om de kopiedatabase te maken.
Zie het artikel Azure CLI installeren voor meer informatie over het installeren van de huidige versie van Azure CLI.
De lijst met huidige sleutels die door de primaire database worden gebruikt vooraf ingevuld met behulp van de expand-keys parameter met current als de keys-filterparameter.
az sql db show --name $databaseName --resource-group $resourceGroup --server $serverName --expand-keys --keys-filter current
Selecteer de door de gebruiker toegewezen beheerde identiteit (en federatieve client-id als u cross-tenanttoegang configureert).
Maak een nieuwe database als secundaire database en geef de vooraf ingevulde lijst met sleutels op die zijn verkregen uit de brondatabase en de bovenstaande identiteit (en federatieve client-id bij het configureren van toegang tussen tenants).
# Create a secondary replica with Active Geo Replication with the same name as the primary database
az sql db replica create -g $resourceGroup -s $serverName -n $databaseName --partner-server $secondaryServer --partner-database $secondaryDatabase --partner-resource-group $secondaryResourceGroup -i --encryption-protector $encryptionProtector --user-assigned-identity-id $umi --keys $keys
Belangrijk
$keys is een door spatie gescheiden lijst met sleutels die zijn opgehaald uit de brondatabase.
Als u een kopie van de database wilt maken, kan az sql db copy worden gebruikt met dezelfde parameters.
# Create a copy of a database configured with database level customer-managed keys
az sql db copy -g $resourceGroup -s $serverName -n $databaseName --dest-name $secondaryDatabase -i --encryption-protector $encryptionProtector --user-assigned-identity-id $umi --keys $keys
De lijst met huidige sleutels die door de primaire database worden gebruikt vooraf ingevuld met behulp van de opdracht Get-AzSqlDatabase en de -ExpandKeyList parameters.-KeysFilter "current" Sluit -KeysFilter uit als u alle sleutels wilt ophalen.
Selecteer de door de gebruiker toegewezen beheerde identiteit (en federatieve client-id als u cross-tenanttoegang configureert).
Maak een nieuwe database als secundaire met behulp van de opdracht New-AzSqlDatabaseSecondary en geef de vooraf ingevulde lijst met sleutels op die zijn verkregen uit de brondatabase en de bovenstaande identiteit (en federatieve client-id als u cross-tenanttoegang configureert) in de API-aanroep met behulp van de -KeyListparameters , -AssignIdentity, -UserAssignedIdentityId( -EncryptionProtector en indien nodig -FederatedClientId) .
# Create a secondary replica with Active Geo Replication with the same name as the primary database
$database = Get-AzSqlDatabase -ResourceGroupName <ResourceGroupName> -ServerName <ServerName> -DatabaseName <DatabaseName> -ExpandKeyList -KeysFilter "current"
$database | New-AzSqlDatabaseSecondary -PartnerResourceGroupName <SecondaryResourceGroupName> -PartnerServerName <SecondaryServerName> -AllowConnections "All" -AssignIdentity -UserAssignedIdentityId <UserAssignedIdentityId> -EncryptionProtector <CustomerManagedKeyId> -FederatedClientId <FederatedClientId>
-KeyList $database.Keys.Keys
Als u een kopie van de database wilt maken, kan New-AzSqlDatabaseCopy worden gebruikt met dezelfde parameters.
Hier volgt een voorbeeld van een ARM-sjabloon waarmee een secundaire replica en kopie van een Azure SQL Database wordt gemaakt die is geconfigureerd met een door de gebruiker toegewezen beheerde identiteit en door de klant beheerde TDE op databaseniveau.
Gebruik een aangepaste implementatie in Azure Portal en bouw uw eigen sjabloon in de editor. Sla vervolgens de configuratie op nadat u in het voorbeeld hebt geplakt.
De lijst met huidige sleutels die worden gebruikt door de primaire database vooraf invullen met behulp van de volgende REST API-aanvraag:
GET https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Sql/servers/{serverName}/databases/{databaseName}?api-version=2022-08-01-preview&$expand=keys($filter=pointInTime('current'))
Selecteer de door de gebruiker toegewezen beheerde identiteit (en federatieve client-id als u cross-tenanttoegang configureert).
Maak een nieuwe database als secundaire database en geef de vooraf ingevulde lijst met sleutels op die zijn verkregen uit de brondatabase en de bovenstaande identiteit (en federatieve client-id als u cross-tenanttoegang configureert) in de ARM-sjabloon als parameter keys_to_add .
Een Azure SQL Database herstellen met door de klant beheerde sleutels op databaseniveau
In deze sectie wordt u begeleid bij de stappen voor het herstellen van een Azure SQL Database die is geconfigureerd met door de klant beheerde sleutels op databaseniveau. Een door de gebruiker toegewezen beheerde identiteit is vereist voor het instellen van een door de klant beheerde sleutel voor transparante gegevensversleuteling tijdens de aanmaakfase van de database.
Ga naar Azure Portal en navigeer naar de Azure SQL Database die is geconfigureerd met door de klant beheerde sleutels op databaseniveau die u wilt herstellen.
Als u de database naar een bepaald tijdstip wilt herstellen, selecteert u Herstellen in het menu Overzicht van de database.
Het menu Database maken - Database herstellen wordt weergegeven. Vul de benodigde bron- en databasegegevens in. Selecteer In de sectie Transparent Data Encryption Key Management de optie Transparante gegevensversleuteling configureren.
Wanneer het menu Transparent Data Encryption wordt weergegeven, controleert u de CMK-instellingen voor de database. De instellingen en sleutels moeten worden gevuld met dezelfde identiteit en sleutels die worden gebruikt in de database die u probeert te herstellen.
Selecteer Toepassen om door te gaan en selecteer Vervolgens Beoordelen en maken om de kopiedatabase te maken.
Zie het artikel Azure CLI installeren voor meer informatie over het installeren van de huidige versie van Azure CLI.
De lijst met sleutels die door de primaire database worden gebruikt vooraf ingevuld met behulp van de expand-keys parameter met het herstelpunt in de tijd als de keys-filter.
az sql db show --name $databaseName --resource-group $resourceGroup --server $serverName --expand-keys --keys-filter $timestamp
Selecteer de door de gebruiker toegewezen beheerde identiteit (en federatieve client-id als u cross-tenanttoegang configureert).
Maak een nieuwe database als hersteldoel en geef de vooraf ingevulde lijst met sleutels op die zijn verkregen uit de brondatabase en de bovenstaande identiteit (en federatieve client-id bij het configureren van toegang tussen tenants).
# Create a restored database
az sql db restore --dest-name $destName --name $databaseName --resource-group $resourceGroup --server $serverName --subscription $subscriptionId --time $timestamp -i --encryption-protector $encryptionProtector --user-assigned-identity-id $umi --keys $keys
Belangrijk
$keys is een door spatie gescheiden lijst met sleutels die zijn opgehaald uit de brondatabase.
De lijst met sleutels die door de primaire database worden gebruikt vooraf ingevuld met behulp van de opdracht Get-AzSqlDatabase en de -ExpandKeyList parameters -KeysFilter "2023-01-01" (2023-01-01 is een voorbeeld van het tijdstip waarop u de database wilt herstellen). Sluit -KeysFilter uit als u alle sleutels wilt ophalen.
Selecteer de door de gebruiker toegewezen beheerde identiteit (en federatieve client-id als u cross-tenanttoegang configureert).
Gebruik de opdracht Restore-AzSqlDatabase met de -FromPointInTimeBackup parameter en geef de vooraf ingevulde lijst met sleutels op die zijn verkregen uit de bovenstaande stappen en de bovenstaande identiteit (en de federatieve client-id als u cross-tenanttoegang configureert) in de API-aanroep met behulp van de -KeyListparameters , -AssignIdentity-UserAssignedIdentityId, -EncryptionProtector (en indien nodig-FederatedClientId) .
Ga naar Azure Portal en navigeer naar de logische server voor de verwijderde database die u wilt herstellen. Selecteer Verwijderde databases onder Gegevensbeheer.
Selecteer de verwijderde database die u wilt herstellen.
Het menu Database maken - Database herstellen wordt weergegeven. Vul de benodigde bron- en databasegegevens in. Selecteer In de sectie Transparent Data Encryption Key Management de optie Transparante gegevensversleuteling configureren.
Wanneer het menu Transparent Data Encryption wordt weergegeven, configureert u de sectie Door de gebruiker toegewezen beheerde identiteit, door de klant beheerde sleutel en aanvullende databasesleutels voor uw database.
Selecteer Toepassen om door te gaan en selecteer Vervolgens Beoordelen en maken om de kopiedatabase te maken.
Zie het artikel Azure CLI installeren voor meer informatie over het installeren van de huidige versie van Azure CLI.
De lijst met sleutels die door de verwijderde database worden gebruikt vooraf ingevuld met behulp van de expand-keys parameter. Het is raadzaam om alle sleutels door te geven die door de brondatabase zijn gebruikt. U kunt ook een herstelpoging uitvoeren met de sleutels die tijdens het verwijderen zijn opgegeven met behulp van de keys-filter parameter.
az sql db show-deleted --name $databaseName --resource-group $resourceGroup --server $serverName --restorable-dropped-database-id "databaseName,133201549661600000" --expand-keys
Belangrijk
restorable-dropped-database-id kan worden opgehaald door alle terug te plaatsen verwijderde databases op de server en is van de indeling databaseName,deletedTimestamp.
Selecteer de door de gebruiker toegewezen beheerde identiteit (en federatieve client-id als u cross-tenanttoegang configureert).
Maak een nieuwe database als hersteldoel en geef de vooraf ingevulde lijst met sleutels op die zijn verkregen uit de verwijderde brondatabase en de bovenstaande identiteit (en federatieve client-id bij het configureren van toegang tussen tenants).
# Create a restored database
az sql db restore --dest-name $destName --name $databaseName --resource-group $resourceGroup --server $serverName --subscription $subscriptionId --time $timestamp -i --encryption-protector $encryptionProtector --user-assigned-identity-id $umi --keys $keys --deleted-time "2023-02-06T11:02:46.160000+00:00"
Belangrijk
$keys is een door spaties gescheiden lijst met sleutels die zijn opgehaald uit de brondatabase.
De lijst met sleutels die door de primaire database worden gebruikt vooraf ingevuld met behulp van de opdracht Get-AzSqlDeletedDatabaseBackup en de -ExpandKeyList parameter. Het is raadzaam om alle sleutels door te geven die door de brondatabase zijn gebruikt. U kunt ook een herstelpoging uitvoeren met de sleutels die tijdens het verwijderen zijn opgegeven met behulp van de -KeysFilter parameter.
DatabaseId kan worden opgehaald door alle terug te plaatsen verwijderde databases op de server en is van de indeling databaseName,deletedTimestamp.
Selecteer de door de gebruiker toegewezen beheerde identiteit (en federatieve client-id als u cross-tenanttoegang configureert).
Gebruik de opdracht Restore-AzSqlDatabase met de -FromDeletedDatabaseBackup parameter en geef de vooraf ingevulde lijst met sleutels op die zijn verkregen uit de bovenstaande stappen en de bovenstaande identiteit (en de federatieve client-id als u cross-tenanttoegang configureert) in de API-aanroep met behulp van de -KeyListparameters , -AssignIdentity-UserAssignedIdentityId, -EncryptionProtector (en indien nodig-FederatedClientId) .
Ga naar Azure Portal en navigeer naar de logische server waar u de database wilt herstellen.
Selecteer Database maken in het menu Overzicht.
Het menu SQL Database maken wordt weergegeven. Vul de tabbladen Basic en Netwerken voor uw nieuwe database in. Selecteer in Aanvullende instellingen back-up voor het gedeelte Bestaande gegevens gebruiken en selecteer een geo-gerepliceerde back-up.
Ga naar het tabblad Beveiliging . Selecteer In de sectie Transparent Data Encryption Key Management de optie Transparante gegevensversleuteling configureren.
Wanneer het menu Transparent Data Encryption wordt weergegeven, selecteert u CMK (Customer-Managed Key) op databaseniveau. De door de gebruiker toegewezen beheerde identiteit, door de klant beheerde sleutel en aanvullende databasesleutels moeten overeenkomen met de brondatabase die u wilt herstellen. Zorg ervoor dat de door de gebruiker toegewezen beheerde identiteit toegang heeft tot de sleutelkluis die de door de klant beheerde sleutel bevat die in de back-up is gebruikt.
Selecteer Toepassen om door te gaan en selecteer Vervolgens Beoordelen en maken om de back-updatabase te maken.
Zie het artikel Azure CLI installeren voor meer informatie over het installeren van de huidige versie van Azure CLI.
De lijst met sleutels die worden gebruikt door de geo-back-up van de database die is geconfigureerd met door de klant beheerde sleutels op databaseniveau vooraf vullen met behulp van de expand-keys parameter.
az sql db geo-backup --database-name $databaseName --g $resourceGroup --server $serverName --expand-keys
Selecteer de door de gebruiker toegewezen beheerde identiteit (en federatieve client-id als u cross-tenanttoegang configureert).
Maak een nieuwe database als geo-hersteldoel en geef de vooraf ingevulde lijst met sleutels op die zijn verkregen uit de verwijderde brondatabase en de bovenstaande identiteit (en federatieve client-id bij het configureren van toegang tussen tenants).
# Create a geo restored database
az sql db geo-backup restore --geo-backup-id "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Sql/servers/{serverName}/recoverableDatabases/{databaseName}" --dest-database $destName --resource-group $resourceGroup --dest-server $destServerName -i --encryption-protector $encryptionProtector --user-assigned-identity-id $umi --keys $keys
Belangrijk
$keys is een door spaties gescheiden lijst met sleutels die zijn opgehaald uit de brondatabase.
De lijst met sleutels die door de primaire database worden gebruikt vooraf ingevuld met behulp van de opdracht Get-AzSqlDatabaseGeoBackup en de -ExpandKeyList opdracht om alle sleutels op te halen.
DatabaseId kan worden opgehaald door alle terug te plaatsen verwijderde databases op de server en is van de indeling databaseName,deletedTimestamp.
Selecteer de door de gebruiker toegewezen beheerde identiteit (en federatieve client-id als u cross-tenanttoegang configureert).
Gebruik de opdracht Restore-AzSqlDatabase met de -FromGeoBackup parameter en geef de vooraf ingevulde lijst met sleutels op die zijn verkregen uit de bovenstaande stappen en de bovenstaande identiteit (en de federatieve client-id als u cross-tenanttoegang configureert) in de API-aanroep met behulp van de -KeyListparameters , -AssignIdentity-UserAssignedIdentityId, -EncryptionProtector (en indien nodig-FederatedClientId) .
Back-ups voor langetermijnretentie (LTR) bieden geen lijst met sleutels die door de back-up worden gebruikt. Als u een LTR-back-up wilt herstellen, moeten alle sleutels die door de brondatabase worden gebruikt, worden doorgegeven aan het LTR-hersteldoel.