Der Inside-Out-Sicherheits Blog - Der Inside-Out-Sicherheits Blog

Azure Blob Storage sichern: Setup-Leitfaden | Varonis

Geschrieben von Jeff Brown | Sep 29, 2021 4:00:00 AM

Sicherheit ist in der heutigen Cloud-First-Umgebung von entscheidender Bedeutung. Cloud-Dienste werden oft aktiviert, um ein Problem schnell zu lösen, aber niemand überprüft, ob die Best Practices bezüglich der Sicherheit befolgt werden. Insbesondere Cloudspeicher wie Azure Blob Storage werden häufig falsch konfiguriert.

In diesem Artikel erfahren Sie mehr über die Sicherheitsfunktionen, die Ihnen bei Azure Blob Storage zur Verfügung stehen.

Was ist Azure Blob Storage?

Azure Blob Storage ist eine Cloud-optimierte Speicherlösung für unstrukturierte (Datei-)Daten. Microsoft hat diesen Dienst für die Speicherung großer Mengen unstrukturierter Daten konzipiert, die nicht in Datenbanken gespeichert werden.

Beispiele für unstrukturierte Daten sind Text- und Binärdaten wie Bilder, Videos, Fotos und Dokumente. Das Wort „Blob“ ist ein branchenweit verwendetes Akronym für Binary Large OBject.

Azure Blob Storage ist eine Komponente eines Azure-Speicherkontos. Speicherkonten bieten auch Speicherplatz für andere Datenobjekte wie Dateifreigaben, Warteschlangen, Tabellen und Festplatten. Sie organisieren eine Reihe von BLOBs in Containern, ähnlich wie ein Directory oder ein Ordner in einem Dateisystem. Speicherkonten können eine unbegrenzte Anzahl von Containern enthalten, Container eine unbegrenzte Anzahl von BLOBs.

Die Sicherung des Zugriffs auf den Blobspeicher ist ein wesentlicher Schritt für jeden Azure-Administrator oder -Techniker. In den folgenden Abschnitten werden die verfügbaren Sicherheitsfunktionen beschrieben, mit denen Sie den Blobspeicher so konfigurieren können, dass er Ihren Anforderungen entspricht.

Verschlüsselungsanforderungen erfüllen

Azure Storage verschlüsselt Ihre Daten mit serverseitiger Verschlüsselung. Diese Verschlüsselungsmethode schützt Ihre Daten und hilft Ihnen, alle organisatorischen Sicherheits- und Compliance-Anforderungen zu erfüllen. Azure aktiviert automatisch die Verschlüsselung für alle Speicherkonten. Diese kann nicht deaktiviert werden. Speicherkonten unterstützen die Verschlüsselung auf allen Leistungsebenen, Zugriffsebenen und redundanten Kopien.

Standardmäßig verschlüsseln die Speicherkonten die Daten mit von Microsoft verwalteten Schlüsseln. Sie können diese Schlüssel weiterhin verwenden oder die Datenverschlüsselung mit Ihren eigenen Schlüsseln verwalten.

Wenn Sie sich für die Verwendung eigener Verschlüsselungsschlüssel entscheiden, haben Sie zwei Möglichkeiten. Sie können eine der beiden Arten der Schlüsselverwaltung verwenden oder beide.

  • Verwendung eines kundenverwalteten Schlüssels. Diese Schlüssel müssen in einem Azure Key Vault gespeichert werden.
  • Verwendung eines vom Kunden bereitgestellten Schlüssels. Diese Schlüssel werden für die Blobspeicherung verwendet. Ein Client, der Lese- oder Schreibanforderungen an den Blobspeicher stellt, kann einen Verschlüsselungsschlüssel für diese Anforderung verwenden. Mit dieser Methode lässt sich genau steuern, wie Blobdaten verschlüsselt und entschlüsselt werden.

Die folgende Tabelle vergleicht die Optionen zur Schlüsselverwaltung für die Azure Storage-Verschlüsselung.

Art der Schlüsselverwaltung Von Microsoft verwaltete Schlüssel Kundenverwaltete Schlüssel Vom Kunden bereitgestellte Schlüssel
Ver-/Entschlüsselung Azure Azure Azure
Von Azure Storage unterstützte Dienste Alle Blob, Azure-Dateien Blob
Schlüsselspeicher Microsoft-Schlüsselspeicher Azure Key Vault Eigener Schlüsselspeicher des Kunden
Verantwortung für Schlüsselrotation Microsoft Kunde Kunde
Schlüsselkontrolle Microsoft Kunde Kunde

