Konfigurieren des anonymen Lesezugriff für Container und Blobs

Azure Storage unterstützt optional den anonymen, öffentlichen Lesezugriff für Container und Blobs. Standardmäßig wird der anonyme Zugriff auf Ihre Daten nie zugelassen. Wenn Sie den anonymen Zugriff nicht explizit aktivieren, müssen alle Anforderungen an einen Container und dessen Blobs autorisiert werden. Wenn Sie die Einstellung für die Zugriffsebene eines Containers so konfigurieren, dass der anonyme Zugriff erlaubt ist, können Clients Daten in diesem Container lesen, ohne die Anforderung zu autorisieren.

Warnung

Wenn ein Container für den anonymen Zugriff konfiguriert ist, kann jeder Client Daten in diesem Container lesen. Der anonyme Zugriff stellt ein potenzielles Sicherheitsrisiko dar. Wenn Ihr Szenario dies nicht erfordert, empfehlen wir Ihnen daher, ihn für das Speicherkonto zu deaktivieren.

In diesem Artikel wird beschrieben, wie Sie anonymen Lesezugriff auf einen Container und zugehörige Blobs konfigurieren. Informationen dazu, wie Sie für optimale Sicherheit den anonymen Zugriff deaktivieren können, finden Sie in einem dieser Artikel:

Informationen zum anonymen Lesezugriff

Der anonyme Zugriff auf Ihre Daten ist standardmäßig immer unzulässig. Es gibt zwei Möglichkeiten, die Einstellungen für den anonymen Zugriff zu ändern:

  1. Einstellung für anonymen Zugriff für das Speicherkonto. Ein Azure Resource Manager-Speicherkonto bietet eine Einstellung, um anonymen Zugriff für das Konto zuzulassen oder zu verbieten. Microsoft empfiehlt, anonymen Zugriff für Ihre Speicherkonten für optimale Sicherheit zu verbieten.

    Wenn anonymer Zugriff auf Kontoebene zulässig ist, sind BLOB-Daten für anonymen Lesezugriff nicht verfügbar, es sei denn, der Benutzer führt den zusätzlichen Schritt aus, um die Einstellung für den anonymen Zugriff des Containers explizit zu konfigurieren.

  2. Konfigurieren der Einstellung für den anonymen Zugriff des Containers. Standardmäßig ist die Containereinstellung für den anoynmen Zugriff deaktiviert. Jede Anforderung an den Container oder dessen Daten muss also autorisiert werden. Ein Benutzer mit entsprechenden Berechtigungen kann die Containereinstellung für den anonymen Zugriff so ändern, dass anonymer Zugriff nur zugelassen wird, wenn dieser auch für das Speicherkonto aktiviert ist.

In der folgenden Tabelle wird zusammengefasst, wie sich diese beiden Einstellungen auf den anonymen Zugriff für einen Container auswirken.

Die anonyme Zugriffsebene für den Container ist auf Privat festgelegt (Standardeinstellung) Die anonyme Zugriffsebene für den Container ist auf Container festgelegt Die anonyme Zugriffsebene für den Container ist auf Blob festgelegt
Anonymer Zugriff wird für das Speicherkonto verweigert Kein anonymer Zugriff auf die Container im Speicherkonto. Kein anonymer Zugriff auf die Container im Speicherkonto. die Einstellung für das Speicherkonto überschreibt die Containereinstellung. Kein anonymer Zugriff auf die Container im Speicherkonto. die Einstellung für das Speicherkonto überschreibt die Containereinstellung.
Anonymer Zugriff wird für das Speicherkonto zugelassen Kein anonymer Zugriff auf diesen Container (Standardkonfiguration). Der anonyme Zugriff ist für diesen Container und dessen Blobs zulässig. Der anonyme Zugriff auf Blobs in diesem Container ist zulässig, jedoch nicht auf den Container selbst.

Wenn der anonyme Zugriff für ein Speicherkonto zulässig und für einen bestimmten Container konfiguriert ist, wird eine Anforderung zum Lesen eines Blobs in diesem Container, die ohne Autorisierungsheader übergeben wird, vom Dienst akzeptiert, und die Daten des Blobs werden in der Antwort zurückgegeben.

Zulassen oder Verweigern des anonymen Lesezugriffs für ein Speicherkonto

