Eine erste Übersicht über den Azure Storage wurde im ersten Teil dieser Blog Serie gegeben. In diesem Teil geht es um den Azure SQL Datenspeicher.
Für strukturierte Daten benötigt man eine Datenbank. Davon gibt es in Azure eine ganze Reihe, darunter auch solche, die nicht von Microsoft stammen, wie MariaDB, MySQL oder PostgreSQL.
Vom Microsoft SQL Server gibt es zunächst einmal zwei Varianten:
- Azure SQL Database Managed Instance
- Azure SQL Database
Die Managed Instance ist eine neue Deployment Variante des SQL Server, die mit dem normalen On-Premise Server weitgehend kompatibel ist. Dies macht es verhältnismässig einfach, eine bestehende Datenbank in die Cloud zu transferieren. Für 100% Kompatibilität braucht es einen SQL Server auf einer virtuellen Maschine. Allerdings ist man dann selber für den Unterhalt (Backup und Patches) verantwortlich.
Azure SQL Datenspeicher
Azure SQL Database ist ein vollautomatischer Cloud-Dienst. Der Einsatz mind. 3 Kopien der Datenbank erhöht Zuverlässigkeit und Verfügbarkeit – auch Geo-Redundanz ist möglich, um einem Totalausfall des Datacenters vorzubeugen. Im Vergleich zu einer On-Premise Datenbank fehlt der SQL Agent. Automatisches Backup (Full/differential und Transaction Log) erlaubt ein Restore zu jedem beliebigem Zeitpunkt. Bis zu 4 Geo-redundante Datenbanken sowie automatisches Fail-Over sind möglich. Automatisches Index Management und automatische Query Plan Korrekturen sorgen für bessere Performance.
Für die Verwaltung mehrere Datenbanken gibt es den Elastic Pool. Weil Applikationen normalerweise nicht eine konstante Last generieren, sind die erforderlichen Ressourcen auf möglichst viele Datenbanken verteilt. Damit spart man Kosten, da die vorhandene Kapazität für viele Datenbanken zur Verfügung steht.
Die bisher beschriebenen Datenbanken eignen sich für OLTP (Online Transactional Processing), d.h. für transaktionsorientierte Aufgaben (CRUD) für Applikationen und viele Benutzer. Die Datenbankgrösse ist bis 1 TByte.
Möchte man grosse Datenmengen per OLAP (Online Analytical Processing) analysieren, verwendet man das Azure SQL Data Warehouse, bzw. Azure Synapse Analytics, wie es inzwischen heisst.
Azure Synapse besteht aus 4 Komponenten:
- SQL Analytics
- Apache Spark
- Data Integration
- Studio
Der Azure Database Migration Service ermöglicht die Migration und Synchronisation einer On-Premise Datenbank mit einer Datenbank in der Cloud. Dies funktioniert sogar mit einer MySQL Datenbank.
Security Features
Azure SQL Database kennt vielfältige Security Features.
Verschlüsselung
SQL Server verwendet TLS 1.2 für die Datenübertragung. Gespeicherte Daten werden mit Transparent Data Encryption (TDE) geschützt. Das sogenannte Encryption-at-rest eignet sich auch, um Dateien oder Backups zu verschlüsseln. Im Modus Always Encrypted (Encryption-in-use) besitzt nur der Client den Schlüssel, um die Daten zu sehen. Auch Server Admins oder andere privilegierte Benutzer können die Daten nicht lesen, was für Daten in der Cloud besonders nützlich ist. Die Verschlüsselung gilt für einzelne Spalten mit besonders sensitiven Informationen.
Dynamic Data Masking
Auf Daten, die nicht jeder Benutzer zu sehen bekommen soll (Kreditkartennummern, E-Mailadressen, Finanzzahlen) kann eine Maske gelegt werden, worauf nicht autorisierte Benutzer bei jedem Zugriff nur einen verschleierten Wert der Daten sehen. Dynamic Data Masking gibt es seit dem SQL Server 2016.
Threat Protection
Folgende 3 Mechanismen aus dem Advanced Data Security (ADS) Paket helfen dabei, mögliche Bedrohungen abzuwehren. ADS ist auch für Managed Instance und Azure Synapse Analytics erhältlich.
Data Discovery and Classification
Dieses Feature erlaubt es, sensitive Daten zu finden, klassifizieren, kennzeichnen und zu schützen. Der Zugriff auf so gekennzeichnete Daten kann überwacht werden.
Vulnerability Assessment
Der Vulnerability Assessment Service prüft eine Datenbank auf mögliche Sicherheitslöcher. Mögliche Fehlkonfigurationen (Berechtigungen, Firewall, sensitive Daten) werden so rasch aufgespürt und können behoben werden.
Threat Detection
Die Advanced Threat Detection überwacht den Zugriff auf eine Datenbank und detektiert Angriffe. Der Service erkennt unsichere Abfragen, die SQL Injection erlauben, versuchte Angriffe auf die DB, ungewohnte Zugriffe, brute-force Attacken auf die Authentisierung usw.
Auditing
Datenbank Events und Schreibzugriffe können in einem Audit Log gesammelt und von dort weiter verarbeitet werden. Dadurch lassen sich verdächtige Vorgänge aufspüren.
Im 3. Teil dieser Blogserie werden unstrukturierten Daten betrachtet, welche z.B. in einer CosmosDB gespeichert werden können.
Pingback: Noser Blog » Azure Übersicht Teil 1: Storage
Pingback: Noser Blog Azure Übersicht Teil 3: Cosmos DB - Noser Blog
Pingback: Noser Blog Azure: Eine Übersicht zu allen Diensten - Noser Blog