Übersicht über Datenbanksicherheit in Azure Cosmos DB

GILT FÜR: NoSQL MongoDB Cassandra Gremlin Tabelle

Dieser Artikel erläutert bewährte Methoden und wichtige Funktionen von Azure Cosmos DB für die Sicherheit von Datenbanken, mit denen Sie Sicherheitsverletzungen in einer Datenbank verhindern bzw. erkennen und darauf reagieren können.

Neuerungen bei der Sicherheit von Azure Cosmos DB

Die Verschlüsselung ruhender Daten, die in Azure Cosmos DB gespeichert sind, ist jetzt für Dokumente und Sicherungen in allen Azure-Regionen verfügbar. Die Verschlüsselung ruhender Daten wird automatisch auf neue und bestehende Kunden in diesen Regionen angewendet. Es ist keine Konfiguration erforderlich. Sie können die gleichen Vorteile im Hinblick auf Latenz, Durchsatz, Verfügbarkeit und Funktionalität wie zuvor nutzen und können außerdem auf die Sicherheit Ihrer verschlüsselten ruhenden Daten vertrauen. In Ihrem Azure Cosmos DB-Konto gespeicherte Daten werden automatisch und nahtlos mit Schlüsseln verschlüsselt, die von Microsoft mit dienstseitig verwalteten Schlüsseln verwaltet werden. Optional können Sie eine zweite Verschlüsselungsebene mit Schlüsseln hinzufügen, die Sie mithilfe von kundenseitig verwalteten Schlüsseln (Customer-Managed Keys, CMKs) verwalten.

Wie sichere ich meine Datenbank?

Für die Sicherheit der Daten sind Sie, Ihr Kunde und Ihr Datenbankanbieter gemeinsam verantwortlich. Der Umfang Ihres Verantwortungsbereichs kann je nach Datenbankanbieter unterschiedlich ausfallen. Wenn Sie sich für eine lokale Lösung entschieden haben, müssen Sie weitgehend selbst für die Sicherheit sorgen – vom Endpunktschutz bis hin zur physischen Sicherung Ihrer Hardware. Das ist keine leichte Aufgabe. Wenn Sie sich für einen Clouddatenbankanbieter wie Azure Cosmos DB mit einem PaaS-Modell (Platform-as-a-Service) entscheiden, verkleinert sich Ihr Verantwortungsbereich erheblich. Die folgende Abbildung – entnommen aus dem Microsoft-Whitepaper Shared Responsibilities for Cloud Computing (Gemeinsame Verantwortung für das Cloud Computing) – zeigt, wie viel weniger Verantwortung auf Ihren Schultern liegt, wenn Sie mit einem PaaS-Anbieter wie Azure Cosmos DB arbeiten.

Screenshot that shows customer and database provider responsibilities.

Das obige Diagramm zeigt allgemeine Sicherheitskomponenten in der Cloud. Um welche Elemente müssen Sie sich aber im Speziellen für Ihre Datenbanklösung kümmern? Wie lassen sich Lösungen sinnvoll miteinander vergleichen?

Wir empfehlen die folgende Checkliste mit Anforderungen, anhand derer Sie Datenbanksysteme vergleichen können:

  • Netzwerksicherheit und Firewalleinstellungen
  • Benutzerauthentifizierung und feinkörnige Benutzerkontrollen
  • Möglichkeit zum globalen Replizieren von Daten bei regionalen Ausfällen
  • Möglichkeit zum Durchführen eines Failovers zwischen Rechenzentren
  • Lokale Datenreplikation innerhalb eines Rechenzentrums
  • Automatische Datensicherungen
  • Wiederherstellung gelöschter Daten aus Sicherungskopien
  • Schützen und Isolieren von vertraulichen Daten
  • Überwachen auf Angriffe
  • Reagieren auf Angriffe
  • Möglichkeit, Daten per Geofencing auf einen geografischen Raum einzugrenzen, um Anforderungen an die Datengovernance zu erfüllen
  • Physischer Schutz von Servern in geschützten Rechenzentren
  • Zertifizierungen

Folgendes mag zwar auf der Hand liegen, aber umfassende Verletzungen der Datenbanksicherheit in jüngster Zeit erinnern uns daran, wie wichtig diese vermeintlich einfachen Anforderungen sind:

  • Gepatchte Server, die immer auf dem neuesten Stand gehalten werden
  • Standardmäßig HTTPS sowie TLS-Verschlüsselung
  • Administratorkonten mit sicheren Kennwörtern

