Azure Security Handling with Azure Key Vault Service

Einleitung

Wichtig für die Nutzung von Anwendungen und Services ist insbesondere die Sicherheit, dass die verwendeten Daten vor unberechtigten Angriffen geschützt werden. Dabei kommt der sicheren Aufbewahrung von Passwörtern, Zertifikaten, Zugriffsschlüsseln, etc. eine entscheidende Bedeutung zu. In der Vergangenheit wurden bereits verschiedene Strategien entwickelt, um die erforderliche Sicherheit gewährleisten zu können. Solche Strategien sind zum Beispiel das Speichern von Zugangsdaten in einem Code, einer Konfigurationsdatei, einer Datenbank oder einer Umgebungsvariable. Allerdings sind bei diesen Methoden einige Nachteile zu beachten:

  • Es wird direkt auf die Zugangsdaten zugegriffen;
  • Ein Monitoring von Zugriffen muss selbstständig implementiert werden;
  • Ein Update von Zugangsdaten ist schwer durchzuführen;
  • Die Sicherheit des Servers, in dem die Zugangsdaten gespeichert sind, muss selbstständig gewährleistet werden.

Eine übergreifende Lösung, welche die genannten Nachteile beseitigt, bietet die Azure Cloud mit dem Azure Key Vault Service. Der Azure Key Vault Service ermöglicht es, die Zugangsdaten zentralisiert und sicher zu speichern bzw. zu verwalten (siehe Abbildung). Um einen besseren Einblick zu gewinnen, werden in den folgenden Abschnitten die wichtigsten Eigenschaften und Funktionalitäten von Azure Key Vault vorgestellt.

Key Vault Backbone

Azure Key Vault speichert die Schlüssel in Hardware-Sicherheit-Modulen (HSM), die konform mit dem US Federal Information Processing Standard Publication (FIPS) 140-2 Level 2 sind. Ein Benutzer kann neue Schlüssel in HSM erzeugen oder eigene Schlüssel gesichert in HSM importieren. Azure Key Vault unterstützt die folgenden zwei Schlüsseltypen:

  • Software-geschützt: Schlüssel werden in HSM gespeichert, aber kryptografische Operationen werden außerhalb HSM durchgeführt.
  • HSM-geschützt: Schlüssel werden innerhalb HSM bearbeitet und gespeichert und verlassen somit HSM nicht. Sie sind allerdings nur im Premium Preismodel verfügbar.

Um einen höheren Sicherheitsgrad zu erreichen, bietet Azure sogenannte dedizierte HSM. Dedizierte HSM sind nur einem Benutzer zugeordnet, wobei der jeweilige Benutzer allein die vollständige administrative Kontrolle über die HSM hat. Jedoch haben dedizierte HSM gegenüber Azure Key Vault den Nachteil, dass sie in Azure Diensten, die benutzerdefinierte Schlüssel verwenden (z. B. Azure Storage), nicht integriert werden können.

Authentifizierung und Autorisierung

Azure Key Vault speichert sicherheitskritische Informationen, sodass den Zugriffsrichtlinien auf die Daten eine zentrale Bedeutung zukommt.    Der Benutzerzugang zu einem Schlüssel in Azure Key Vault ist mehrstufig. Zuerst erfolgt die Authentifizierung des Benutzers durch Azure Active Directory. Darauf folgt die Autorisierung von Azure Key Vault mittels des Role-Based Access Controls (RBAC). Um schließlich den Schlüsselwert zu erhalten, wird die interne Key Vault Access Policy überprüft. In diesem Zusammenhang ist zu beachten, dass die Key Vault Access Policy den Zugang sowohl für Benutzer als auch für Applikationen ermöglichen kann (siehe Abbildung).

 

Authentifizierung von Applikationen

Als Best Practice für die Authentifizierung von Applikationen in Azure Key Vault empfehlen sich Managed Identities (siehe Abbildung). Wenn eine verwaltete Identität für eine Applikation aktiviert wird, wird die Identität im Gegensatz zu einer Authentifizierung mit einem Zertifikat automatisch durch die Azure Active Directory verwaltet. Dies beinhaltet den Vorteil, dass der Benutzeraufwand gering bleibt.

Mithilfe von Managed Identities haben Applikationen die Möglichkeit, sich bei Azure Key Vault zu authentifizieren, ohne Credentials im Code zu speichern. Dabei unterliegen die verwalteten Identitäten, genau wie andere Identitäten, den Richtlinien des RBAC. Die Managed Identities sind unter anderem für die folgenden Azure Services verfügbar: Azure Data Factory, Azure Functions, Azure Event Grid, Azure IoT Hub, Azure Kybernetes Service, Azure Key Vault und Azure Virtual Machines.

Netzwerksicherheit: Firewall und private Endpunkte

