Dela via


Identitets- och nyckelhantering för TDE med kundhanterade nycklar på databasnivå

Gäller för:Azure SQL Database

Kommentar

  • 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)).
  • Samma guide kan användas för att konfigurera kundhanterade nycklar på databasnivå i samma klientorganisation genom att undanta parametern federerat klient-ID. Mer information om kundhanterade nycklar på databasnivå finns i Transparent datakryptering (TDE) med kundhanterade nycklar på databasnivå.

I den här guiden går vi igenom stegen för att skapa, uppdatera och hämta en Azure SQL Database 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. Azure Key Vault finns i en annan Microsoft Entra-klientorganisation än Azure SQL Database. Mer information finns i Kundhanterade nycklar mellan klientorganisationer med transparent datakryptering.

Kommentar

Microsoft Entra-ID är det nya namnet för Azure Active Directory (Azure AD). Vi uppdaterar dokumentationen just nu.

Förutsättningar

Nödvändiga resurser för den första klientorganisationen

I den här självstudien förutsätter vi att den första klientorganisationen tillhör en oberoende programvaruleverantör (ISV) och att den andra klientorganisationen kommer från klienten. Mer information om det här scenariot finns i Kundhanterade nycklar mellan klientorganisationer med transparent datakryptering.

Innan vi kan konfigurera TDE för Azure SQL Database med en CMK för flera klientorganisationer måste vi ha ett Microsoft Entra-program med flera klientorganisationer som har konfigurerats med en användartilldelad hanterad identitet tilldelad som en federerad identitetsautentiseringsuppgift för programmet. Följ någon av guiderna i Förutsättningar.

  1. I den första klientorganisationen där du vill skapa Azure SQL Database skapar och konfigurerar du ett Microsoft Entra-program med flera klientorganisationer.

  2. Skapa en användartilldelad hanterad identitet.

  3. Konfigurera den användartilldelade hanterade identiteten som en federerad identitetsautentiseringsuppgift för programmet för flera klientorganisationer.

  4. Registrera programnamnet och program-ID:t. Detta finns i Microsoft Entra ID>Enterprise-program i Azure-portalen>och sök efter det skapade programmet.

Nödvändiga resurser i den andra klientorganisationen

  1. På den andra klientorganisationen där Azure Key Vault finns skapar du ett huvudnamn för tjänsten (programmet) med hjälp av program-ID:t från det registrerade programmet från den första klientorganisationen. Här är några exempel på hur du registrerar programmet för flera klientorganisationer. Ersätt <TenantID> och <ApplicationID> med klientorganisations-ID :t från Microsoft Entra-ID och program-ID från programmet för flera klientorganisationer:

    • PowerShell:

      Connect-AzureAD -TenantID <TenantID>
      New-AzADServicePrincipal  -ApplicationId <ApplicationID>
      
    • Azure CLI:

      az login --tenant <TenantID>
      az ad sp create --id <ApplicationID>
      
  2. Gå till Azure-portalen>Microsoft Entra ID>Enterprise-program och sök efter det program som skapades.

  3. Skapa ett Azure Key Vault om du inte har ett och skapa en nyckel.

  4. Skapa eller ange åtkomstprincipen.

    1. Välj behörigheterna Hämta, Radbryt nyckel, Packa upp nyckel under Nyckelbehörigheter när du skapar åtkomstprincipen.
    2. Välj det program för flera klientorganisationer som skapades i det första steget i alternativet Huvudnamn när du skapar åtkomstprincipen.

    Screenshot of the access policy menu of a key vault in the Azure portal.

  5. När åtkomstprincipen och nyckeln har skapats hämtar du nyckeln från Key Vault och registrerar nyckelidentifieraren.

Skapa en ny Azure SQL Database med kundhanterade nycklar på databasnivå

Följande är exempel på hur du skapar en databas i Azure SQL Database med en användartilldelad hanterad identitet och hur du anger en kundhanterad nyckel mellan klientorganisationer på databasnivå. Den användartilldelade hanterade identiteten krävs för att konfigurera en kundhanterad nyckel för transparent datakryptering under fasen för att skapa databasen.

  1. Bläddra till sidan Välj SQL-distributionsalternativ i Azure-portalen.

  2. Om du inte redan är inloggad på Azure-portalen loggar du in när du uppmanas att göra det.

  3. Under SQL-databaser lämnar du Resurstyp inställd på Enskild databas och väljer Skapa.

  4. På fliken Grundläggande i formuläret Skapa SQL Database går du till Projektinformation och väljer önskad Azure-prenumeration, resursgrupp och server för databasen. Använd sedan ett unikt namn för databasnamnet. Om du inte har skapat en logisk server för Azure SQL Database kan du läsa Skapa server som konfigurerats med TDE med kundhanterad nyckel (CMK) för flera klientorganisationer.

  5. När du kommer till fliken Säkerhet väljer du Konfigurera transparent datakryptering.

    Screenshot of the Azure portal and the Security menu when creating an Azure SQL Database.

  6. På menyn Transparent datakryptering väljer du Kundhanterad nyckel på databasnivå (CMK).

    Screenshot of the Azure portal transparent data encryption menu.

  7. För Användartilldelad hanterad identitet väljer du Konfigurera för att aktivera en databasidentitet och Lägg till en användartilldelad hanterad identitet till resursen om en önskad identitet inte finns med på identitetsmenyn . Välj därefter Tillämpa.

    Screenshot of the Azure portal Identity menu.

    Kommentar

    Du kan konfigurera den federerade klientidentiteten här om du konfigurerar CMK för flera klientorganisationer för TDE.

  8. På menyn Transparent datakryptering väljer du Ändra nyckel. Välj önskad prenumeration, nyckelvalv, nyckel och version för den kundhanterade nyckel som ska användas för TDE. Välj knappen Välj. När du har valt en nyckel kan du också lägga till ytterligare databasnycklar efter behov med hjälp av Azure Key Vault URI (objektidentifierare)menyn Transparent datakryptering .

    Automatisk nyckelrotation kan också aktiveras på databasnivå med hjälp av kryssrutan Rotera nyckel automatiskt på menyn Transparent datakryptering .

    Screenshot of the transparent data encryption menu in the Azure portal referencing adding additional keys.

  9. Välj Använd för att fortsätta skapa databasen.

  10. Välj Granska + skapa längst ned på sidan

  11. På sidan Granska + skapa väljer du Skapa när du har granskat.

