Säkerhet för Azure SQL Database och SQL Managed Instance

Slutförd

I den här lektionen beskrivs grunderna för att skydda datanivån för ett program med hjälp av Azure SQL Database, Azure SQL Managed Instance och Azure Synapse Analytics. Den beskrivna säkerhetsstrategin använder en skiktad, djupgående strategi som rör sig utifrån in, enligt bilden nedan.

Diagram som visar djupskydd i lager.

Nätverkssäkerhet

Microsoft Azure SQL Database, Azure SQL Managed Instance och Azure Synapse Analytics tillhandahåller en relationsdatabastjänst för moln- och företagsprogram. För att skydda kunddata förhindrar brandväggar nätverksåtkomst till servern tills åtkomst uttryckligen beviljas baserat på IP-adress eller Azure Virtual Network-trafikursprung.

IP-brandväggsregler

IP-brandväggsregler ger åtkomst till databaser baserat på den ursprungliga IP-adressen för varje begäran.

Brandväggsregler för virtuella nätverk

Tjänstslutpunkter för virtuella nätverk utökar din virtuella nätverksanslutning via Azure-stamnätet och gör det möjligt för Azure SQL Database att identifiera det virtuella nätverksundernätet som trafiken kommer från. Om du vill tillåta trafik att nå Azure SQL Database använder du SQL-tjänsttaggar för att tillåta utgående trafik via nätverkssäkerhetsgrupper.

Regler för virtuellt nätverk gör det möjligt för Azure SQL Database att endast acceptera kommunikation som skickas från valda undernät i ett virtuellt nätverk.

Åtkomsthantering

Viktigt!

Hantering av databaser och servrar i Azure styrs av ditt portalanvändarkontos rolltilldelningar.

Autentisering

Autentisering är en process där användare bevisar sin identitet. SQL Database och SQL Managed Instance stöder SQL-autentisering och autentisering med Microsoft Entra-ID. SQL Managed Instance har dessutom stöd för Windows-autentisering för Microsoft Entra-huvudnamn.

SQL-autentisering:

SQL-autentisering avser autentisering av en användare vid anslutning till Azure SQL Database eller Azure SQL Managed Instance med användarnamn och lösenord. En serveradministratörsinloggning med ett användarnamn och lösenord måste anges när servern skapas. Med dessa autentiseringsuppgifter kan en serveradministratör autentisera till valfri databas på servern eller instansen som databasägare. Därefter kan ytterligare SQL-inloggningar och användare skapas av serveradministratören, vilket gör det möjligt för användare att ansluta med användarnamn och lösenord.

Microsoft Entra-autentisering:

Microsoft Entra-autentisering är en mekanism för att ansluta till Azure SQL Database, Azure SQL Managed Instance och Azure Synapse Analytics med hjälp av identiteter i Microsoft Entra-ID. Med Microsoft Entra-autentisering kan administratörer centralt hantera databasanvändares identiteter och behörigheter tillsammans med andra Azure-tjänster på en central plats. Detta minimerar lösenordslagringen och aktiverar centraliserade principer för lösenordsrotation.

En serveradministratör som heter Microsoft Entra-administratören måste skapas för att använda Microsoft Entra-autentisering med SQL Database. Mer information finns i Ansluta till SQL Database med Microsoft Entra-autentisering. Microsoft Entra-autentisering stöder både hanterade och federerade konton. De federerade kontona stöder Windows-användare och -grupper för en kunddomän federerad med Microsoft Entra-ID.

Microsoft Entra stöder flera olika autentiseringsalternativ, inklusive multifaktorautentisering, integrerad Windows-autentisering och villkorsstyrd åtkomst.

Windows-autentisering för Microsoft Entra-huvudnamn:

Kerberos-autentisering för Microsoft Entra-huvudnamn möjliggör Windows-autentisering för Azure SQL Managed Instance. Windows-autentisering för hanterade instanser gör det möjligt för kunder att flytta befintliga tjänster till molnet samtidigt som de upprätthåller en sömlös användarupplevelse och utgör grunden för infrastrukturmodernisering.

Om du vill aktivera Windows-autentisering för Microsoft Entra-huvudkonton omvandlar du din Microsoft Entra-klientorganisation till en oberoende Kerberos-sfär och skapar ett inkommande förtroende för kunddomänen.

Viktigt!

Hantering av databaser och servrar i Azure styrs av ditt portalanvändarkontos rolltilldelningar.

Auktorisering