So konfigurieren Sie ein Speicherkonto für die Verwendung eines kundenverwalteten Schlüssels, der in einem Key Vault gespeichert ist:

  1. Erstellen Sie einen Key Vault, falls Sie noch keinen haben. Lesen Sie diesen Schnellstart zum Erstellen eines Key Vault über das Azure-Portal.Wenn Sie einen neuen Key Vault erstellen, platzieren Sie ihn in derselben Region wie das Speicherkonto und aktivieren Sie den Bereinigungsschutz. Wenn Sie bereits einen Key Vault haben, gehen Sie zu den Einstellungen des Key Vault und wählen Sie Eigenschaften, um den Bereinigungsschutz zu aktivieren.
  2. Navigieren Sie im Speicherkonto zu Sicherheit + Netzwerk und wählen Sie Verschlüsselung.
  3. Wählen Sie als Verschlüsselungstyp die Optionsschaltfläche für Kundenverwaltete Schlüssel aus.
  4. Vergewissern Sie sich bei der Schlüsselauswahl, dass der Wert Aus Key Vault auswählen ausgewählt ist, und wählen Sie dann den Link Wählen Sie einen Key Vault und einen Schlüssel.
  5. Wählen Sie im Schritt Schlüssel auswählen das Abonnement, den Schlüsselspeichertyp und den Key Vault aus, in dem der kundenverwaltete Verschlüsselungsschlüssel gespeichert werden soll.Wenn Sie bereits einen Schlüssel im Key Vault gespeichert haben, wählen Sie diesen Schlüssel aus dem Dropdown-Menü aus. Andernfalls wählen Sie Erstellen Sie einen neuen Schlüssel. In diesem Tutorial erfahren Sie, wie ein neuer Schlüssel erstellt wird.
  6. Wählen Sie im Schritt Schlüssel erstellen die Option Erstellen aus, geben Sie dem Schlüssel einen aussagekräftigen Namen, wählen Sie den Schlüsseltyp und die Schlüsselgröße aus und legen Sie die Aktivierungs- und Ablaufdaten fest. Stellen Sie sicher, dass Aktiviert auf Ja gesetzt ist, und klicken Sie dann auf Erstellen.
  7. Stellen Sie im Fenster Schlüssel auswählen sicher, dass der neu erstellte Schlüssel im Dropdown-Menü Schlüssel ausgewählt ist, und klicken Sie auf Auswählen.
  8. Klicken Sie in den Verschlüsselungs-Einstellungen auf Speichern.

Zugriffsschlüssel verwenden

Speicherkonten verfügen über zwei 512-Bit-Zugriffsschlüssel, mit denen der Zugriff auf Speicherkontodaten autorisiert wird. Bei diesen Kontoschlüsseln handelt es sich im Grunde genommen um Root-Zugriff auf das Speicherkonto. Sie sollten die Kontoschlüssel sparsam verwenden und wie ein hochsensibles Passwort behandeln. Microsoft empfiehlt, Zugriffsschlüssel in einem Azure Key Vault zu speichern und verfügbare Befehle und APIs zu verwenden, um über den Key Vault auf die Kontoschlüssel zuzugreifen.

Um Ihre aktuellen Zugriffsschlüssel anzuzeigen, navigieren Sie zu Speicherkonto. Wählen Sie unter Sicherheit + Netzwerk Zugriffsschlüssel aus. Hier können Sie Schlüssel1 und Schlüssel2 für das Speicherkonto anzeigen, indem Sie das Symbol Schlüssel anzeigen auswählen. Wenn der Schlüsselwert nicht mehr verborgen ist, können Sie den Schlüsselwert in die Zwischenablage kopieren.

Jeder Schlüssel hat auch die Möglichkeit, zu rotieren oder einen neuen Schlüssel zu erstellen. Microsoft empfiehlt, die Schlüssel regelmäßig zu wechseln, bzw. dann, wenn Sie vermuten, dass der Schlüssel kompromittiert wurde. Sie sollten es vermeiden, Schlüssel großzügig an andere Benutzer weiterzugeben, in einem Skript oder einer Anwendung fest zu programmieren oder im Klartext zu speichern.

Shared Access Signatures (SAS) erstellen

Shared Access Signatures (SAS) sind ähnlich wie Zugriffsschlüssel. Sie ermöglichen den Zugriff auf Speicherkonten, Ihre Kontrolle über diesen Zugriff ist jedoch präziser. Sie können kontrollieren, auf welche Ressourcen sie Zugriff haben, über welche Berechtigungen sie für diese Ressourcen verfügen und wie lange diese Zugriffsrechte bestehen.