Wenn der anonyme Zugriff auf ein Speicherkonto zugelassen wird, kann ein Benutzer mit entsprechenden Berechtigungen die Containereinstellung für den anonymen Zugriff so ändern, dass anonymer Zugriff auf die Daten in dem Container möglich ist. Für Blobdaten ist der anonyme Zugriff nicht verfügbar, sofern der Benutzer nicht in einem zusätzlichen Schritt explizit die Containereinstellung für den anonymen Zugriff konfiguriert.

Beachten Sie, dass der anonyme Zugriff auf einen Container standardmäßig deaktiviert ist und explizit konfiguriert werden muss, damit anonyme Anforderungen zugelassen werden. Unabhängig von der Einstellung für das Speicherkonto sind Ihre Daten niemals für den anonymen Zugriff verfügbar, sofern nicht ein Benutzer mit entsprechenden Berichtigungen den anonymen Zugriff auf den Container in einem zusätzlichen Schritt aktiviert.

Das Aufheben des anonymen Zugriffs für das Speicherkonto setzt die Einstellungen für den Zugriff für alle Container in diesem Speicherkonto außer Kraft und verhindert so den anonymen Zugriff auf die Blobdaten in diesem Konto. Wenn der anonyme Zugriff für das Konto aufgehoben wurde, ist es nicht möglich, die Einstellung für den Zugriff für einen Container so zu konfigurieren, dass ein anonymer Zugriff möglich ist, sodass alle künftigen anonymen Anforderungen an dieses Konto fehlschlagen. Bevor Sie diese Einstellung ändern, sollten Sie sich mit den Auswirkungen auf Clientanwendung befassen, die ggf. anonym auf Daten in Ihrem Speicherkonto zugreifen. Weitere Informationen finden Sie unter Verhindern des anonymen Lesezugriffs auf Container und Blobs.

Wichtig

Nachdem der anonyme Zugriff für ein Speicherkonto verweigert wurde, gibt Azure Storage an Clients, welche die anonyme Beareranforderung verwenden, den Fehler 403 (Verboten) und nicht den Fehler 401 (Nicht autorisiert) zurück. Es wird empfohlen, alle Container als privat festzulegen, um dieses Problem zu beheben. Weitere Informationen zum Ändern der Einstellung für den anonymen Zugriff für Container finden Sie unter Festlegen der Zugriffsebene für einen Container.

Das Zulassen oder Untersagen des anonymen Zugriffs erfordert mindestens Version 2019-04-01 des Azure Storage-Ressourcenanbieters. Weitere Informationen finden Sie unter REST-API des Azure Storage-Ressourcenanbieters.

Berechtigungen zum Aufheben des anonymen Zugriffs

Zum Festlegen der Eigenschaft AllowBlobAnonymousAccess für das Speicherkonto muss ein Benutzer Berechtigungen zum Erstellen und Verwalten von Speicherkonten haben. Azure RBAC-Rollen (Role-Based Access Control, rollenbasierte Zugriffssteuerung), die diese Berechtigungen bieten, enthalten die Aktion Microsoft.Storage/storageAccounts/write. In diese Aktion sind folgende Rollen integriert:

Rollenzuweisungen müssen auf die Ebene des Speicherkontos oder höher eingeschränkt werden, damit Benutzer den anonymen Zugriff für das Speicherkonto zulassen oder aufheben dürfen. Weitere Informationen zum Rollenbereich finden Sie unter Grundlegendes zum Bereich für Azure RBAC.

Beschränken Sie die Zuweisung dieser Rollen unbedingt auf diejenigen Administratorbenutzer*innen, denen es möglich sein muss, ein Speicherkonto zu erstellen oder dessen Eigenschaften zu aktualisieren. Verwenden Sie das Prinzip der geringsten Rechte, um sicherzustellen, dass Benutzer die geringsten Berechtigungen haben, die sie zum Ausführen ihrer Aufgaben benötigen. Weitere Informationen zum Verwalten des Zugriffs mit Azure RBAC finden Sie unter Bewährte Methoden für Azure RBAC.

Diese Rollen bieten keinen Zugriff auf Daten in einem Speicherkonto über Microsoft Entra ID. Sie enthalten jedoch die Aktion Microsoft.Storage/storageAccounts/listkeys/action, die Zugriff auf die Kontozugriffsschlüssel gewährt. Bei dieser Berechtigung kann ein Benutzer mithilfe der Kontozugriffsschlüssel auf alle Daten in einem Speicherkonto zuzugreifen.

