Skydda dina data
Nu när nätverket och identitetsåtkomsten har konfigurerats och skyddats bör vi tänka på hur du ska skydda dina data, oavsett om de är i vila eller i rörelse eller visas av användare och administratörer.
Datakryptering
Krypterade anslutningar tvingas av Azure SQL Database, med alternativet att dessutom ange den inkommande TLS-version (Transport Layer Security) som krävs (>1.0, >1.1 eller >1.2). Vi rekommenderar att du tvingar fram kryptering på klienten för att undvika serverförhandling och att du inte litar på servercertifikatet som bästa praxis.
Transparent datakryptering
transparent datakryptering (TDE) tillhandahåller kryptering för vilande data och är aktiverat som standard för alla nya databaser i Azure SQL Database. Du kan konfigurera den för alla distributionsalternativ med en växel i Azure Portal, som du ser här:
På servernivå kan du också välja att använda en tjänsthanterad nyckel eller använda Byok (Bring Your Own Key) med hjälp av alternativet Kundhanterad nyckel. Standard är att låta Azure-tjänsten hantera nyckeln. Azure genererar automatiskt en nyckel för att kryptera dina databaser och hanterar nyckelrotationerna. Du har lärt dig hur du gör detta med Azure Portal, men du kan också använda Azure PowerShell, Azure CLI, Transact-SQL (T-SQL) eller REST-API:er.
Kundhanterade nycklar med TDE
Du kan alternativt använda BYOK och dra nytta av ett Azure-nyckelvalv. Fördelarna med att använda kundhanterade nycklar är:
- Fullständig och detaljerad kontroll över användning och hantering av TDE-skyddet
- Transparens i TDE-skyddsanvändningen
- Möjlighet att implementera ansvarsfördelning vid hantering av nycklar och data inom organisationen
- Nyckelvalvsadministratören kan återkalla behörigheter för nyckelåtkomst för att göra krypterad databas otillgänglig
- Central hantering av nycklar i AKV
- Större förtroende från dina slutkunder eftersom AKV är utformat så att Microsoft inte kan se eller extrahera krypteringsnycklar
Du kan också dra nytta av att använda en användartilldelad hanterad identitet (UMI) med kundhanterade nycklar för TDE, som:
- Gör det möjligt att förauktorisera åtkomst till nyckelvalv för logiska Azure SQL-servrar 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 och ge den åtkomst till nyckelvalvet.
- Ger möjlighet att framtvinga CMK vid serverskapande med en tillgänglig inbyggd Azure-princip.
Automatisk nyckelrotation har introducerats för kundhanterade nycklar med hjälp av TDE. När den är aktiverad kontrollerar servern kontinuerligt nyckelvalvet efter nya versioner av nyckeln som används som TDE-skydd. Om en ny version av nyckeln identifieras roteras TDE-skyddet på servern automatiskt till den senaste nyckelversionen inom 60 minuter.
Alltid krypterad
Du kan även dra nytta av kryptering på kolumnnivå, vilket stöds i Azure SQL precis som i SQL Server. Den här processen omfattar användning av kryptering på klientsidan av känsliga, vilket använder nycklar som aldrig ges till databassystemet. Dessutom krypterar klientdrivrutinen transparent frågeparametrar och dekrypterar de krypterade resultatet. Det finns för närvarande stöd för krypterade data för likhetsjämförelse, inklusive JOIN
, GROUP BY
och DISTINCT
operatorer genom deterministisk kryptering.
Always Encrypted med säkra enklaver utökar funktionerna för konfidentiell databehandling i Always Encrypted genom att aktivera kryptering på plats och rikare konfidentiella frågor. Funktionen Always Encrypted med säkra enklaver är nu tillgänglig för Azure SQL Database, men stöds ännu inte för Azure SQL Managed Instance.
Dynamisk datamaskering
Ibland kan du vilja maskera eller ändra vissa data så att icke-privilegierade användare inte kan se dem, men de kan fortfarande köra frågor som inkluderar dessa data. Den här funktionen stöds precis som i SQL Server. Dock finns det fler funktioner och vyer i Azure-portalen som gör att du kan se rekommendationer för fält som kan maskeras.
Låt oss ta en titt på ett exempel där data innehåller känslig information, till exempel namn och e-postadresser. Du kan använda en mask på dessa kolumner i Azure Portal genom att välja menyn Dynamisk datamaskering under Säkerhet i konfigurationsfönstret för SQL-databasen eller med hjälp av följande T-SQL-kommandon:
ALTER TABLE Data.Membership ALTER COLUMN FirstName
ADD MASKED WITH (FUNCTION = 'partial(1, "xxxxx", 1)')
ALTER TABLE Data.Membership ALTER COLUMN Email
ADD MASKED WITH (FUNCTION = 'email()')
ALTER TABLE Data.Membership ALTER COLUMN DiscountCode
ADD MASKED WITH (FUNCTION = 'random(1, 100)')
GRANT UNMASK to DataOfficers
Från föregående kommandon kan du se att det finns flera sätt att tillämpa en mask via funktioner.
Till exempel kan vissa användare, om de tilldelas till en roll som DataOfficers (det här är bara ett exempel, inte en officiell roll), behöva kunna visa maskerade data. Du kan ge dem UNMASK
behörigheter med följande T-SQL-kommando:
GRANT UNMASK TO DataOfficers
Beroende på vem som kör frågor skulle resultatet bli följande:
Med introduktionen till detaljerade behörigheter för dynamisk datamaskering kan du bevilja eller återkalla UNMASK
behörighet på databasnivå, schemanivå, tabellnivå eller på kolumnnivå till en databasanvändare, Microsoft Entra-identitet, Microsoft Entra-grupp eller databasroll.
Uppgifter för dataskydd
För att ange och konfigurera dataskydd bör du göra följande:
- Se till att dina program tvingar fram anslutningskryptering och använder den högsta TLS-versionen som är kompatibel med ditt program, dina klienter och drivrutiner.
- Utvärdera och aktivera TDE. Detta är standardinställningen för nya databaser, men om du migrerar kan du behöva aktivera det.
- Dra nytta av dynamisk datamaskering.
- För avancerat skydd kan du konfigurera funktionen Always Encrypted med säkra enklaver .