Wie sichert Azure Cosmos DB meine Datenbank?

Sehen wir uns noch einmal die obige Liste an: Wie viele dieser Sicherheitsanforderungen erfüllt Azure Cosmos DB? Jede einzelne.

Das sehen wir uns einmal im Detail an.

Sicherheitsanforderung Sicherheitsansatz von Azure Cosmos DB
Netzwerksicherheit Die Verwendung einer IP-Firewall ist die erste Schutzschicht, um Ihre Datenbank zu sichern. Azure Cosmos DB unterstützt die richtliniengesteuerte IP-basierte Zugriffssteuerung zur Unterstützung der Firewall für eingehende Verbindungen. Die IP-basierten Zugriffssteuerungen ähneln den Firewallregeln herkömmlicher Datenbanksysteme. Sie werden jedoch so erweitert, dass der Zugriff auf ein Azure Cosmos DB-Datenbankkonto nur einer genehmigten Gruppe von Computern oder Clouddiensten vorbehalten ist. Weitere Informationen finden Sie unter Konfigurieren der IP-Firewall in Azure Cosmos DB.

Mit Azure Cosmos DB können Sie eine bestimmte IP-Adresse (168.61.48.0), einen IP-Adressbereich (168.61.48.0/8) sowie Kombinationen aus IP-Adressen und -Adressbereichen aktivieren.

Azure Cosmos DB blockiert alle Anforderungen von Computern, die sich nicht auf dieser Zulassungsliste befinden. Anforderungen von zugelassenen Computern und Clouddiensten müssen den Authentifizierungsprozess durchlaufen, um Zugriff auf die Ressourcen zu erhalten.

Sie können mithilfe von Diensttags in virtuellen Netzwerken eine Netzwerkisolation erreichen und Ihre Azure Cosmos DB-Ressourcen vor dem allgemeinen Internet schützen. Verwenden Sie Diensttags anstelle von spezifischen IP-Adressen, wenn Sie Sicherheitsregeln erstellen. Durch Angeben des Diensttagnamens (z. B. AzureCosmosDB) im entsprechenden Quell- oder Zielfeld einer Regel können Sie den Datenverkehr für den entsprechenden Dienst zulassen oder verweigern.
Autorisierung Azure Cosmos DB verwendet einen hashbasierten Code für die Authentifizierung von Nachrichten (Hash-based Message Authentication Code, HMAC) zur Autorisierung.

Für jede Anforderung wird mithilfe des geheimen Kontoschlüssels ein Hash erstellt, und der daraus resultierende Base64-codierte Hashwert wird mit jedem Aufruf an Azure Cosmos DB gesendet. Zur Überprüfung der Anforderung verwendet Azure Cosmos DB den korrekten geheimen Schlüssel und die zugehörigen Eigenschaften, um einen Hash zu generieren. Anschließend vergleicht der Dienst diesen Wert mit dem Wert in der Anforderung. Wenn die beiden Werte übereinstimmen, wird der Vorgang erfolgreich autorisiert und die Anforderung verarbeitet. Wenn sie nicht übereinstimmen, tritt ein Autorisierungsfehler auf, und die Anforderung wird abgelehnt.

Sie können entweder einen Primärschlüssel oder ein Ressourcentoken verwenden, um differenzierten Zugriff auf eine Ressource (beispielsweise ein Dokument) zu ermöglichen.

Weitere Informationen finden Sie unter Sicherer Zugriff auf Daten in Azure Cosmos DB.
Benutzer und Berechtigungen Mit dem Primärschlüssel für das Konto können Sie Benutzer- und Berechtigungsressourcen pro Datenbank erstellen. Ein Ressourcentoken wird einer Berechtigung in einer Datenbank zugeordnet und legt fest, ob der Benutzer Zugriff (Lese-/Schreibzugriff, schreibgeschützten Zugriff oder keinen Zugriff) auf eine Anwendungsressource in der Datenbank erhält. Zu den Anwendungsressourcen zählen Container, Dokumente, Anlagen, gespeicherte Prozeduren, Trigger und benutzerdefinierte Funktionen. Das Ressourcentoken wird dann während der Authentifizierung verwendet, um den Zugriff auf die Ressource zu gewähren oder zu verweigern.

Weitere Informationen finden Sie unter Sicherer Zugriff auf Daten in Azure Cosmos DB.
Active Directory-Integration (rollenbasierte Zugriffssteuerung in Azure) Sie können auch den Zugriff auf das Azure Cosmos DB-Konto, auf die Datenbank, auf den Container und auf Angebote (Durchsatz) über die Zugriffssteuerung (IAM) im Azure-Portal zulassen oder einschränken. IAM stellt eine rollenbasierte Zugriffssteuerung bereit und lässt sich in Active Directory integrieren. Sie können für Einzelbenutzer und Gruppen integrierte oder benutzerdefinierte Rollen verwenden. Weitere Informationen finden Sie unter Rollenbasierte Azure-Zugriffssteuerung in Azure Cosmos DB.
Globale Replikation Azure Cosmos DB bietet eine sofort einsatzbereite globale Verteilung, mit der Sie Ihre Daten mühelos in jedem der weltweiten Azure-Rechenzentren replizieren können. Mit der globalen Replikation können Sie global skalieren und für niedrige Latenzen beim Zugriff auf Ihre Daten auf der ganzen Welt sorgen.

Im Kontext der Sicherheit schützt die globale Replikation Ihre Daten vor regionalen Ausfällen.

Weitere Informationen finden Sie unter Globales Verteilen Ihrer Daten mit Azure Cosmos DB.
Regionale Failover Wenn Sie Ihre Daten in mehr als einem Rechenzentrum repliziert haben, führt Azure Cosmos DB automatisch ein Rollover Ihrer Vorgänge aus, wenn ein regionales Rechenzentrum offline geschaltet wird. Sie können anhand der Regionen, in denen Ihre Daten repliziert werden, eine Prioritätsliste mit Failoverregionen erstellen.

Weitere Informationen finden Sie unter Realisieren von Hochverfügbarkeit mit Azure Cosmos DB.
Lokale Replikation Azure Cosmos DB repliziert Daten automatisch auch innerhalb eines einzelnen Rechenzentrums und sorgt so für Hochverfügbarkeit sowie für die Möglichkeit, verschiedene Konsistenzebenen auszuwählen. Diese Replikation garantiert eine Verfügbarkeits-SLA von 99,99 % für alle Konten mit einer einzelnen Region und für alle Konten mit mehreren Regionen und gelockerter Konsistenz sowie eine Leseverfügbarkeit von 99,999 % für alle Datenbankkonten mit mehreren Regionen.
Automatisierte Onlinesicherungen Azure Cosmos DB-Datenbanken werden regelmäßig gesichert und in einem georedundanten Speicher gespeichert.

Weitere Informationen finden Sie unter Automatische Onlinesicherung und -wiederherstellung mit Azure Cosmos DB.
Wiederherstellen gelöschter Daten Automatisierte Onlinesicherungen können zum Wiederherstellen von Daten verwendet werden, die versehentlich gelöscht wurden. Dies ist bis zu ca. 30 Tage nach dem Löschen möglich.

Weitere Informationen finden Sie unter Automatische Onlinesicherung und -wiederherstellung mit Azure Cosmos DB.
Schützen und Isolieren von vertraulichen Daten Jetzt sind alle ruhenden Daten verschlüsselt, die sich in den unter „Neuerungen“ aufgeführten Regionen befinden.

Personenbezogene und vertrauliche Daten können in einem bestimmten Container isoliert werden, und der Lese-/Schreibzugriff bzw. der schreibgeschützte Zugriff kann auf bestimmte Benutzer*innen beschränkt werden.
Überwachen auf Angriffe Mithilfe von Überwachungsprotokollierung und Aktivitätsprotokollen können Sie Ihr Konto auf normale und ungewöhnliche Aktivitäten überwachen. Sie können anzeigen, welche Vorgänge auf Ihre Ressourcen angewendet wurden. Diese Daten beinhalten unter anderem, wer den jeweiligen Vorgang initiiert hat, wann der Vorgang ausgeführt wurde und welchen Status der Vorgang hat.
Reagieren auf Angriffe Nachdem Sie den Azure-Support kontaktiert haben, um einen möglichen Angriff zu melden, beginnt ein fünfstufiger Reaktionsprozess für den Incident. Ziel ist die Wiederherstellung der normalen Dienstsicherheit und Betriebsabläufe. Der Prozess stellt die Dienste so schnell wie möglich wieder her, nachdem ein Problem erkannt und eine Untersuchung eingeleitet wurde.

Weitere Informationen finden Sie unter Sicherheitsreaktion von Microsoft Azure in der Cloud.
Geofencing (geografische Eingrenzung) Azure Cosmos DB stellt die Datengovernance und -compliance für unabhängige Regionen sicher (z. B. für Deutschland, China und US Government).
Geschützte Einrichtungen Daten in Azure Cosmos DB sind auf SSDs in den geschützten Rechenzentren von Azure gespeichert.

Weitere Informationen finden Sie unter Globale Azure-Infrastruktur.
HTTPS-/SSL-/TLS-Verschlüsselung Alle Verbindungen mit Azure Cosmos DB unterstützen HTTPS. Azure Cosmos DB unterstützt TLS bis einschließlich Ebene 1.2.
Es ist möglich, serverseitig eine TLS-Mindestebene zu erzwingen. Wie das geht, erfahren Sie unter Erzwingen von TLS-Mindestversionen in Azure Cosmos DB als Self-Service.
Verschlüsselung ruhender Daten Alle in Azure Cosmos DB gespeicherte Daten werden im Ruhezustand verschlüsselt. Weitere Informationen finden Sie unter Datenverschlüsselung in Azure Cosmos DB.
Gepatchte Server Da Azure Cosmos DB eine verwaltete Datenbank ist, müssen Sie keine Server verwalten oder patchen. Dies wird automatisch für Sie erledigt.
Administratorkonten mit sicheren Kennwörtern In Azure Cosmos DB ist es nicht möglich, ein Administratorkonto ohne Kennwort zu verwenden.

Die Sicherheit über TLS und die auf HMAC-Geheimnissen basierende Authentifizierung sind standardmäßig integriert.
Zertifizierungen für Sicherheit und Datenschutz Die neueste Liste mit Zertifizierungen finden Sie unter Azure-Compliance und im aktuellen Dokument zur Azure-Compliance mit allen Azure-Zertifizierungen, einschließlich Azure Cosmos DB.

Der folgende Screenshot zeigt, wie Sie Überwachungs- und Aktivitätsprotokolle zum Überwachen Ihres Kontos verwenden können: Screenshot that shows activity logs for Azure Cosmos DB.

Primäre/sekundäre Schlüssel

Primäre/sekundäre Schlüssel ermöglichen den Zugriff auf alle Verwaltungsressourcen für das Datenbankkonto. Primäre/sekundäre Schlüssel:

  • Ermöglichen den Zugriff auf Konten, Datenbanken, Benutzer und Berechtigungen.
  • Können nicht zur präzisen Steuerung des Zugriffs auf Container und Dokumente verwendet werden.
  • Werden im Zuge der Kontoerstellung erstellt.
  • Können jederzeit neu generiert werden.

Jedes Konto umfasst zwei Schlüssel: einen primären und einen sekundären Schlüssel. Dank der Verwendung von zwei Schlüsseln können Sie Schlüssel neu generieren oder ersetzen und trotzdem ohne Unterbrechung auf Ihr Konto und Ihre Daten zugreifen.

Primäre/sekundäre Schlüssel sind in zwei Versionen verfügbar: mit Lese-/Schreibzugriff und als schreibgeschützt. Die schreibgeschützten Schlüssel ermöglichen ausschließlich Lesevorgänge für das Konto. Sie bieten keinen Zugriff auf Leseberechtigungsressourcen.

Schlüsselrotation und Neugenerierung

Der Prozess der Schlüsselrotation und -neugenerierung ist einfach. Stellen Sie zunächst sicher, dass Ihre Anwendung konsistent entweder den Primärschlüssel oder den Sekundärschlüssel verwendet, um auf Ihr Azure Cosmos DB-Konto zuzugreifen. Führen Sie anschließend die Schritte aus dem nächsten Abschnitt aus. Informationen zum Überwachen Ihres Kontos auf wichtige Updates und zur Neugenerierung von Schlüsseln finden Sie unter Überwachen Ihres Azure Cosmos DB-Kontos auf Updates und Erneuerungen von Schlüsseln.

