TDE CMK på databasnivå är tillgängligt för Azure SQL Database (alla SQL Database-utgåvor). Den är inte tillgänglig för Azure SQL Managed Instance, SQL Server lokalt, virtuella Azure-datorer och Azure Synapse Analytics (dedikerade SQL-pooler (tidigare SQL DW)).
I den här guiden går vi igenom stegen för att konfigurera geo-replikering och återställning av säkerhetskopior i en Azure SQL Database. Azure SQL Database konfigureras med transparent datakryptering (TDE) och kundhanterade nycklar (CMK) på databasnivå, med hjälp av en användartilldelad hanterad identitet för åtkomst till Azure Key Vault. Både Azure Key Vault och den logiska servern för Azure SQL finns i samma Microsoft Entra-klientorganisation för den här guiden, men de kan finnas i olika klientorganisationer.
Samma guide kan användas för att konfigurera kundhanterade nycklar på databasnivå i en annan klientorganisation genom att inkludera parametern federerat klient-ID. Mer information finns i Identitets- och nyckelhantering för TDE med kundhanterade nycklar på databasnivå.
Viktigt!
När databasen har skapats eller återställts visar menyn transparent datakryptering i Azure-portalen den nya databasen med samma inställningar som källdatabasen, men nycklar kan saknas. I alla fall där en ny databas skapas från en källdatabas kan antalet nycklar som visas för en måldatabas i listan Ytterligare databasnycklar i Azure-portalen vara mindre än antalet nycklar som visas för en källdatabas. Det beror på att antalet visade nycklar beror på enskilda funktionskrav som används för att skapa en måldatabas. Om du vill visa en lista över alla nycklar som är tillgängliga för en nyligen skapad databas använder du de tillgängliga API:erna i Visa kundhanterade nyckelinställningar på databasnivå i en Azure SQL Database.
Skapa en Azure SQL Database med kundhanterade nycklar på databasnivå som sekundär eller kopia
Använd följande instruktioner eller kommandon för att skapa en sekundär replik eller kopia av en Azure SQL Database som konfigurerats med kundhanterade nycklar på databasnivå. En användartilldelad hanterad identitet krävs för att konfigurera en kundhanterad nyckel för transparent datakryptering under fasen för att skapa databasen.
Skapa en databaskopia som har kundhanterade nycklar på databasnivå
Följ dessa steg för att skapa en databas i Azure SQL Database som en kopia med kundhanterade nycklar på databasnivå:
Gå till Azure-portalen och gå till Azure SQL Database som konfigurerats med kundhanterade nycklar på databasnivå. Öppna fliken transparent datakryptering i menyn Datakryptering och kontrollera listan över aktuella nycklar som används av databasen.
Skapa en kopia av databasen genom att välja Kopiera på översiktsmenyn i databasen.
Menyn Skapa SQL Database – Kopiera databas visas. Använd en annan server för den här databasen, men samma inställningar som den databas som du försöker kopiera. I avsnittet transparent datakryptering Nyckelhantering väljer du Konfigurera transparent datakryptering.
När menyn transparent datakryptering visas granskar du CMK-inställningarna för den här kopieringsdatabasen. Inställningarna och nycklarna ska fyllas i med samma identitet och nycklar som används i källdatabasen.
Välj Använd för att fortsätta och välj sedan Granska + skapa och Skapa för att skapa kopieringsdatabasen.
Skapa en sekundär replik som har kundhanterade nycklar på databasnivå
Gå till Azure-portalen och gå till Azure SQL Database som konfigurerats med kundhanterade nycklar på databasnivå. Öppna transparent datakryptering-menyn och kontrollera listan över aktuella nycklar som används av databasen.
Under Datahanteringsinställningar för databasen väljer du Repliker. Välj Skapa replik för att skapa en sekundär replik av databasen.
Menyn Skapa SQL Database – Geo Replica visas. Använd en sekundär server för den här databasen, men samma inställningar som den databas som du försöker replikera. I avsnittet transparent datakryptering Nyckelhantering väljer du Konfigurera transparent datakryptering.
När menyn transparent datakryptering visas granskar du CMK-inställningarna för den här databasrepliken. Inställningarna och nycklarna ska fyllas i med samma identitet och nycklar som används i den primära databasen.
Välj Använd för att fortsätta och välj sedan Granska + skapa och Skapa för att skapa kopieringsdatabasen.
Fyll i listan över aktuella nycklar som används av den primära databasen med parametern expand-keys med current som keys-filter.
az sql db show --name $databaseName --resource-group $resourceGroup --server $serverName --expand-keys --keys-filter current
Välj den användartilldelade hanterade identiteten (och federerat klient-ID om du konfigurerar åtkomst mellan klientorganisationer).
Skapa en ny databas som sekundär och ange den förifyllda listan över nycklar som hämtats från källdatabasen och ovanstående identitet (och federerat klient-ID om du konfigurerar åtkomst mellan klientorganisationer).
# 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
Viktigt!
$keys är en blankstegsavgränsad lista över nycklar som hämtats från källdatabasen.
Om du vill skapa en kopia av databasen kan az sql db-kopia användas med samma parametrar.
# 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
Fyll i listan över aktuella nycklar som används av den primära databasen med kommandot Get-AzSqlDatabase och parametrarna -ExpandKeyList och -KeysFilter "current" . Exkludera -KeysFilter om du vill hämta alla nycklar.
Här är ett exempel på en ARM-mall som skapar en sekundär replik och kopia av en Azure SQL Database som konfigurerats med en användartilldelad hanterad identitet och kundhanterad TDE på databasnivå.
Använd en anpassad distribution i Azure-portalen och Skapa en egen mall i redigeringsprogrammet. Spara sedan konfigurationen när du klistrade in i exemplet.
Fyll i listan över aktuella nycklar som används av den primära databasen i förväg med hjälp av följande REST API-begäran:
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'))
Välj den användartilldelade hanterade identiteten (och federerat klient-ID om du konfigurerar åtkomst mellan klientorganisationer).
Skapa en ny databas som sekundär och ange den ifyllda listan över nycklar som hämtats från källdatabasen och ovanstående identitet (och federerat klient-ID om du konfigurerar åtkomst mellan klientorganisationer) i ARM-mallen keys_to_add som parameter.
Återställa en Azure SQL Database med kundhanterade nycklar på databasnivå
I det här avsnittet går vi igenom stegen för att återställa en Azure SQL Database som konfigurerats med kundhanterade nycklar på databasnivå. En användartilldelad hanterad identitet krävs för att konfigurera en kundhanterad nyckel för transparent datakryptering under fasen för att skapa databasen.
Återställning till tidpunkt
I följande avsnitt beskrivs hur du återställer en databas som konfigurerats med kundhanterade nycklar på databasnivå till en viss tidpunkt. Mer information om säkerhetskopieringsåterställning för SQL Database finns i Återställa en databas i SQL Database.
Gå till Azure-portalen och gå till Azure SQL Database som konfigurerats med kundhanterade nycklar på databasnivå som du vill återställa.
Om du vill återställa databasen till en tidpunkt väljer du Återställ på översiktsmenyn i databasen.
Menyn Skapa SQL Database – Återställ databas visas. Fyll i den käll- och databasinformation som behövs. I avsnittet transparent datakryptering Nyckelhantering väljer du Konfigurera transparent datakryptering.
När menyn transparent datakryptering visas granskar du CMK-inställningarna för databasen. Inställningarna och nycklarna ska fyllas i med samma identitet och nycklar som används i databasen som du försöker återställa.
Välj Använd för att fortsätta och välj sedan Granska + skapa och Skapa för att skapa kopieringsdatabasen.
Fyll i listan över nycklar som används av den primära databasen i förväg med parametern expand-keys med återställningspunkten som keys-filter.
az sql db show --name $databaseName --resource-group $resourceGroup --server $serverName --expand-keys --keys-filter $timestamp
Välj den användartilldelade hanterade identiteten (och federerat klient-ID om du konfigurerar åtkomst mellan klientorganisationer).
Skapa en ny databas som ett återställningsmål och ange den ifyllda listan över nycklar som hämtats från källdatabasen och ovanstående identitet (och federerat klient-ID om du konfigurerar åtkomst mellan klientorganisationer).
# 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
Viktigt!
$keys är en blankstegsavgränsad lista över nycklar som hämtats från källdatabasen.
Fyll i listan över nycklar som används av den primära databasen med kommandot Get-AzSqlDatabase och parametrarna -ExpandKeyList och -KeysFilter "2023-01-01" (2023-01-01 är ett exempel på den tidpunkt då du vill återställa databasen till). Exkludera -KeysFilter om du vill hämta alla nycklar.
I följande avsnitt beskrivs hur du återställer en borttagen databas som har konfigurerats med kundhanterade nycklar på databasnivå. Mer information om säkerhetskopieringsåterställning för SQL Database finns i Återställa en databas i SQL Database.
Gå till Azure-portalen och gå till den logiska servern för den borttagna databas som du vill återställa. Under Datahantering väljer du Borttagna databaser.
Välj den borttagna databas som du vill återställa.
Menyn Skapa SQL Database – Återställ databas visas. Fyll i den käll- och databasinformation som behövs. I avsnittet transparent datakryptering Nyckelhantering väljer du Konfigurera transparent datakryptering.
När menyn transparent datakryptering visas konfigurerar du avsnittet Användartilldelad hanterad identitet, kundhanterad nyckel och ytterligare databasnycklar för databasen.
Välj Använd för att fortsätta och välj sedan Granska + skapa och Skapa för att skapa kopieringsdatabasen.
Fyll i listan över nycklar som används av den borttagna databasen i förväg med hjälp av parametern expand-keys . Vi rekommenderar att du skickar alla nycklar som källdatabasen använde. Du kan också försöka återställa med de nycklar som angavs vid borttagningen med hjälp av parametern keys-filter .
az sql db show-deleted --name $databaseName --resource-group $resourceGroup --server $serverName --restorable-dropped-database-id "databaseName,133201549661600000" --expand-keys
Viktigt!
restorable-dropped-database-id kan hämtas genom att visa en lista över alla återställningsbara borttagna databaser på servern och är av formatet databaseName,deletedTimestamp.
Välj den användartilldelade hanterade identiteten (och federerat klient-ID om du konfigurerar åtkomst mellan klientorganisationer).
Skapa en ny databas som ett återställningsmål och ange den förifyllda listan över nycklar som hämtats från den borttagna källdatabasen och identiteten ovan (och federerat klient-ID om du konfigurerar åtkomst mellan klientorganisationer).
# 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"
Viktigt!
$keys är en blankstegsavgränsad lista över nycklar som hämtats från källdatabasen.
Fyll i listan över nycklar som används av den primära databasen i förväg med kommandot Get-AzSqlDeletedDatabaseBackup och parametern -ExpandKeyList . Vi rekommenderar att du skickar alla nycklar som källdatabasen använde. Du kan också försöka återställa med de nycklar som angavs vid borttagningen med hjälp av parametern -KeysFilter .
DatabaseId kan hämtas genom att visa en lista över alla återställningsbara borttagna databaser på servern och är av formatet databaseName,deletedTimestamp.
Välj den användartilldelade hanterade identiteten (och federerat klient-ID om du konfigurerar åtkomst mellan klientorganisationer).
I följande avsnitt beskrivs hur du återställer en geo-replikerad säkerhetskopia av databasen som har konfigurerats med kundhanterade nycklar på databasnivå. Mer information om säkerhetskopieringsåterställning för SQL Database finns i Återställa en databas i SQL Database.
Gå till Azure-portalen och gå till den logiska server där du vill återställa databasen.
I menyn Översikt väljer du Skapa databas.
Menyn Skapa SQL Database visas. Fyll i flikarna Grundläggande och Nätverk för den nya databasen. I Ytterligare inställningar väljer du Säkerhetskopiering för avsnittet Använd befintliga data och väljer en geo-replikerad säkerhetskopia.
Gå till fliken Säkerhet. I avsnittet transparent datakryptering Nyckelhantering väljer du Konfigurera transparent datakryptering.
När menyn transparent datakryptering visas väljer du Kundhanterad nyckel (CMK) på databasnivå. Den användartilldelade hanterade identiteten, kundhanterad nyckel och ytterligare databasnycklar måste matcha den källdatabas som du vill återställa. Kontrollera att den användartilldelade hanterade identiteten har åtkomst till nyckelvalvet som innehåller den kundhanterade nyckel som användes i säkerhetskopian.
Välj Använd för att fortsätta och välj sedan Granska + skapa och Skapa för att skapa säkerhetskopieringsdatabasen.
Fyll i listan över nycklar som används av geo-säkerhetskopian av databasen som konfigurerats med kundhanterade nycklar på databasnivå med hjälp av parametern expand-keys .
az sql db geo-backup --database-name $databaseName --g $resourceGroup --server $serverName --expand-keys
Välj den användartilldelade hanterade identiteten (och federerat klient-ID om du konfigurerar åtkomst mellan klientorganisationer).
Skapa en ny databas som ett geo-återställningsmål och ange den förifyllda listan över nycklar som hämtats från den borttagna källdatabasen och identiteten ovan (och federerat klient-ID om du konfigurerar åtkomst mellan klientorganisationer).
# 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
Viktigt!
$keys är en blankstegsavgränsad lista över nycklar som hämtats från källdatabasen.
Fyll i listan över nycklar som används av den primära databasen i förväg med kommandot Get-AzSqlDatabaseGeoBackup och -ExpandKeyList för att hämta alla nycklar.
DatabaseId kan hämtas genom att visa en lista över alla återställningsbara borttagna databaser på servern och är av formatet databaseName,deletedTimestamp.
Välj den användartilldelade hanterade identiteten (och federerat klient-ID om du konfigurerar åtkomst mellan klientorganisationer).
Säkerhetskopior av långsiktig kvarhållning (LTR) innehåller inte listan över nycklar som används av säkerhetskopian. För att återställa en LTR-säkerhetskopia måste alla nycklar som används av källdatabasen skickas till LTR-återställningsmålet.
Alternativ för automatisk nyckelrotation för kopierade eller återställde databaser
Nyligen kopierade eller återställde databaser kan konfigureras för att automatiskt rotera den kundhanterade nyckel som används för transparent datakryptering. Information om hur du aktiverar automatisk nyckelrotation i Azure-portalen eller använder API:er finns i Automatisk nyckelrotation på databasnivå.
Nästa steg
Kontrollera följande dokumentation om olika CMK-åtgärder på databasnivå: