Övning – Dataklassificering, dynamisk datamaskering och SQL-granskning
I den här övningen kombinerar du dina lärdomar från modulen för att gå igenom ett scenario. Du får lära dig hur du lägger till nya dataklassificeringar och dynamiska datamasker och sedan ser du olika metoder för granskning av användare som försöker visa kolumner som har markerats för dataklassificering. Den här övningen kombinerar flera av de begrepp som du redan har lärt dig i modulen om att hantera säkerhet.
Konfigurera dataklassificering och maskering
I Azure-portalen går du till din Azure SQL Database-instans (inte logisk server).
I den vänstra rutan går du till Securityoch väljer Data Discovery & Classification.
Välj fliken Klassificering och välj sedan Lägg till klassificering.
I en tidigare övning lade du till alla rekommenderade kolumnklassificeringar. I det här steget du manuellt lägga till en potentiellt känslig kolumn i listan över klassificerade kolumner.
I SalesLT-kundtabellen identifierade Data Discovery & Classification
FirstName
ochLastName
för klassificering, men inteMiddleName
. Använd listrutorna för att lägga till den nu och välj sedan Lägg till klassificering.Välj Spara.
Bekräfta att klassificeringen har lagts till genom att visa fliken Översikt och bekräfta att
MiddleName
nu visas i listan över klassificerade kolumner under SalesLT-schemat.I den vänstra rutan väljer du Översikt för att gå tillbaka till översikten över databasen.
DDM (Dynamic Data Masking) är tillgängligt i både Azure SQL och SQL Server. DDM begränsar dataexponeringen genom att maskera känsliga data till icke-privilegierade användare på SQL Server-nivå i stället för på programnivå där du måste koda dessa typer av regler. Azure SQL rekommenderar objekt som du kan maskera, eller så kan du lägga till masker manuellt.
I nästa steg maskerar du kolumnerna
FirstName
,MiddleName
ochLastName
som du granskade i föregående steg.I Azure-portalen går du till din Azure SQL Database. I den vänstra rutan under Securityväljer du Dynamisk datamaskningoch väljer sedan Lägg till mask.
I listrutorna väljer du schemat SalesLT, tabellen Kund, och kolumnen Förnamn. Du kan granska alternativen för maskering, men standardalternativet är bra för det här scenariot. Välj Lägg till för att lägga till maskeringsregeln.
Upprepa föregående steg för både MiddleName och LastName i tabellen.
Nu har du tre maskeringsregler som liknar de som visas här:
Välj Spara.
I den vänstra rutan väljer du Översikt för att gå tillbaka till översikten över databasen.
Hämta data som är klassificerade och maskerade
Därefter simulerar du någon som frågar efter de klassificerade kolumnerna och utforskar dynamisk datamaskering i praktiken.
Gå till SQL Server Management Studio (SSMS),
Om du vill skapa en ny fråga i AdventureWorks-databasen högerklickar du på databasen och väljer sedan Ny fråga.
Kör följande fråga för att returnera klassificerade data och i vissa fall kolumner markerade för maskerade data. Välj Kör för att köra frågan.
SELECT TOP 10 FirstName, MiddleName, LastName FROM SalesLT.Customer;
Resultatet bör visa de första 10 namnen, utan maskering. Varför? Eftersom du är administratör för den här logiska Azure SQL Database-servern.
I följande fråga skapar du en ny användare och kör föregående fråga som den användaren. Du använder också
EXECUTE AS
för att personifieraBob
. När enEXECUTE AS
-instruktion körs växlas sessionens körningskontext till inloggningen eller användaren. Det innebär att behörigheterna kontrolleras mot inloggningen eller användaren i stället för den person som kör kommandotEXECUTE AS
(i det här fallet du).REVERT
används sedan för att sluta personifiera inloggningen eller användaren.Du kanske känner igen de första delarna av kommandona som följer, eftersom de är en upprepning från en tidigare övning. Skapa en ny fråga med följande kommandon och välj sedan Kör för att köra frågan och observera resultatet.
-- Create a new SQL user and give them a password CREATE USER Bob WITH PASSWORD = 'c0mpl3xPassword!'; -- Until you run the following two lines, Bob has no access to read or write data ALTER ROLE db_datareader ADD MEMBER Bob; ALTER ROLE db_datawriter ADD MEMBER Bob; -- Execute as our new, low-privilege user, Bob EXECUTE AS USER = 'Bob'; SELECT TOP 10 FirstName, MiddleName, LastName FROM SalesLT.Customer; REVERT;
Resultatet bör nu visa de första 10 namnen, men med maskering tillämpat. Bob har inte beviljats åtkomst till den omaskerade formen av dessa data.
Tänk om Bob av någon anledning behöver åtkomst till namnen och får behörighet att ha det?
Du kan uppdatera undantagna användare från maskering i Azure-portalen genom att gå till fönstret dynamisk datamaskering under Security, men du kan också göra det med hjälp av T-SQL.
Högerklicka på databasen AdventureWorks och välj Ny fråga, och ange sedan följande fråga för att Bob ska kunna fråga namnresultaten utan maskering. Välj Kör för att köra frågan.
GRANT UNMASK TO Bob; EXECUTE AS USER = 'Bob'; SELECT TOP 10 FirstName, MiddleName, LastName FROM SalesLT.Customer; REVERT;
Dina resultat bör innehålla namnen i sin helhet.
Du kan också ta bort en användares avmaskeringsprivilegier och bekräfta den åtgärden genom att köra följande T-SQL-kommandon i en ny fråga:
-- Remove unmasking privilege REVOKE UNMASK TO Bob; -- Execute as Bob EXECUTE AS USER = 'Bob'; SELECT TOP 10 FirstName, MiddleName, LastName FROM SalesLT.Customer; REVERT;
Dina resultat bör innehålla de maskerade namnen.
Granska granskningsloggar i SSMS
Som administratör kanske du vill granska och granska vem som har åtkomst till databaserna och särskilt de klassificerade data. Därefter kan du ta en titt på granskningsfilerna som skickas till Azure Blob Storage. Det första du måste göra är att slå samman granskningsfilerna, om loggarna sträcker sig över flera filer. Du kan göra detta från SSMS genom att göra följande:
Välj Fil>Öppna>Sammanfoga granskningsfiler.
Välj Lägg till.
Välj Lägg till från Azure Blob Storageoch välj sedan Anslut.
Logga in på Azure med det konto som du använder för den här modulen.
Välj den prenumeration, det lagringskonto och den blobcontainer som du konfigurerade för att ta emot granskningsloggarna. Lagringskontot bör börja med
sql
. Det kommer att kallassqldbauditlogs
. Om det inte finns någon container med det namnet har du skapat ett annat lagringskonto för granskning. använd det i stället.Välj din logiska Azure SQL Database-server och din
AdventureWorks
databas. Kontrollera att Från tid är tidigare än när du startade övningarna. Välj OK.I bekräftelsefönstret får du veta hur många filer som laddas ned och sammanfogas. Välj OK.
Granska filerna och välj sedan OK en sista gång.
Alla granskningsloggar visas nu. Sök efter platsen där du testade maskering tillsammans med Bob. Listan bör vara nära slutet.
Välj uttalandet och granska sedan informationen i detaljpanelen. För en av frågorna där Bob försöker visa klassificerade data kan du till exempel se de data som klassificeras under fältet
data_sensitivity_information
.Dubbelklicka på värdet för data_sensitivity_information i fönstret Detaljer. Ett popup-fönster öppnas så att du enklare kan läsa data.
Här är ett exempel på vad du kan se under
data_sensitivity_information
:<sensitivity_attributes max_rank="20" max_rank_desc="Medium"><sensitivity_attribute label="Confidential - GDPR" label_id="bf91e08c-f4f0-478a-b016-23422b2a65ff" information_type="Name" information_type_id="57845286-7598-22f5-3422-15b24aeb125e" rank="20" rank_desc="Medium"/></sensitivity_attributes>
Du kan sedan exportera den här sammanfogade filen till en XEL-fil, en CSV-fil eller en tabell för ytterligare analys. Du kan också köra frågor mot extended events-filerna med hjälp av Azure PowerShell.
Granska granskningsloggar i Azure-portalen
Att analysera granskningsloggarna beror på vad du föredrar. I det här avsnittet exponeras du för att köra frågor mot säkerhetsloggar i Azure-portalen med Log Analytics.
Gå till din
AdventureWorks
-databas i Azure-portalen. I den vänstra rutan under Securityväljer du Granskningoch väljer sedan knappen Visa granskningsloggar i aktivitetsfältet.Nu bör du kunna se en frågeställning av dina händelseposter, alternativ för att köra i Frågeredigeraren (köra T-SQL-frågor via portalen), alternativ för Log Analytics, se instrumentpanelen och mer.
Titta gärna runt för att förstå vad några av alternativen är.
Välj Log Analytics. Du kan behöva välja Uppdatera för att komma åt knappen Log Analytics. Om du ser en skärm Komma igång väljer du OK. Detta tar dig till en frågeredigerare, men det är inte en T-SQL-redigerare. I den här vyn kan du köra frågor mot loggar med hjälp av KQL (Kusto Query Language), som är avsedd för SQL-proffs att enkelt använda och förstå.
Standardfrågan frågar efter kategorin
SQLSecurityAuditEvents
. Även om du kan använda den här kategorin nu för att visa säkerhetsrelaterade incidenter kan det här verktyget även användas för att fråga andra Azure-loggar och kategorier i Log Analytics. I det här steget kan du leta efter de påståenden där Bob försökte komma åt känslig information. Om du vill få samma information som du såg i SSMS expanderar du radinformationen genom att välja knappen>
.Det kan ta några minuter innan resultaten visas här. Du kan uppdatera frågan genom att välja Kör igen.
I den här aktiviteten går du inte djupt in i KQL-frågor om loggar, men det finns många resurser i de tidigare referenserna om du vill ha mer övning senare.
I nästa steg ser du hur SQL Security har skapat en instrumentpanel baserat på Log Analytics, så att du kan övervaka och granska loggarna och annan SQL-aktivitet. Om du vill återgå till rutan Granskningsposter stänger du Log Analytics-frågefönstret genom att välja X längst upp till höger.
Välj Visa instrumentpanel.
En översiktsinstrumentpanel visas.
Välj Azure SQL – Åtkomst till känsliga data för att visa mer information.
Du kan behöva vänta tre till fem minuter och välja Uppdatera för att objekt ska visas här.
Du kan använda den här detaljerade informationen för att ta reda på följande:
- Hur många frågor som har åtkomst till känsliga data.
- Vilka typer och känsligheter för data som används.
- Vilka huvudanvändare har åtkomst till känsliga data.
- Vilka IP-adresser som har åtkomst till känsliga data.
Granska vad som är tillgängligt här och hur du kan granska användningen med det här verktyget. Du kan till och med välja var och en av dessa och se relaterade loggar i Log Analytics.
När du är klar stänger du fönstret Azure SQL – Åtkomst till känsliga data genom att välja X- längst upp till höger.
Tillbaka i översiktsfönstret på instrumentpanelen för granskning väljer du Azure SQL – Security Insights.
Den här instrumentpanelen visar mer granskningsinformation som hjälper dig att förstå databasaktivitet och få insikter om avvikelser. Ägna några minuter åt att granska och undersöka alternativen här.
Förutom att visa dessa insikter för Azure SQL-tjänster kan du använda Microsoft Defender för molnet för att övervaka, hantera och svara på problem som uppstår i hela din Azure-egendom. Om du vill titta på vad som är tillgängligt utanför Azure SQL Defender för molnet kan du söka efter och välja Microsoft Defender för molnet i Azure-portalen. Din åtkomst kan vara begränsad, beroende på din prenumerationsnivå.