Wenn Ihre Anwendung derzeit den Primärschlüssel verwendet

  1. Navigieren Sie im Azure-Portal zu Ihrem Azure Cosmos DB-Konto.

  2. Wählen Sie im linken Menü die Option Schlüssel und anschließend über die Auslassungspunkte (...) rechts neben Ihrem Sekundärschlüssel die Option Sekundärschlüssel neu generieren aus.

    Screenshot showing how to regenerate the secondary key in the Azure portal when used with the NoSQL API.

  3. Überprüfen Sie, ob der neue Sekundärschlüssel konsistent mit Ihrem Azure Cosmos DB-Konto funktioniert. Der Vorgang der Schlüsselregenerierung kann je nach Größe des Azure Cosmos DB-Kontos unterschiedlich lange dauern – von einer Minute bis hin zu mehreren Stunden.

  4. Ersetzen Sie den Primärschlüssel in Ihrer Anwendung durch den Sekundärschlüssel.

  5. Wechseln Sie zurück zum Azure-Portal und lösen Sie die Neugenerierung des Primärschlüssels aus.

    Screenshot showing how to regenerate the primary key in the Azure portal when used with the NoSQL API.

Wenn Ihre Anwendung derzeit den Sekundärschlüssel verwendet

  1. Navigieren Sie im Azure-Portal zu Ihrem Azure Cosmos DB-Konto.

  2. Wählen Sie im linken Menü die Option Schlüssel und anschließend über die Auslassungspunkte (...) rechts neben Ihrem Primärschlüssel die Option Primärschlüssel neu generieren aus.

    Screenshot that shows how to regenerate the primary key in the Azure portal when used with the NoSQL API.

  3. Überprüfen Sie, ob der neue Primärschlüssel konsistent mit Ihrem Azure Cosmos DB-Konto funktioniert. Der Vorgang der Schlüsselregenerierung kann je nach Größe des Azure Cosmos DB-Kontos unterschiedlich lange dauern – von einer Minute bis hin zu mehreren Stunden.

  4. Ersetzen Sie den Primärschlüssel in Ihrer Anwendung durch Ihren Sekundärschlüssel.

  5. Wechseln Sie zurück zum Azure-Portal und lösen Sie die Neugenerierung des Sekundärschlüssels aus.

    Screenshot that shows how to regenerate the secondary key in the Azure portal when used with the NoSQL API.

Nachverfolgen des Status der Schlüsselerneuerung

Nachdem Sie einen Schlüssel rotiert oder neu generiert haben, können Sie den Status des Schlüssels im Aktivitätsprotokoll nachverfolgen. Führen Sie die folgenden Schritte aus, um den Status nachzuverfolgen:

  1. Melden Sie sich beim Azure-Portal an, und navigieren Sie zu Ihrem Azure Cosmos DB-Konto.

  2. Wählen Sie im linken Menü die Option Schlüssel aus. Das letzte Schlüsselerneuerungsdatum sollte unter jedem Schlüssel angezeigt werden.

    Screenshot that shows status of key regeneration from the activity log.

    Es empfiehlt sich, die Schlüssel mindestens einmal alle 60 Tage neu zu generieren. Wenn Ihre letzte erneute Generierung mehr als 60 Tage zurückliegt, wird ein Warnsymbol angezeigt. Außerdem sehen Sie möglicherweise, dass Ihr Schlüssel nicht erfasst wurde. Ist dies der Fall, wurde Ihr Konto vor dem 18. Juni 2022 erstellt, und die Datumswerte wurden nicht registriert. Sie sollten jedoch in der Lage sein, zu erneuern und das neue Datum der letzten Erneuerung für den neuen Schlüssel zu sehen.

  3. Sie sollten die Ereignisse zur Neugenerierung von Schlüsseln sowie den Status, den Zeitpunkt des Vorgangs und Angaben zu dem Benutzer bzw. zu der Benutzerin sehen, der bzw. die die Neugenerierung des Schlüssels veranlasst hat. Der Schlüsselgenerierungsvorgang wird mit dem Status Akzeptiert initiiert. Er ändert sich erst in Gestartet und dann in Erfolgreich, wenn der Vorgang abgeschlossen ist.

Nächste Schritte