Auktorisering syftar på att kontrollera åtkomsten till resurser och kommandon i en databas. Detta görs genom att tilldela behörigheter till en användare i en databas i Azure SQL Database eller Azure SQL Managed Instance. Behörigheter hanteras helst genom att lägga till användarkonton i databasroller och tilldela behörigheter på databasnivå till dessa roller. En enskild användare kan också beviljas vissa behörigheter på objektnivå.

Vi rekommenderar att du skapar anpassade roller när det behövs. Lägg till användare i rollen med de minsta behörigheter som krävs för att utföra sin jobbfunktion. Tilldela inte behörigheter direkt till användare. Serveradministratörskontot är medlem i den inbyggda db_owner rollen, som har omfattande behörigheter och bör endast beviljas till få användare med administrativa uppgifter. För att ytterligare begränsa omfånget för vad en användare kan göra kan EXECUTE AS användas för att ange körningskontexten för den anropade modulen.

Säkerhet på radnivå

Säkerhet på radnivå gör det möjligt för kunder att styra åtkomsten till rader i en databastabell baserat på egenskaperna hos användaren som kör en fråga (till exempel gruppmedlemskap eller körningskontext). Säkerhet på radnivå kan också användas för att implementera anpassade etikettbaserade säkerhetsbegrepp.

Digram visar hur säkerhet på radnivå säkerhet på radnivå gör det möjligt för kunder att styra åtkomsten till rader i en databastabell.

Hotskydd

SQL Database och SQL Managed Instance skyddar kunddata genom att tillhandahålla funktioner för granskning och hotidentifiering.

SQL-granskning i Azure Monitor-loggar och Event Hubs

SQL Database- och SQL Managed Instance-granskning spårar databasaktiviteter och hjälper till att upprätthålla efterlevnad av säkerhetsstandarder genom att registrera databashändelser i en granskningslogg i ett kundägt Azure-lagringskonto. Med granskning kan användare övervaka pågående databasaktiviteter samt analysera och undersöka historiska aktiviteter för att identifiera potentiella hot eller misstänkt missbruk och säkerhetsöverträdelser.

Advanced Threat Protection

Advanced Threat Protection analyserar loggarna för att identifiera ovanligt beteende och potentiellt skadliga försök att komma åt eller utnyttja databaser. Aviseringar skapas för misstänkta aktiviteter som SQL-inmatning, potentiell datainfiltration och råstyrkeattacker eller avvikelser i åtkomstmönster för att fånga privilegiereskaleringar och användning av autentiseringsuppgifter som har brutits. Aviseringar visas från Microsoft Defender för molnet, där information om misstänkta aktiviteter tillhandahålls och rekommendationer för ytterligare undersökning ges tillsammans med åtgärder för att minimera hotet. Advanced Threat Protection kan aktiveras per server mot en extra avgift.

Diagram som visar hur Advanced Threat Protection analyserar loggarna för att identifiera ovanligt beteende.

Informationsskydd och kryptering

TLS (kryptering under överföring)

SQL Database, SQL Managed Instance och Azure Synapse Analytics skyddar kunddata genom att kryptera data i rörelse med Transport Layer Security (TLS).

SQL Database, SQL Managed Instance och Azure Synapse Analytics framtvingar kryptering (SSL/TLS) hela tiden för alla anslutningar. Detta säkerställer att alla data krypteras "under överföring" mellan klienten och servern oavsett inställningen för Encrypt eller TrustServerCertificate i anslutningssträng.

Vi rekommenderar att du i anslutningssträng som används av programmet anger en krypterad anslutning och inte litar på servercertifikatet. Då måste appen verifiera servercertifikatet, vilket skyddar appen mot angrepp av typen ”man in the middle”.

När du till exempel använder drivrutinen ADO.NET uppnås detta via Encrypt=True och TrustServerCertificate=False. Om du hämtar anslutningssträngen från Azure-portalen har den rätt inställningar.

Viktigt!

Observera att vissa icke-Microsoft-drivrutiner kanske inte använder TLS som standard eller förlitar sig på en äldre version av TLS (<1.2) för att fungera. I det här fallet kan du fortfarande ansluta till databasen på servern. Vi rekommenderar dock att du utvärderar säkerhetsriskerna med att tillåta sådana drivrutiner och program att ansluta till SQL Database, särskilt om du lagrar känsliga data.

transparent datakryptering (kryptering i vila)

Transparent datakryptering (TDE) för SQL Database, SQL Managed Instance och Azure Synapse Analytics lägger till ett säkerhetslager för att skydda vilande data från obehörig eller offlineåtkomst till rådatafiler eller säkerhetskopior. Vanliga scenarier är stöld av datacenter eller oskyddad bortskaffande av maskinvara eller media, till exempel diskenheter och säkerhetskopieringsband. TDE krypterar hela databasen med hjälp av en AES-krypteringsalgoritm, som inte kräver att programutvecklare gör några ändringar i befintliga program.

I Azure krypteras alla nyligen skapade databaser som standard och databaskrypteringsnyckeln skyddas av ett inbyggt servercertifikat. Certifikatunderhåll och rotation hanteras av tjänsten och kräver inga indata från användaren. Kunder som föredrar att ta kontroll över krypteringsnycklarna kan hantera nycklarna i Azure Key Vault.

Nyckelhantering med Azure Key Vault

Byok-stöd (Bring Your Own Key) för transparent datakryptering (TDE) gör det möjligt för kunder att ta ansvar för nyckelhantering och rotation med hjälp av Azure Key Vault, Azures molnbaserade system för hantering av externa nycklar. Om databasens åtkomst till nyckelvalvet återkallas kan en databas inte dekrypteras och läsas in i minnet. Azure Key Vault tillhandahåller en central plattform för nyckelhantering, utnyttjar noggrant övervakade maskinvarusäkerhetsmoduler (HSM) och möjliggör uppdelning av uppgifter mellan hantering av nycklar och data för att uppfylla kraven på säkerhetsefterlevnad.

Always Encrypted (kryptering används)

Diagram som visar hur Bring Your Own Key-stöd för transparent datakryptering gör det möjligt för kunder att ta ansvar för nyckelhantering.

Always Encrypted är en funktion som är utformad för att skydda känsliga data som lagras i specifika databaskolumner från åtkomst (till exempel kreditkortsnummer, nationella/regionala identifieringsnummer eller data som behöver veta). Detta omfattar databasadministratörer eller andra privilegierade användare som har behörighet att komma åt databasen för att utföra hanteringsuppgifter, men som inte har något företag behöver komma åt specifika data i de krypterade kolumnerna. Data krypteras alltid, vilket innebär att krypterade data dekrypteras endast för bearbetning av klientprogram med åtkomst till krypteringsnyckeln. Krypteringsnyckeln exponeras aldrig för SQL Database eller SQL Managed Instance och kan lagras antingen i Windows Certificate Store eller i Azure Key Vault.

Dynamisk datamaskning

Diagram som visar hur Always Encrypted är utformat för att skydda känsliga data som lagras i specifika databaskolumner.

Med dynamisk datamaskering begränsas exponeringen av känsliga data genom att de maskeras för icke-privilegierade användare. Dynamisk datamaskering identifierar automatiskt potentiellt känsliga data i Azure SQL Database och SQL Managed Instance och ger användbara rekommendationer för att maskera dessa fält, med minimal påverkan på programskiktet. Det fungerar genom att dölja känslig data i resultatuppsättningen för en fråga över angivna databasfält, medan data i databasen förblir oförändrad.

Säkerhetshantering

Sårbarhetsbedömning

Sårbarhetsbedömning är en lättkonfigureringstjänst som kan identifiera, spåra och hjälpa till att åtgärda potentiella sårbarheter i databasen med målet att proaktivt förbättra den övergripande databassäkerheten. Sårbarhetsbedömning (VA) är en del av Microsoft Defender för SQL-erbjudandet, som är ett enhetligt paket för avancerade SQL-säkerhetsfunktioner. Vulnerability Assessment kan nås och hanteras via den centrala Microsoft Defender for SQL-portalen.

Identifiering och klassificering av data

Dataidentifiering och -klassificering (för närvarande i förhandsversion) ger grundläggande funktioner inbyggda i Azure SQL Database och SQL Managed Instance för identifiering, klassificering och etikettering av känsliga data i dina databaser. Att upptäcka och klassificera dina ytterst känsliga data (företag/ekonomi, sjukvård, personuppgifter osv.) kan spela en avgörande roll i organisationens informationsskyddsstatus. Tjänsten kan fungera som infrastruktur inom följande områden:

  • Olika säkerhetsscenarier, till exempel övervakning (granskning) och aviseringar om avvikande åtkomst till känsliga data.
  • Kontrollera åtkomsten till och förstärka säkerheten för databaser som innehåller mycket känsliga data.
  • Hjälp med att uppfylla standarder för datasekretess och efterlevnadsregler.