Azure Key Vault verfügt, wie auch andere Azure Dienste, über eine Firewall und kann über private Endpunkte mit virtuellen Netzwerken verknüpft werden. Die Firewall ermöglicht, den Zugang zu Azure Key Vault auf dedizierte virtuelle Netzwerke und IP-Adressen zu begrenzen. Dies ist ein wesentlicher Schutzmechanismus, der von Azure empfohlen wird.

Ein privater Endpunkt erlaubt es, Azure Key Vault in ein virtuelles Netzwerk zu integrieren. Andere Benutzer können über einen privaten Link auf den Endpunkt aus Ihrem virtuellen Netzwerk zugreifen.  In diesem Szenario bleiben die Daten innerhalb der Azure Backbone Infrastruktur und gelangen daher nicht in das öffentliche Internet.

 

Monitoring, Logging und Warnungen

Monitoring, Logging und Warnungen für Azure Key Vault wurden sehr ausführlich implementiert. Monitoring Dashboards lassen sich innerhalb weniger Sekunden im Azure Key Vault Interface erstellen. Die verfügbaren Metriken sind die Zeitlatenz von API-Aufrufen, die Verfügbarkeit von Azure Key Vault, die gesamte Last auf Azure Key Vault in Prozent gerechnet und die Anzahl der Aufrufe von Azure Key Vault. Eine fertige Übersicht der Metriken kann auch direkt in Azure Monitor (aktuell in der Vorschau) angezeigt werden. Darüber hinaus kann Azure Key Vault sowohl die Metriken als auch Logs, die zusätzliche Informationen zu den Metriken enthalten, nach Azure Log Analytics, Azure Event Hub und ein Speicherkonto exportieren.

Basierend auf den Metriken lassen sich statische und dynamische Benutzerwarnungen einrichten, um frühzeitig auf unerwartete Ereignisse zu reagieren. Es wird eine statische Warnung ausgelöst, wenn eine Metrik einen statischen Grenzwert überschreitet. Eine dynamische Warnung erfordert, dass eine Metrik einen Wert eine definierte Anzahl der Male passiert.

Backup und Recovery

Ein unerwarteter Verlust von Sicherheitsinformationen kann den gesamten Geschäftsablauf zum Erliegen bringen.  Daher bietet Azure Key Vault mehrere Mechanismen, um den Key Vault Dienst und dessen Inhalte gegen einen Verlust zu schützen. Für den Fall, dass ein Schlüssel oder ein kompletter Key Vault versehentlich gelöscht werden, implementiert Azure eine Soft-Delete-Option. Diese Option ermöglicht es, gelöschte Inhalte innerhalb der Aufbewahrungszeit, welche zwischen 7 und 90 Tage konfigurierbar ist, wiederherzustellen.

Als Alternative zum Soft-Delete unterstützt Azure Key Vault Backups von einzelnen Schlüsseln und Geheimnissen, aber nicht vom kompletten Key Vault. Eine Backup-Datei kann nur innerhalb des gleichen Azure Abonnements und der gleichen Geografie entschlüsselt werden. Da der Verwaltungsaufwand von Backups allein dem Benutzer unterliegt, empfiehlt Azure, die Backups nur dann vorzunehmen, wenn es dafür besondere Anlässe gibt.

Jeder Azure Key Vault verfügt schließlich über zwei Replikationen: Eine Replikation in der gleichen Region und eine andere Replikation in einer anderen Region der gleichen Geografie. Es gibt also insgesamt drei Kopien. Sobald eine Komponente in Azure Key Vault ausfällt, wird die entsprechende replizierte Komponente aktiv. Das Gleiche gilt, wenn eine Region komplett ausfällt. Dann wird Azure Key Vault automatisch auf eine andere Region umgeschaltet.

Use Cases

Azure Key Vault kann in verschiedenen Azure Diensten integriert werden. Zwei wichtige Anwendungsfälle sind:

  • Entwickler haben oft das Problem, Zugangsdaten zu Ihrer Entwicklungs- und Produktivumgebung zu verwalten. Azure DevOps/Pipeline erlaubt Schlüssel aus einem Key Vault in eine Pipeline oder ein Release anzubinden. Als Folge werden keine Schlüssel mehr hartkodiert, sondern leicht und zentralisiert durch die Active Directory und das RBAC verwaltet.
  • Orchestrierung und Automatisierung von Cloud-Lösungen wird oft von Azure Functions übernommen. Einzelne Schritte können dabei Zugangsdaten erfordern. Azure Functions können auf ein Key Vault mittels einer Managed Identity zugreifen. Dieser Ansatz lässt sich innerhalb weniger Minuten konfigurieren und automatisieren.

 

Key Vault ist ein sehr hilfreicher Dienst von Azure Cloud. Azure Key Vault erleichtert deutlich die Verwaltung von Zugangsdaten in verschiedenen Umgebungen und nimmt damit einen festen Platz in vielen Cloud Architekturen an.