Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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. Anonymer Zugriff stellt ein potenzielles Sicherheitsrisiko dar, daher sollten Sie anonymen Zugriff auf das Speicherkonto beheben, falls Ihr Szenario dies nicht erfordert.
In diesem Artikel wird beschrieben, wie Sie anonymen Lesezugriff auf einen Container und zugehörige Blobs konfigurieren. Für Informationen darüber, wie man anonymen Zugriff für optimale Sicherheit behebt, siehe Anonymer Lesezugriff auf Blob-Daten beheben.
Informationen zum anonymen Lesezugriff
Der anonyme Zugriff auf Ihre Daten ist standardmäßig immer unzulässig. Zwei Einstellungen beeinflussen den anonymen Zugriff:
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.
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 Einstellung des Containers. | Kein anonymer Zugriff auf die Container im Speicherkonto. Die Einstellung für das Speicherkonto überschreibt die Einstellung des Containers. |
| 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 anonymer Zugriff für ein Speicherkonto erlaubt und für einen bestimmten Container konfiguriert ist, akzeptiert der Dienst eine Anfrage, einen Blob in diesem Container zu lesen, der ohne Header Authorization weitergegeben wird, und gibt die Daten des Blobs in der Antwort zurück. Wenn die Anfrage jedoch mit einem Header Authorization weitergeleitet wird, ignoriert der Dienst anonymen Zugriff auf das Speicherkonto und autorisiert die Anfrage basierend auf den bereitgestellten Zugangsdaten.
Zulassen oder Verweigern des anonymen Lesezugriffs für ein Speicherkonto
Wenn Sie anonymen Zugriff für ein Speicherkonto erlauben, kann ein Benutzer mit den entsprechenden Berechtigungen die anonyme Zugriffseinstellung eines Containers so ändern, dass anonymer Zugriff auf die Daten in diesem Container möglich ist. Blob-Daten sind niemals für anonymen Zugriff verfügbar, es sei denn, der Benutzer unternimmt den zusätzlichen Schritt, die anonyme Zugriffseinstellung des Containers explizit zu konfigurieren.
Der anonyme Zugriff auf einen Container ist standardmäßig immer deaktiviert und muss explizit so konfiguriert sein, dass anonyme Anfragen erlaubt werden. Unabhängig von der Einstellung des Speicherkontos sind Ihre Daten niemals für anonymen Zugriff verfügbar, es sei denn, ein Benutzer mit den entsprechenden Berechtigungen unternimmt diesen zusätzlichen Schritt, um den anonymen Zugriff auf den Container zu ermöglichen.
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 du den anonymen Zugriff für das Konto verweigerst, kannst du die Zugriffseinstellung für einen Container nicht so konfigurieren, dass sie anonymen Zugriff erlaubt, und zukünftige anonyme Anfragen an dieses Konto schlagen fehl. Bevor Sie diese Einstellung ändern, stellen Sie sicher, dass Sie die Auswirkungen auf Client-Anwendungen verstehen, die möglicherweise anonym auf Daten in Ihrem Speicherkonto zugreifen. Weitere Informationen finden Sie unter Verhindern des anonymen Lesezugriffs auf Container und Blobs.
Wichtig
Nachdem Sie den anonymen Zugriff für ein Speicherkonto verweigert haben, stellen Clients, die die anonyme Träger-Herausforderung nutzen, fest, dass Azure Storage einen 403-Fehler (verboten) und nicht einen 401-Fehler (Unauthorized) zurückgibt. Machen Sie alle Container privat, um dieses Problem zu mindern. 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
Um die AllowBlobPublicAccess-Eigenschaft für das Speicherkonto einzustellen, benötigen Sie Berechtigungen, um Speicherkonten zu erstellen und zu verwalten. 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:
- Die Azure Resource Manager-Rolle Besitzer
- Die Azure Resource Manager-Rolle Mitwirkender
- Die Rolle Speicherkontomitwirkender
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 Geltungsbereich einer Rolle finden Sie unter Grundlegendes zum Geltungsbereich für Azure RBAC.
Beschränke die Zuweisung dieser Rollen nur auf Administratoren, die die Möglichkeit benötigen, ein Speicherkonto zu erstellen oder dessen Eigenschaften zu aktualisieren. Nutze das Prinzip der geringsten Privilegien, um sicherzustellen, dass Nutzer so wenige Berechtigungen wie möglich haben, um ihre Aufgaben zu erfüllen. 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. Mit dieser Berechtigung kann ein Benutzer die Zugriffsschlüssel des Kontos nutzen, um auf alle Daten in einem Speicherkonto zuzugreifen.
Das Microsoft. Storage/storageAccounts/listkeys/action selbst gewährt Datenzugriff über die Kontoschlüssel, aber es gibt einem Benutzer nicht die Möglichkeit, die AllowBlobPublicAccess-Eigenschaft für ein Speicherkonto zu ändern. Für Benutzende, 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 klassischen Abonnementadministratorrollen „Dienstadministrator“ und „Co-Administrator“ umfassen das Äquivalent der Azure Resource Manager-Rolle Besitzer. 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 Sie mit dem Azure Resource Manager-Bereitstellungsmodell erstellen. 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:
Wechseln Sie im Azure-Portal zu Ihrem Speicherkonto.
Finden Sie die Konfigurationseinstellung unter Einstellungen.
Legen Sie Anonymen Blob-Zugriff zulassen auf aktiviert oder deaktiviert fest.
Hinweis
Das Verbot des anonymen Zugriffs für 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 du die anonyme Zugriffseinstellung für das Speicherkonto aktualisiert hast, kann es bis zu 30 Sekunden dauern, bis die Änderung vollständig verbreitet ist.
Wenn ein Container für den anonymen Zugriff konfiguriert ist, müssen Anforderungen zum Lesen von Blobs in diesem Container nicht autorisiert werden. Allerdings bleiben alle Firewall-Regeln, die du für das Speicherkonto konfigurierst, weiterhin in Kraft und blockieren den Verkehr im Einklang mit den konfigurierten ACLs.
Die folgenden Beispiele zeigen, wie man die AllowBlobPublicAccess-Eigenschaft für das Speicherkonto liest, um festzustellen, ob derzeit anonymer Zugriff erlaubt oder nicht erlaubt 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. Bevor Sie beginnen, stellen Sie sicher, dass anonymer Zugriff auf Kontoebene (über die AllowBlobPublicAccess-Eigenschaft ) erlaubt ist und dass Sie eine Schreibberechtigung für den Container haben. Wenn der anonyme Zugriff für das Speicherkonto verweigert wird, kannst du keinen anonymen Zugriff für einen Container konfigurieren.
Achtung
Microsoft rät davon ab, anonymen Zugriff auf Blobdaten in Ihrem Speicherkonto zuzulassen.
Wenn Sie anonymen Zugriff auf ein Speicherkonto erlauben, können Sie einen Container mit folgenden Berechtigungen konfigurieren:
- Kein öffentlicher Lesezugriff (Portal: Privat; PowerShell: Aus): Der Container und seine Blobs können nur mit einer autorisierten Anfrage abgerufen werden. Diese Option ist die Standardeinstellung für alle neuen Container.
- Öffentlicher Lesezugriff nur für Blobs (Portal und PowerShell: Blob): Blobs im Container können anonym gelesen werden, aber Containerdaten sind nicht anonym verfügbar. Anonyme Clients können die Blobs im Container nicht aufzählen.
- Öffentlicher Lesezugriff für Container und seine Blobs (Portal und PowerShell: Container): Container- und Blob-Daten können anonym gelesen werden, mit Ausnahme von Container-Berechtigungseinstellungen und Container-Metadaten. Clients können Blobs im Container anonym auflisten, aber keine Container im Speicherkonto auflisten.
Sie können die anonyme Zugriffsebene nicht für einzelne Blobs ändern. Setze die anonyme Zugriffsebene nur auf Containerebene. 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:
Wechseln Sie im Azure-Portal zur Übersicht Ihres Speicherkontos.
Wählen Sie unter Datenspeicher im Menüblatt Container aus.
Wählen Sie die Container aus, für die Sie die anonyme Zugriffsebene festlegen möchten.
Wählen Sie Zugriffsstufe ändern , um die anonymen Zugriffseinstellungen zu öffnen.
Wählen Sie die gewünschte anonyme Zugriffsstufe im Dropdown-Menü "Anonyme Zugriffsebene " und wählen Sie OK , um die Änderung auf die ausgewählten Container anzuwenden.
Um die Änderung zu verifizieren, öffnen Sie die Zugriffsstufe ändern erneut und bestätigen, dass die Anonyme Zugriffsstufe Ihren gewählten Wert anzeigt.
Wenn der anonyme Zugriff für das Speicherkonto nicht erlaubt ist, kann man die anonyme Zugriffsstufe eines Containers nicht festlegen. Wenn Sie die anonyme Zugriffsebene eines Containers festlegen möchten, ist die Einstellung deaktiviert, da der öffentliche Zugriff für dieses Konto verweigert wird.
Überprüfen der Einstellung für den anonymen Zugriff für eine Gruppe von Containern
Sie können prüfen, welche Container in einem oder mehreren Speicherkonten für anonymen Zugriff konfiguriert sind, indem Sie die Container auflisten und die Einstellung für anonymen Zugriff aktivieren. 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. Allerdings kann die Leistung leiden, 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
Unterstützte Funktionen
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.