Kommentar

Det går inte att skapa databasen om den användartilldelade hanterade identiteten inte har rätt behörigheter aktiverade i nyckelvalvet. Den användartilldelade hanterade identiteten behöver behörigheterna Hämta, wrapKey och unwrapKey i nyckelvalvet. Mer information finns i Hanterade identiteter för transparent datakryptering med kundhanterad nyckel.

Uppdatera en befintlig Azure SQL Database med kundhanterade nycklar på databasnivå

Följande är exempel på hur du uppdaterar en befintlig databas i Azure SQL Database med en användartilldelad hanterad identitet och hur du anger en kundhanterad nyckel mellan klientorganisationer på databasnivå. Den användartilldelade hanterade identiteten krävs för att konfigurera en kundhanterad nyckel för transparent datakryptering under fasen för att skapa databasen.

  1. I Azure-portalen går du till den SQL-databasresurs som du vill uppdatera med en kundhanterad nyckel på databasnivå.

  2. Under Säkerhet väljer du Identitet. Lägg till en användartilldelad hanterad identitet för den här databasen och välj sedan Spara

  3. Gå nu till menyn Datakryptering under Säkerhet för databasen. Välj Kundhanterad nyckel på databasnivå (CMK). Databasidentiteten för databasen bör redan vara Aktiverad eftersom du har konfigurerat identiteten i det senaste steget.

  4. Välj Ändra nyckel. Välj önskad prenumeration, nyckelvalv, nyckel och version för den kundhanterade nyckel som ska användas för TDE. Välj knappen Välj. När du har valt en nyckel kan du också lägga till ytterligare databasnycklar efter behov med hjälp av Azure Key Vault URI (objektidentifierare)menyn Datakryptering .

    Markera kryssrutan Rotera nyckel automatiskt om du vill aktivera automatisk nyckelrotation på databasnivå.

    Screenshot of the Azure portal transparent data encryption menu when updating an existing database.

  5. Välj Spara.

Visa kundhanterade nyckelinställningar på databasnivå i en Azure SQL Database

Följande är exempel på hur du hämtar kundhanterade nycklar på databasnivå för en databas. ARM-resursen Microsoft.Sql/servers/databases visar som standard endast TDE-skyddet och den hanterade identiteten som konfigurerats i databasen. Om du vill expandera den fullständiga listan med nycklar använder du parametern . -ExpandKeyList Dessutom kan filter som och ett tidsvärde (till exempel 2023-01-01) användas för att hämta de aktuella nycklar som -KeysFilter "current" används och nycklar som använts tidigare vid en viss tidpunkt. Dessa filter stöds endast för enskilda databasfrågor och inte för frågor på servernivå.

Om du vill visa kundhanterade nycklar på databasnivå i Azure-portalen går du till menyn Datakryptering i SQL-databasresursen.

Visa en lista över alla nycklar på en logisk server

Om du vill hämta listan över alla nycklar (och inte bara det primära skyddet) som används av varje databas under servern, måste den frågas individuellt med nyckelfiltren. Följande är ett exempel på en PowerShell-fråga för att lista varje nyckel under den logiska servern.

Använd cmdleten 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
}

Återskapa kundhanterad nyckel på databasnivå i en Azure SQL Database

Om det finns ett Otillgängligt TDE-skydd enligt beskrivningen i transparent datakryptering (TDE) med CMK kan en omvaliderad nyckelåtgärd användas för att göra databasen tillgänglig när nyckelåtkomsten har korrigerats. Se följande instruktioner eller kommandon för exempel.

Använd Azure-portalen och leta reda på din SQL-databasresurs. När du har valt sql-databasresursen går du till fliken transparent datakrypteringmenyn Datakryptering under Säkerhetsinställningar. Om databasen har förlorat åtkomsten till Azure Key Vault visas knappen Omvalidera nyckel och du kan välja att återanvända den befintliga nyckeln genom att välja Försök igen befintlig nyckel eller en annan nyckel genom att välja Välj säkerhetskopia.

Återställ kundhanterad nyckel på databasnivå i en Azure SQL Database

En databas som konfigurerats med cmk på databasnivå kan återställas till kryptering på servernivå om servern har konfigurerats med en tjänsthanterad nyckel med hjälp av följande kommandon.

Om du vill återställa inställningen kundhanterad nyckel på databasnivå till krypteringsnyckeln på servernivå i Azure-portalen går du till fliken transparent datakryptering i menyn Datakryptering i SQL-databasresursen. Välj Krypteringsnyckel på servernivå och välj Spara för att spara inställningarna.

Kommentar

För att kunna använda krypteringsnyckelinställningen på servernivå för enskilda databaser måste den logiska servern för Azure SQL Database konfigureras för att använda tjänsthanterad nyckel för TDE.

Nästa steg

Kontrollera följande dokumentation om olika CMK-åtgärder på databasnivå: