Übung: Datenklassifizierung, dynamische Datenmaskierung und SQL-Auditing
In dieser Übung wenden Sie Ihre Lernerfolge aus dem Modul auf ein Szenario an. Sie erfahren, wie Sie neue Datenklassifizierungen und dynamische Datenmasken hinzufügen können und lernen verschiedene Methoden für das Auditing von Benutzern kennen, die zur Datenklassifizierung markierte Spalten anzeigen möchten. In dieser Übung werden einige der Konzepte kombiniert, die Sie bereits im Modul zur Sicherheitsverwaltung kennengelernt haben.
Konfigurieren der Datenklassifizierung und -maskierung
Wechseln Sie im Azure-Portal zu Ihrer Azure SQL-Datenbank-Instanz (nicht zum logischen Server).
Azure-Portal
Wählen Sie im linken Bereich unter Sicherheit die Option Datenermittlung und -klassifizierung aus.
Wählen Sie die Registerkarte Klassifizierung und dann Klassifizierung hinzufügen aus.
In einer vorherigen Übung haben Sie alle empfohlenen Spaltenklassifizierungen hinzugefügt. In diesem Schritt fügen Sie der Liste der klassifizierten Spalten manuell eine potenziell vertrauliche Spalte hinzu.
In der SalesLT-Tabelle „Customer“ hat die Datenermittlung und -klassifizierung festgestellt, dass
FirstName
undLastName
klassifiziert wurden,MiddleName
jedoch nicht. Verwenden Sie die Dropdownlisten, um sie jetzt hinzuzufügen, und wählen Sie dann Klassifizierung hinzufügen aus.Wählen Sie Speichern aus.
Bestätigen Sie, dass die Klassifizierung erfolgreich hinzugefügt wurde, indem Sie die Registerkarte Übersicht anzeigen, und bestätigen Sie, dass
MiddleName
jetzt in der Liste der klassifizierten Spalten unter dem Schema SalesLT angezeigt wird.Wählen Sie im linken Bereich Übersicht aus, um zur Übersicht Ihrer Datenbank zurückzukehren.
Die dynamische Datenmaskierung (DDM) ist sowohl in Azure SQL als auch in SQL Server verfügbar. DDM verhindert die Offenlegung vertraulicher Daten durch Maskierung vertraulicher Daten für nicht berechtigte Benutzer auf SQL Server-Ebene anstatt auf Anwendungsebene, wo Sie diese Art von Regeln codieren müssen. Azure SQL zeigt Empfehlungen an, welche Daten maskiert werden sollten. Sie können Masken jedoch auch manuell hinzufügen.
In den nächsten Schritten maskieren Sie die Spalten
FirstName
,MiddleName
undLastName
, die Sie im vorherigen Schritt überprüft haben.Navigieren Sie im Azure-Portal zu Ihrer Azure SQL-Datenbank-Instanz. Wählen Sie im linken Bereich unter Sicherheit die Option Dynamische Datenmaskierung und dann Maske hinzufügen aus.
Wählen Sie in den Dropdownlisten zuerst das Schema SalesLT, die Tabelle Customer und die Spalte FirstName aus. Sie können die Maskierungsoptionen überprüfen. Die Standardeinstellung ist für dieses Szenario jedoch geeignet. Klicken Sie auf Hinzufügen, um die Maskierungsregel hinzuzufügen.
Wiederholen Sie die vorherigen Schritte für MiddleName und LastName in dieser Tabelle.
Sie verfügen jetzt über drei Maskierungsregeln, die den hier gezeigten ähnlich sind:
Wählen Sie Speichern aus.
Wählen Sie im linken Bereich Übersicht aus, um zur Übersicht Ihrer Datenbank zurückzukehren.
Abrufen klassifizierter und maskierter Daten
Anschließend simulieren Sie eine Abfrage der klassifizierten Spalten und lernen die dynamische Datenmaskierung in Aktion kennen.
Wechseln Sie zu SQL Server Management Studio (SSMS).
Erstellen Sie eine neue Abfrage in der AdventureWorks-Datenbank, indem Sie mit der rechten Maustaste auf die Datenbank klicken und dann Neue Abfrage auswählen.
Führen Sie die folgende Abfrage aus, um die klassifizierten Daten und in einigen Fällen die für maskierte Daten gekennzeichneten Spalten zurückzugeben. Wählen Sie Ausführen aus, um die Abfrage durchzuführen.
SELECT TOP 10 FirstName, MiddleName, LastName FROM SalesLT.Customer;
Ihr Ergebnis sollte die ersten 10 Namen ohne Maskierung anzeigen. Warum? Da Sie der Administrator für diesen logischen Azure SQL-Datenbank-Server sind.
In der folgenden Abfrage erstellen Sie einen neuen Benutzer und führen die vorherige Abfrage als dieser Benutzer aus. Außerdem verwenden Sie
EXECUTE AS
, um die Identität vonBob
anzunehmen. Bei Ausführung der AnweisungEXECUTE AS
wird der Ausführungskontext der Sitzung auf den Anmeldenamen bzw. Benutzer umgestellt. Dies bedeutet, dass die Berechtigungen für den Anmeldenamen bzw. Benutzer statt für die Person überprüft werden, die den BefehlEXECUTE AS
ausführt (in diesem Fall Sie).REVERT
wird dann verwendet, damit die Identität des Anmeldenamens bzw. des Benutzers nicht mehr angenommen wird.Sie werden möglicherweise die ersten Teile der folgenden Befehle erkennen, da sie eine Wiederholung aus einer vorherigen Übung sind. Erstellen Sie eine neue Abfrage mit den folgenden Befehlen, und wählen Sie dann Ausführen aus, um die Abfrage auszuführen und die Ergebnisse anzuzeigen.
-- 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;
Das Ergebnis sollte jetzt die ersten 10 Namen anzeigen, allerdings mit Maskierung. Bob wurde kein Zugriff auf die unmaskierte Form dieser Daten gewährt.
Was geschieht, wenn Bob aus irgendeinem Grund Zugriff auf die Namen benötigt und die Berechtigung erhält, diese abzurufen?
Sie können ausgeschlossene Benutzer von der Maskierung im Azure-Portal aktualisieren, indem Sie zum Bereich Dynamische Datenmaskierung unter Sicherheit wechseln, dies ist aber ebenso mit T-SQL möglich.
Klicken Sie mit der rechten Maustaste auf die AdventureWorks-Datenbank, und wählen Sie Neue Abfrage aus, und geben Sie dann die folgende Abfrage ein, damit Bob die Namensergebnisse ohne Maskierung abfragen kann. Wählen Sie Ausführen aus, um die Abfrage durchzuführen.
GRANT UNMASK TO Bob; EXECUTE AS USER = 'Bob'; SELECT TOP 10 FirstName, MiddleName, LastName FROM SalesLT.Customer; REVERT;
Die Ergebnisse sollten die vollständigen Namen enthalten.
Sie können einem Benutzer auch die Berechtigungen zur Aufhebung der Maskierung entziehen und diese Aktion bestätigen, indem Sie die folgenden T-SQL-Befehle in einer Abfrage ausführen:
-- Remove unmasking privilege REVOKE UNMASK TO Bob; -- Execute as Bob EXECUTE AS USER = 'Bob'; SELECT TOP 10 FirstName, MiddleName, LastName FROM SalesLT.Customer; REVERT;
Die Ergebnisse sollten die maskierten Namen enthalten.
Überprüfen von Überwachungsprotokollen in SSMS
Als Administrator müssen Sie überprüfen und überwachen, wer Zugriff auf die Datenbanken und insbesondere die klassifizierten Daten hat. Als nächstes können Sie sich die Überwachungsdateien ansehen, die an Azure Blob Storage gesendet werden. Sie müssen zunächst die Überwachungsdateien zusammenführen, falls die Protokolle mehrere Dateien umfassen. Sie können dies über SSMS erreichen, indem Sie wie folgt vorgehen:
Wählen Sie Datei>Öffnen>Überwachungsdateien zusammenführen aus.
Klicken Sie auf Hinzufügen.
Wählen Sie Aus Azure Blob Storage hinzufügen und dann Verbinden aus.
Melden Sie sich mit dem Konto bei Azure an, das Sie für dieses Modul verwenden.
Wählen Sie das Abonnement, das Speicherkonto und den Blobcontainer aus, in dem die Überwachungsprotokolle abgelegt werden sollen. Das Speicherkonto sollte mit
sql
beginnen. Der Container wirdsqldbauditlogs
genannt. Wenn es keinen Container mit diesem Namen gibt, haben Sie ein anderes Speicherkonto für die Überwachung erstellt. Verwenden Sie stattdessen dieses Konto.Wählen Sie den logischen Azure SQL-Datenbank-Server und die Datenbank
AdventureWorks
aus. Stellen Sie sicher, dass die Startzeit vor Ihrem Beginn der Übungen liegt. Klicken Sie auf OK.Im Bestätigungsfenster können Sie nachsehen, wie viele Dateien herunterladen und zusammengeführt werden. Klickan Sie auf OK.
Überprüfen Sie die Dateien, und wählen Sie dann ein letztes Mal OK aus.
Jetzt werden alle Überwachungsprotokolle angezeigt. Achten Sie darauf, wo Sie die Maskierung mit Bob getestet haben. Die Auflistung sollte sich am unteren Ende befinden.
Wählen Sie die Anweisung aus, und überprüfen Sie dann die Informationen im Detailbereich. Beispielsweise können Sie für eine der Abfragen, in der Bob versucht, die klassifizierten Daten anzuzeigen, die klassifizierten Daten unter dem Feld
data_sensitivity_information
erkennen.Doppelklicken Sie auf den Wert von data_sensitivity_information im Bereich Details. Es wird ein Popupfenster geöffnet, sodass Sie die Daten leichter lesen können.
Nachfolgend finden Sie ein Beispiel dafür, was Sie unter
data_sensitivity_information
sehen können:<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>
Sie können diese zusammengeführte Datei dann zur weiteren Analyse in eine XEL-Datei, eine CSV-Datei oder eine Tabelle exportieren. Sie können auch die Dateien für erweiterte Ereignisse mithilfe von Azure PowerShell abfragen.
Überprüfen der Überwachungsprotokolle im Azure-Portal
Das Analysieren der Überwachungsprotokolle hängt von Ihren Vorlieben ab. In diesem Abschnitt können Sie Sicherheitsprotokolle im Azure-Portal mit Log Analytics abfragen.
Navigieren Sie im Azure-Portal zu Ihrer Datenbank
AdventureWorks
. Wählen Sie im linken Bereich unter Sicherheit die Option Überwachung und dann in der Taskleiste die Schaltfläche Überwachungsprotokolle anzeigen aus.Sie sollten jetzt in der Lage sein, eine Abfrage Ihrer Ereignisdatensätze, Optionen zur Ausführung im Abfrage-Editor ( führen Sie T-SQL-Abfragen über das Portal aus), Optionen für Log Analytics, „Dashboard anzeigen“ und mehr anzuzeigen.
Schauen Sie sich ruhig um, um zu verstehen, welche Optionen es gibt.
Wählen Sie Log Analytics aus. Möglicherweise müssen Sie Aktualisieren auswählen, um auf die Schaltfläche Log Analytics zuzugreifen. Wenn die Anzeige Los geht's angezeigt wird, wählen Sie OK aus. Dies führt Sie zu einem Abfrage-Editor, aber es ist kein T-SQL-Editor. In dieser Ansicht können Sie Protokolle mithilfe der Kusto-Abfragesprache (KQL) abfragen, die für SQL-Experten konzipiert ist, damit diese sie leicht verwenden und verstehen können.
Die Standardabfrage ist die Abfrage der Kategorie
SQLSecurityAuditEvents
. Obwohl Sie diese Kategorie jetzt möglicherweise zum Anzeigen sicherheitsbezogener Vorfälle verwenden, können Sie mit diesem Tool auch andere Azure-Protokolle und -Kategorien in Log Analytics abfragen. Für diesen Schritt können Sie nach den Anweisungen suchen, in denen Bob versucht hat, auf vertrauliche Informationen zuzugreifen. Erweitern Sie die Details durch Auswahl der Schaltfläche>
, um dieselben Informationen zu erhalten, die in SSMS angezeigt wurden.Es dauert möglicherweise ein paar Minuten, bis die Ergebnisse angezeigt wird. Sie können die Abfrage aktualisieren, indem Sie noch mal auf Ausführen klicken.
Hier wird die Abfrage von Protokollen über KQL nicht ausführlich behandelt. Wenn Sie dies jedoch später üben möchten, finden Sie oben in den Verweisen viele Ressourcen.
Im nächsten Schritt erfahren Sie, wie die SQL-Sicherheit ein Dashboard basierend auf Log Analytics erstellt hat, damit Sie die Protokolle und andere Aktivitäten in SQL überwachen und überprüfen können. Schließen Sie das Log Analytics-Abfragefenster, um zum Bereich Überwachungsdatensätze zurückzukehren, indem Sie oben rechts X auswählen.
Wählen Sie Dashboard anzeigen aus.
Es wird ein Übersichtsdashboard angezeigt.
Wählen Sie Azure SQL – Zugriff auf sensible Daten aus, um weitere Details anzuzeigen.
Möglicherweise müssen Sie drei bis fünf Minuten warten und Aktualisieren auswählen, damit die Elemente hier angezeigt werden.
Sie können diese ausführlichen Informationen verwenden, um Folgendes zu ermitteln:
- Anzahl der Abfragen, die auf sensible Daten zugreifen
- Die Typen und sensiblen Daten, auf die zugegriffen wird
- Welche Prinzipale auf sensible Daten zugreifen
- Welche IP-Adressen auf sensible Daten zugreifen
Sehen Sie sich die Optionen an, und überprüfen Sie, wie Sie die Nutzung mit diesem Tool überwachen können. Sie können sogar einzelne Optionen auswählen und so die zugehörigen Protokolle in Log Analytics einsehen.
Wenn Sie fertig sind, schließen Sie den Bereich Azure SQL – Zugriff auf sensible Daten, indem Sie oben rechts den Bereich X auswählen.
Im Übersichtsbereich des Überprüfungsdashboards wählen Sie anschließend Azure SQL – Einblicke in die Sicherheit aus.
Dieses Dashboard zeigt weitere Überwachungsinformationen an, die Ihnen helfen, die Datenbankaktivität zu verstehen und Einblicke in Anomalien zu erhalten. Nehmen Sie sich ein paar Minuten Zeig, um sich die verfügbaren Optionen anzusehen und deren Details zu überprüfen.
Zusätzlich zur Anzeige dieser Erkenntnisse für Azure SQL-Dienste können Sie in Azure auch Defender für Cloud nutzen, um Probleme, die in Ihrer Azure-Umgebung auftreten, zu überwachen, zu verwalten und darauf zu reagieren. Wenn Sie sich über die Möglichkeiten informieren möchten, die außerhalb von Azure SQL Defender for Cloud verfügbar sind, können Sie im Azure-Portal nach Microsoft Defender for Cloud suchen und diese Option dann auswählen. Ihr Zugriff kann je nach Ihrer Abonnementebene eingeschränkt sein.