Azure Storage unterstützt drei Arten von Shared Access Signatures:

  • SAS für die Benutzerdelegierung: Geschützt mit Azure Active Directory-Anmeldeinformationen sowie mit Berechtigungen, die für die SAS festgelegt wurden. SAS wird nur für Blobspeicher unterstützt.
  • Dienst-SAS: Geschützt mit dem Speicherkontozugriffsschlüssel (siehe vorhergehender Abschnitt). Dienst-SAS bietet nur Zugriff auf Ressourcen im Blobspeicher, Warteschlangenspeicher, Tischspeicher oder in Azure-Dateien.
  • Konto-SAS: Ebenfalls mit dem Speicherkontozugriffsschlüssel geschützt. Konto-SAS delegiert den Zugriff auf Ressourcen in einem oder mehreren Speicherdiensten. Sie können auch den Zugriff auf Vorgänge auf Dienstebene sowie auf Lese-, Schreib- und Löschvorgänge delegieren, die mit Dienst-SAS nicht verfügbar sind.

Shared Access Signatures funktionieren über einen signierten URI, der ein Token und eine Reihe von Abfrageparametern enthält. Das Token bestimmt, auf welche Ressourcen der Client zugreifen kann. So erstellen Sie Shared Access Signatures:

  1. Navigieren Sie im Azure-Portal zu Speicherkonto.
  2. Navigieren Sie im Speicherkonto zu Sicherheit + Netzwerk und wählen Sie dann Shared Access Signature.
  3. Wählen Sie im Fenster Shared Access Signature die Speicherkontodienste und -optionen für die Shared Access Signature aus. In diesem Beispiel erhalten Sie Lese- und Listenberechtigungen für Blobs in einem Container. Verwenden Sie immer das Prinzip der notwendigsten Berechtigung, wenn Sie einer SAS Berechtigungen zuweisen.
  4. Wählen Sie einen Start- und Endzeitpunkt für die Gültigkeitsdauer der SAS aus.
  5. Bei Bedarf können Sie auch einschränken, welche IP-Adressen über die SAS Anfragen an das Speicherkonto senden können.
  6. Als Best Practice sollten Sie nur das HTTPS-Protokoll zulassen, wenn Sie den SAS-URI verwenden.
  7. Wählen Sie schließlich aus, welchen Zugriffsschlüssel Sie zum Signieren der Shared Access Signature verwenden möchten. Wenn Sie den Zugriffsschlüssel widerrufen, wird jede Shared Access Signature, die mit dem Zugriffsschlüssel erstellt wurde, ungültig.
  8. Nachdem Sie alle Optionen konfiguriert haben, wählen Sie SAS und Verbindungszeichenfolge erstellen.
  9. Der Assistent erstellt drei Optionen für die Verwendung der SAS: eine Verbindungszeichenfolge für Anwendungen, ein SAS-Token und eine Blob-Dienst-SAS-URL.

Azure Active Directory integrieren

Neben Zugriffsschlüsseln und Shared Access Signature, unterstützt Azure Storage außerdem Azure Active Directory (AD), um Client-Anfragen an den Speicher zu autorisieren. Sie können Role Based Access Control (RBAC) verwenden, um einem Benutzer, einer Gruppe oder einem Anwendungsdienstprinzipal Berechtigungen zu erteilen. Beispiele für Rollen sind:

  • Besitzer von Speicherblobdaten
  • Mitwirkender an Speicherblobdaten
  • Leser von Speicherblobdaten
  • Storage Blob-Delegator

Azure AD gibt bei der Authentifizierung des Clients ein OAuth 2.0-Token zurück. Der Client verwendet dieses Token, um auf den Blobspeicher zuzugreifen.

Die Verwendung von Azure AD zur Autorisierung von Anfragen an Azure Blob Storage ist Zugriffsschlüsseln und SAS gegenüber zu bevorzugen. Clients verwenden ihre vorhandenen Konten und Sie stellen sicher, dass sie mit den mindestens erforderlichen Berechtigungen auf den Blobspeicher zugreifen. Die Verwendung von Azure AD verhindert auch, dass gemeinsame Zugriffsschlüssel und SAS-URIs in die falschen Hände geraten.

Um mehr über falsch konfigurierte Cloud-Berechtigungen zu erfahren, lesen Sie den SaaS-Risikobericht 2021 von Varonis, den Sie hier finden hier!

So gewähren Sie einem Benutzer oder Client Zugriff über Azure AD:

  1. Navigieren Sie im Azure-Portal zu Speicherkonto.
  2. Navigieren Sie zu Zugriffskontrolle (IAM) für das Speicherkonto. Alternativ können Sie zu Datenspeicher > Container navigieren und einen bestimmten Container auswählen, um einem Client Zugriff zu gewähren.
  3. Wählen Sie im Fenster Zugriffskontrolle (IAM) die Option Hinzufügen. Wählen Sie dann im Menü Rollenzuweisung hinzufügen aus.
  4. Select one of the Storage Blob roles mentioned earlier in this section in the Add role assignment window.
  5. Suchen Sie nach dem Namen des Benutzers, der Gruppe oder des Dienstprinzipals und wählen Sie das entsprechende Konto/die entsprechenden Konten aus den Ergebnissen aus.
  6. Nachdem Sie alle Benutzer ausgewählt haben, klicken Sie auf Speichern.

