Die Azure SQL Database Managed Instances sind ein neues Bereitstellungsmodell der Azure SQL Datenbanken. Sie bieten nahezu 100% Kompatibilität zu SQL Servern on Premises und sind daher der perfekte Startpunkt für eine Cloud Migration. Das schöne bei diesem Dienst ist auch hier, dass man sich um den Betrieb des SQL Clusters nicht kümmern muss. Das bedeutet weniger Verantwortung für den Betrieb und mehr Konzentration auf den Nutzen. Aber wie sieht es bei diesem Modell mit der Sicherheit aus? Diesen Punkt möchten wir folgend beleuchten.

Was ist eine SQL Database Managed Instances?

SQL MI Key Features

Die Azure SQL Database Managed Instances sind die Antwort von Microsoft an die Kunden, die eigentlich schon lange in die Cloud migrieren wollten, um die Vorteile von PaaS (Platform as a Service) nutzen zu können, diesen Schritt aber wegen fehlender Features wie z.B. dem SQL Agent in Azure SQL Database gescheut haben. Jetzt können Sie mit dem vollautomatisierten Data Migration Service Ihre Daten per Lift & Shift in die Cloud übertragen und Ihren Service so weiter nutzen, wie Sie es gewohnt sind. Und das Beste ist, dass die Azure SQL Database Managed Instances ein voll gemanagter Platform Service sind. Das bedeutet Sie, müssen sich weder um das Patchmanagement noch um den allgemeinen Betrieb des SQL Clusters kümmern. Sie nutzen einfach nur die Vorteile, die der Service Ihnen bietet und “lehnen sich zurück”.

 

Azure SQL Database Managed Instances in einem VNet

SQL MI VNet Access

Auf die Frage nach der Sicherheit beim Zugriff auf diesen Service hat Microsoft eine Antwort parat: Die Azure SQL Managed Instances werden nativ in ein virtuelles Netzwerk (VNet) integriert und verfügen ausschließlich über eine private IP Adresse. Über das Internet ist der Service nicht erreichbar – selbst dann nicht, wenn man es wollte.

Es ist Best Practice, die Managed Instance in einem eigenständigen Subnetz zu erstellen. Genauer gesagt darf das Subnetz, in dem sich die Managed Instance befindet, mit keinem anderen Clouddienst (Service Endpoints) verknüpft und kein Gatewaysubnetz sein. Sie können weder eine verwaltete Instanz in einem Subnetz erstellen, das andere Ressourcen als die verwaltete Instanz enthält, noch zu einem späteren Zeitpunkt Ressourcen im Subnetz hinzufügen.

Wenn man die VNet Integration automatisiert von Azure durchführen läßt, dann sieht es im ersten Moment so aus, als ob der Zugriff auf die Management Ports aus dem Internet erfolgen kann. Dem ist allerdings nicht so. Der DNS Name läßt sich nur auf die private IP auflösen, weshalb die Ports nicht über das Internet erreicht werden können.

 

Authentifizierung und Autorisierung bei SQL Managed Instances

Zur Authentifizierung stehen in der Managed Instance zwei Möglichkeiten zur Verfügung, genauso wie es auch bei den Azure SQL Databases der Fall ist. Sie können entweder die native SQL-Authentifizierung verwenden oder auf die Azure Active Directory (AAD) Authentifizierung zurückgreifen. Bei AAD Auth werden verwaltete Identitäten aus dem AAD verwendet, die sowohl verwaltete als auch integrierte Domänen unterstützen.
Die Autorisierung beschreibt, welche Aufgaben die Benutzer innerhalb der Datenbank ausführen dürfen. Durch datenbankbezogene Rollenmitgliedschaften und Objektebenenberechtigungen Ihres Benutzerkontos werden diese innerhalb der Datenbank gesteuert.

 

Weitere Optionen zum Thema Sicherheit

Datenverschlüsselung

Eine verwaltete Instanz schützt Ihre Daten durch die Verschlüsselung während der Übertragung mit Transport Layer Security. Neben Transport Layer Security bietet eine verwaltete SQL-Datenbank-Instanz mit Always Encrypted einen Schutz für sensible Daten bei der Übertragung, im Ruhezustand und während der Abfrageverarbeitung.

Dynamische Datenmaskierung

Daten, die mit der Datenmaskierung geschützt sind können von Unbefugten nicht eingesehen werden, da sie maskiert werden.

Sicherheit auf Zeilenebene

Der Zugriff auf einzelne Zeilen in einer Tabelle kann basierend auf den Merkmalen des Benutzers, der eine Abfrage ausführt, gesteuert werden. Mit Row-Level Security (RLS) kann der Zugriff auf Datenzeilen einschränkt werden.

Transparent Data Encryption (TDE)

TDE verschlüsselt Datendateien in einer verwalteten Azure SQL-Datenbank-Instanz. Dies wird als Verschlüsselung ruhender Daten (Data at Rest) bezeichnet. TDE führt die E/A-Verschlüsselung und -Entschlüsselung der Daten- und Protokolldateien in Echtzeit durch.

 

Fazit

Beim Thema Sicherheit hat sich Microsoft zahlreiche Gedanken bei der Umsetzung gemacht. Die auf den ersten Blick offenen Ports sind zwar für die Management Instanzen des Services global erreichbar, aus dem Internet ist wegen der “private-only” IP ein Zugriff aber nicht möglich. Neben der Verschlüsselung von Data at Rest, Data in Transit bietet sie sogar eine Verschlüsselung für Data in Use. Unter Berücksichtigung dieser Möglichkeiten können Sie Ihre Daten sicher in der Cloud verwahren.