Dela via


Hanterade identiteter för transparent datakryptering med kundhanterad nyckel

Gäller för:Azure SQL DatabaseAzure SQL Managed Instance

Microsoft Entra ID tidigare Azure Active Directory tillhandahåller en automatiskt hanterad identitet för att autentisera till alla Azure-tjänster som stöder Microsoft Entra-autentisering, till exempel Azure Key Vault, utan att exponera autentiseringsuppgifter i koden. Mer information finns i Hanterade identitetstyper i Azure.

Hanterade identiteter kan vara av två typer:

  • Systemtilldelad
  • Användartilldelad

Mer information finns i Hanterade identiteter i Microsoft Entra-ID för Azure SQL.

För TDE med kundhanterad nyckel (CMK) i Azure SQL används en hanterad identitet på servern för att ge åtkomsträttigheter till servern i nyckelvalvet. Till exempel bör den systemtilldelade hanterade identiteten för servern tillhandahållas behörigheter för nyckelvalv innan du aktiverar TDE med CMK på servern.

Förutom den systemtilldelade hanterade identiteten som redan stöds för TDE med CMK kan en användartilldelad hanterad identitet (UMI) som är tilldelad till servern användas för att tillåta servern att komma åt nyckelvalvet. En förutsättning för att aktivera åtkomst till key vault är att se till att den användartilldelade hanterade identiteten har angetts behörigheterna Get, wrapKey och unwrapKey i nyckelvalvet. Eftersom den användartilldelade hanterade identiteten är en fristående resurs som kan skapas och beviljas åtkomst till nyckelvalvet kan TDE med en kundhanterad nyckel nu aktiveras när servern eller databasen skapas.

Kommentar

För att tilldela en användartilldelad hanterad identitet till den logiska servern eller den hanterade instansen måste en användare ha ROLLEN SQL Server-deltagare eller SQL Managed Instance-deltagare i Azure RBAC tillsammans med andra Azure RBAC-roller som innehåller åtgärden Microsoft.ManagedIdentity/userAssignedIdentities/*/assign/action .

Fördelar med att använda UMI för kundhanterad TDE

  • Gör det möjligt att förauktorisera åtkomst till nyckelvalvet för logiska Azure SQL-servrar eller hanterade instanser genom att skapa en användartilldelad hanterad identitet och ge den åtkomst till nyckelvalvet, även innan servern eller databasen har skapats

  • Tillåter skapande av en logisk Azure SQL-server med TDE och CMK aktiverat

  • Gör att samma användartilldelade hanterade identitet kan tilldelas till flera servrar, vilket eliminerar behovet av att individuellt aktivera systemtilldelad hanterad identitet för varje logisk Azure SQL-server eller hanterad instans och ge den åtkomst till nyckelvalvet

  • Ger möjlighet att framtvinga CMK när servern skapas med en tillgänglig inbyggd Azure-princip

Överväganden vid användning av UMI för kundhanterad TDE

  • Som standard använder TDE i Azure SQL den primära användartilldelade hanterade identiteten som angetts på servern för åtkomst till nyckelvalvet. Om inga användartilldelade identiteter har tilldelats till servern används serverns systemtilldelade hanterade identitet för nyckelvalvsåtkomst.
  • När du använder en användartilldelad hanterad identitet för TDE med CMK tilldelar du identiteten till servern och anger den som den primära identiteten för servern
  • Den primära användartilldelade hanterade identiteten kräver kontinuerlig åtkomst till nyckelvalvet (get, wrapKey, unwrapKey-behörigheter ). Om identitetens åtkomst till nyckelvalvet har återkallats eller om tillräckliga behörigheter inte har angetts övergår databasen till otillgängligt tillstånd
  • Om den primära användartilldelade hanterade identiteten uppdateras till en annan användartilldelad hanterad identitet måste den nya identiteten ges nödvändiga behörigheter till nyckelvalvet innan du uppdaterar den primära
  • Om du vill växla servern från användartilldelad till systemtilldelad hanterad identitet för åtkomst till nyckelvalvet anger du den systemtilldelade hanterade identiteten med nödvändiga behörigheter för nyckelvalvet och tar sedan bort alla användartilldelade hanterade identiteter från servern

Viktigt!

Den primära användartilldelade hanterade identiteten som används för TDE med CMK bör inte tas bort från Azure. Om du tar bort den här identiteten förlorar servern åtkomsten till nyckelvalvet och databaserna blir otillgängliga.

Begränsningar och kända problem

  • Om nyckelvalvet finns bakom ett virtuellt nätverk som använder en brandvägg måste alternativet Tillåt betrodda Microsoft-tjänster att kringgå den här brandväggen vara aktiverat i nyckelvalvets nätverksmeny om du vill använda en användartilldelad hanterad identitet eller systemtilldelad hanterad identitet. När det här alternativet är aktiverat kan tillgängliga nycklar inte visas i SQL Server TDE-menyn i Azure-portalen. Om du vill ange en enskild CMK måste en nyckelidentifierare användas. När alternativet Tillåt betrodda Microsoft-tjänster att kringgå den här brandväggen inte är aktiverat returneras följande fel:
    • 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).
    • Om du får felet ovan kontrollerar du om nyckelvalvet ligger bakom ett virtuellt nätverk eller en brandvägg och ser till att alternativet Tillåt betrodda Microsoft-tjänster att kringgå den här brandväggen är aktiverat.
  • Användartilldelad hanterad identitet för SQL Managed Instances stöds för närvarande endast i nyckelvalv som har offentlig åtkomst från alla nätverk aktiverade. Det stöds inte när AKV-brandväggen filtrerar specifika virtuella nätverk och IP-adresser eller använder privata slutpunktsanslutningar.
  • När flera användartilldelade hanterade identiteter tilldelas till servern eller den hanterade instansen, om en enda identitet tas bort från servern med hjälp av identitetsbladet i Azure-portalen, lyckas åtgärden men identiteten tas inte bort från servern. Det går att ta bort alla användartilldelade hanterade identiteter från Azure-portalen.
  • När servern eller den hanterade instansen har konfigurerats med kundhanterad TDE och både systemtilldelade och användartilldelade hanterade identiteter är aktiverade på servern, resulterar borttagning av användartilldelade hanterade identiteter från servern utan att först ge den systemtilldelade hanterade identiteten åtkomst till nyckelvalvet ett oväntat fel uppstod . Kontrollera att den systemtilldelade hanterade identiteten har fått åtkomst till nyckelvalvet innan du tar bort den primära användartilldelade hanterade identiteten (och andra användartilldelade hanterade identiteter) från servern.

Nästa steg

Se även