Anonymen Zugriff verwalten

Container und Blobs in Azure Storage sind eine großartige Möglichkeit, große Datenmengen zu hosten und gemeinsam zu nutzen. Standardmäßig ist der öffentliche Zugriff auf Blobdaten deaktiviert und verboten. Microsoft empfiehlt, den öffentlichen Zugriff auf ein Speicherkonto zu deaktivieren, sofern Sie ihn nicht ausdrücklich benötigen.

Mehrere Vorfälle von Datenlecks sind auf falsch konfigurierte Cloud-Speicherkonten bei Microsoft, AWS und Google zurückzuführen.

Learn how to set up and secure an AWS S3 bucket in Jeff Petters How to Use AWS S3 Securely: Setup Guide.

Wenn Sie den öffentlichen Blobzugriff für das Speicherkonto deaktivieren, lehnt Azure anonyme Anfragen an das Konto ab. Lassen Sie den öffentlichen Zugriff nicht zu, können Sie diesen auch nicht für Container innerhalb des Kontos aktivieren. Wenn Ihr Speicherkonto verschiedene Container enthält, von denen einige öffentlichen Zugriff erfordern und andere nicht, empfiehlt Microsoft, öffentliche Container in ein separates Speicherkonto mit öffentlichem Zugriff zu verschieben.

Um Ihre Konfiguration für den öffentlichen Blobzugriff zu überprüfen, navigieren Sie zu Einstellungen und wählen Sie im Speicherkonto Konfiguration. Suchen Sie nach der Einstellung Öffentlichen Blobzugriff erlauben und stellen Sie sicher, dass sie auf Deaktiviert gesetzt ist.

Sichere Clientkommunikation aktivieren

Azure-Speicherkonten verfügen über zusätzliche Einstellungen, um eine sichere Kommunikation mit Client-Anwendungen sicherzustellen. Sie können diese Einstellungen finden, indem Sie zu Einstellungen navigieren und dann Konfiguration auswählen.

  • Sichere Übertragung erforderlich: Erfordert die Verwendung des HTTPS-Protokolls durch Client-Anwendungen. Wenn diese Option aktiviert ist, lehnt das Speicherkonto jegliche Kommunikation mit HTTP ab.
  • Minimale TLS-Version: Azure verschlüsselt die Client-Kommunikation mit Transport Layer Security (TLS). Diese Einstellung erzwingt höhere Versionen des TLS-Protokolls, derzeit v1.2. Client-Kommunikation mit älteren Versionen von TLS wird abgelehnt.

Azure Storage-Firewall konfigurieren

Azure-Speicherkonten verfügen über mehrere Netzwerkkomponenten, die der Sicherung des Zugriffs dienen. Eine davon ist die Firewall. Diese besteht aus Netzwerkregeln, die festlegen, welche Netzwerkressourcen auf das Speicherkonto zugreifen können. Zu diesen Netzwerkressourcen gehören IP-Adressen, IP-Bereiche, Subnets in einem Azure Virtual Network (VNet) oder Ressourceninstanzen einiger Azure-Dienste.

Standardmäßig ist das Speicherkonto von allen Netzwerken aus zugänglich. Um diese Einstellung zu ändern, navigieren Sie zu Speicherkonto. Gehen Sie zu Sicherheit + Netzwerk und wählen Sie Netzwerk. Hier gibt es zwei Optionen: Alle Netzwerke und Ausgewählte Netzwerke.

Um den Zugriff auf bestimmte Netzwerke zu beschränken, wählen Sie die Optionsschaltfläche Ausgewählte Netzwerke. Hier können Sie ein vorhandenes virtuelles Netzwerk auswählen oder ein neues virtuelles Netzwerk erstellen, um es der Liste hinzuzufügen. Sie können auch eine IP-Adresse oder einen CIDR-Bereich hinzufügen, z. B. einen bestimmten Server oder Ihr firmeneigenes Netzwerk.

Schließlich können Sie Azure-Ressourceninstanzen angeben, die Zugriff auf das Speicherkonto haben. Azure-Ressourcen sind beispielsweise Server, Key Vaults und Datenfabriken.

Fazit

Azure Blob Storage enthält viele Einstellungen und Funktionen zur Sicherung Ihrer Daten. Dieser Artikel hat nur einige der verfügbaren Optionen hervorgehoben. Der Microsoft Docs-Artikel Sicherheitsempfehlungen für Blob Storage bietet eine vollständige Liste mit Sicherheitseinstellungen und -optionen.