Die Aktion Microsoft.Storage/storageAccounts/listkeys selbst gewährt Datenzugriff über die Kontoschlüssel, gewährt aber Benutzer*innen nicht die Möglichkeit, die AllowBlobPublicAccess-Eigenschaft für ein Speicherkonto zu ändern. Für Benutzer*innen, die auf Daten in Ihrem Speicherkonto zugreifen müssen, die Konfiguration des Speicherkontos aber nicht ändern sollen, sollten Sie Rollen wie Mitwirkender an Speicherblobdaten, Storage-Blobdatenleser oder Lese- und Datenzugriff zuweisen.

Hinweis

Die zu „Administrator für klassisches Abonnement“ gehörigen Rollen „Dienstadministrator“ und „Co-Administrator“ schließen die Entsprechung der Azure Resource Manager-Rolle Besitzer ein. Da die Rolle Besitzer alle Aktionen einschließt, können Benutzer*innen mit einer dieser administrativen Rollen auch Speicherkonten erstellen und die Kontokonfiguration verwalten. Weitere Informationen finden Sie unter Azure-Rollen, Microsoft Entra-Rollen und Administratorrollen für klassische Abonnements.

Festlegen der Eigenschaft AllowBlobPublicAccess des Speicherkontos

Legen Sie die AllowBlobPublicAccess-Eigenschaft des Kontos fest, um den anonymen Zugriff für ein Speicherkonto zu erlauben oder zu verweigern. Diese Eigenschaft ist für alle Speicherkonten verfügbar, die mit dem Azure Resource Manager-Bereitstellungsmodell erstellt wurden. Weitere Informationen finden Sie unter Speicherkontoübersicht.

Führen Sie die folgenden Schritte aus, um den anonymen Zugriff für ein Speicherkonto im Azure-Portal zu erlauben oder zu verweigern:

  1. Navigieren Sie zum Speicherkonto im Azure-Portal.

  2. Suchen Sie unter Einstellungen die Einstellung Konfiguration.

  3. Legen Sie Anonymen Blob-Zugriff zulassen auf aktiviert oder deaktiviert fest.

    Screenshot showing how to allow or disallow anonymous access for account

Hinweis

Die Verweigerung des anonymen Zugriffs auf ein Speicherkonto wirkt sich nicht auf statische Websites aus, die in diesem Speicherkonto gehostet werden. Auf den Container $web kann immer öffentlich zugegriffen werden.

Nachdem Sie die Einstellung für den anonymen Zugriff für das Speicherkonto aktualisiert haben, kann es bis zu 30 Sekunden dauern, bis die Änderung vollständig weitergegeben wurde.

Wenn ein Container für den anonymen Zugriff konfiguriert ist, müssen Anforderungen zum Lesen von Blobs in diesem Container nicht autorisiert werden. Alle für das Speicherkonto konfigurierten Firewallregeln bleiben jedoch in Kraft und blockieren den Datenverkehr in Übereinstimmung mit den konfigurierten Zugriffssteuerungslisten.

Das Zulassen oder Untersagen des anonymen Zugriffs erfordert mindestens Version 2019-04-01 des Azure Storage-Ressourcenanbieters. Weitere Informationen finden Sie unter REST-API des Azure Storage-Ressourcenanbieters.

Die Beispiele in diesem Abschnitt zeigten, wie die AllowBlobPublicAccess-Eigenschaft für das Speicherkonto gelesen werden kann, um zu ermitteln, ob der anonyme Zugriff derzeit zulässig oder nicht zulässig ist. Weitere Informationen darüber, wie Sie überprüfen können, ob die Einstellung für den öffentlichen Zugriff eines Kontos so konfiguriert ist, dass anonymer Zugriff verhindert wird, finden Sie unter Deaktivieren des anonymem öffentlichen Zugriffs für das Speicherkonto.

Festlegen der anonymen Zugriffsebene für einen Container

Wenn anonyme Benutzer Lesezugriff auf den Container und auf die zugehörigen Blobs erhalten sollen, müssen Sie zunächst den anonymen Zugriff für das Speicherkonto zulassen und anschließend die anonyme Zugriffsebene für den Container festlegen. Wenn der anonyme Zugriff für das Speicherkonto verweigert wird, können Sie den anonymen Zugriff für einen Container nicht konfigurieren.

Achtung

Microsoft empfiehlt, anonymen Zugriff auf Blob-Daten in Ihrem Speicherkonto zuzulassen.

Wenn der anonyme Zugriff für ein Speicherkonto erlaubt ist, können Sie einen Container mit den folgenden Berechtigungen konfigurieren:

  • No public read access (Kein öffentlicher Lesezugriff): Auf den Container und zugehörige Blobs kann nur mit einer autorisierten Anforderung zugegriffen werden. Diese Option ist die Standardeinstellung für alle neuen Container.
  • Public read access for blobs only (Öffentlicher Lesezugriff nur für Blobs): Blobs innerhalb des Containers können über anonyme Anforderungen gelesen werden, Containerdaten sind aber anonym nicht verfügbar. Anonyme Clients können die Blobs im Container nicht aufzählen.
  • Public read access for container and its blobs (Öffentlicher Lesezugriff für Container und zugehörige Blobs): Container- und Blobdaten können über anonyme Anforderungen gelesen werden, mit Ausnahme der Einstellungen für Containerberechtigungen und -metadaten. Clients können Blobs im Container über anonyme Anforderungen aufzählen, können aber keine Container im Speicherkonto aufzählen.

Sie können die anonyme Zugriffsebene nicht für einzelne Blobs ändern. Die anonyme Zugriffsebene ist nur auf Containerebene festgelegt. Sie können die anonyme Zugriffsebene des Containers festlegen, wenn Sie den Container erstellen, oder die Einstellung für einen vorhandenen Container aktualisieren.

Führen Sie die folgenden Schritte aus, um die anonyme Zugriffsebene für einen oder mehrere vorhandene Container im Azure-Portal zu aktualisieren:

  1. Navigieren Sie zu Ihrer Speicherkontoübersicht im Azure-Portal.

  2. Wählen Sie unter Datenspeicherung auf dem Menüblatt Blobcontainer aus.

  3. Wählen Sie die Container aus, für die Sie die anonyme Zugriffsebene festlegen möchten.

  4. Klicken Sie auf Zugriffsebene ändern, um die Einstellungen für den anonymen Zugriff aufzurufen.

  5. Wählen Sie aus der Dropdownliste Anonyme Zugriffsebene den gewünschten Eintrag aus, und klicken Sie auf „OK“, damit die Änderungen auf die ausgewählten Container angewendet werden.

    Screenshot showing how to set anonymous access level in the portal.

Wenn der anonyme Zugriff für das Speicherkonto verweigert wird, kann die anonyme Zugriffsebene eines Containers nicht festgelegt werden. Wenn Sie die anonyme Zugriffsebene eines Containers festlegen möchten, stellen Sie fest, dass die Einstellung deaktiviert ist, da der öffentliche Zugriff für dieses Konto verweigert wird.

Screenshot showing that setting a container's anonymous access level is blocked when anonymous access disallowed for the account

Überprüfen der Einstellung für den anonymen Zugriff für eine Gruppe von Containern

Durch Auflisten der Container und Überprüfen der Einstellung für den anonymen Zugriff können Sie überprüfen, welche Container in einem oder mehreren Speicherkonten für den anonymen Zugriff konfiguriert sind. Diese Vorgehensweise ist praktisch, wenn ein Speicherkonto keine große Anzahl von Containern enthält oder wenn Sie die Einstellung für eine kleine Anzahl von Speicherkonten überprüfen. Die Leistung kann jedoch beeinträchtigt werden, wenn Sie versuchen, eine große Anzahl von Containern aufzuzählen.

Im folgenden Beispiel wird PowerShell verwendet, um die Einstellung für den anonymen Zugriff auf alle Container in einem Speicherkonto zu erhalten. Denken Sie daran, die Platzhalterwerte in Klammern durch Ihre eigenen Werte zu ersetzen:

$rgName = "<resource-group>"
$accountName = "<storage-account>"
$storageAccount = Get-AzStorageAccount -ResourceGroupName $rgName -Name $accountName
$ctx = $storageAccount.Context
Get-AzStorageContainer -Context $ctx | Select Name, PublicAccess

Featureunterstützung

Die Unterstützung für dieses Features kann durch die Aktivierung von Data Lake Storage Gen2, dem Network File System (NFS) 3.0-Protokoll oder dem SSH File Transfer Protocol (SFTP) beeinträchtigt werden. Wenn Sie eine dieser Funktionen aktiviert haben, lesen Sie bitte den Abschnitt Unterstützung der Blob Storage-Funktion in Azure Storage-Konten, um die Unterstützung für dieses Features zu bewerten.

Nächste Schritte