Verwenden privater Endpunkte für Azure Storage
Sie können private Endpunkte für Ihre Azure Storage-Konten verwenden, um Clients in einem virtuellen Netzwerk (VNET) den sicheren Zugriff auf Daten über Private Link zu ermöglichen. Der private Endpunkt verwendet eine separate IP-Adresse aus dem VNet-Adressraum für jeden Speicherkontodienst. Der Netzwerkdatenverkehr zwischen den Clients im VNET und dem Speicherkonto wird über das VNET und eine private Verbindung im Microsoft-Backbone-Netzwerk geleitet, sodass keine Offenlegung im öffentlichen Internet erfolgt.
Hinweis
Private Endpunkte sind für Speicherkonten vom Typ „Universell V1“ nicht verfügbar.
Die Verwendung privater Endpunkte für Ihr Speicherkonto bietet Ihnen folgende Möglichkeiten:
- Sichern Sie Ihr Speicherkonto mithilfe eines privaten Links. Sie können die Speicherfirewall manuell konfigurieren, um Verbindungen am öffentlichen Endpunkt des Speicherdiensts zu blockieren. Durch das Erstellen eines privaten Links werden Verbindungen am öffentlichen Endpunkt nicht automatisch blockiert.
- Erhöhen der Sicherheit für das virtuelle Netzwerk (VNET), indem Sie die Exfiltration von Daten aus dem VNET blockieren.
- Sicheres Verbinden mit Speicherkonten aus lokalen Netzwerken, die eine Verbindung mit dem VNET über VPN oder ExpressRoutes mit privatem Peering herstellen.
Konzeptionelle Übersicht
Ein privater Endpunkt ist eine spezielle Netzwerkschnittstelle für einen Azure-Dienst in Ihrem virtuellen Netzwerk (VNET). Wenn Sie einen privaten Endpunkt für Ihr Speicherkonto erstellen, wird eine sichere Verbindung zwischen Clients in Ihrem VNET und Ihrem Speicher bereitgestellt. Dem privaten Endpunkt wird eine IP-Adresse aus dem IP-Adressbereich Ihres VNET zugewiesen. Für die Verbindung zwischen dem privaten Endpunkt und dem Speicherdienst wird eine sichere private Verbindung verwendet.
Anwendungen im VNET können eine nahtlose Verbindung mit dem Speicherdienst über den privaten Endpunkt herstellen, und zwar mit denselben Verbindungszeichenfolgen und Autorisierungsmechanismen, die auch sonst verwendet würden. Private Endpunkte können mit allen vom Speicherkonto unterstützten Protokollen verwendet werden, einschließlich REST und SMB.
Private Endpunkte können in Subnetzen erstellt werden, die Dienstendpunkte verwenden. Clients in einem Subnetz können somit eine Verbindung mit einem Speicherkonto über einen privaten Endpunkt herstellen, während für den Zugriff auf andere Konten Dienstendpunkte verwendet werden.
Wenn Sie einen privaten Endpunkt für einen Speicherdienst in Ihrem VNET erstellen, wird an den Speicherkontobesitzer eine Einwilligungsanforderung zur Genehmigung gesendet. Wenn der Benutzer, der die Erstellung des privaten Endpunkts anfordert, auch ein Besitzer des Speicherkontos ist, wird diese Einwilligungsanforderung automatisch genehmigt.
Speicherkontobesitzer können Einwilligungsanforderungen und die privaten Endpunkte im Azure-Portal über die Registerkarte Private Endpunkte für das Speicherkonto verwalten.
Tipp
Wenn der Zugriff auf Ihr Speicherkonto nur über den privaten Endpunkt erfolgen soll, konfigurieren Sie die Speicherfirewall so, dass der Zugriff über den öffentlichen Endpunkt verweigert oder gesteuert wird.
Sie können Ihr Speicherkonto schützen, indem nur Verbindungen über das VNet akzeptiert werden. Dazu konfigurieren Sie die Speicherfirewall so, dass der Zugriff über den öffentlichen Endpunkt standardmäßig verweigert wird. Sie brauchen keine Firewallregel, um Datenverkehr aus einem VNET mit einem privaten Endpunkt zuzulassen, da die Speicherfirewall nur den Zugriff über den öffentlichen Endpunkt steuert. Private Endpunkte verwenden stattdessen den Einwilligungsflow, um Subnetzen den Zugriff auf den Speicherdienst zu gewähren.
Hinweis
Beim Kopieren von Blobs zwischen Speicherkonten benötigt der Client Netzwerkzugriff auf beide Konten. Wenn Sie also einen privaten Link für ein einziges Konto (Quelle oder Ziel) verwenden möchten, stellen Sie sicher, dass der Client über Netzwerkzugriff auf das andere Konto verfügt. Weitere Informationen zu anderen Möglichkeiten zum Konfigurieren des Netzwerkzugriffs finden Sie unter Konfigurieren von Firewalls und virtuellen Netzwerken in Azure Storage.
Erstellen eines privaten Endpunkts
Informationen zum Erstellen eines privaten Endpunkts über das Azure-Portal finden Sie unter Privat mit einem Speicherkonto verbinden über die Speicherkonto-Erfahrung im Azure-Portal.
Wie Sie einen privaten Endpunkt mithilfe von PowerShell oder der Azure-CLI erstellen, erfahren Sie in einem dieser Artikel. Bei beiden ist eine Azure-Web-App der Zieldienst, die Schritte zum Erstellen einer privaten Verknüpfung sind jedoch die gleichen für ein Azure-Storage-Konto.
Wenn Sie einen privaten Endpunkt erstellen, müssen Sie das Speicherkonto und den Speicherdienst angeben, mit dem eine Verbindung hergestellt wird.
Sie benötigen einen separaten privaten Endpunkt für jede Speicherressource, auf die Sie zugreifen müssen. Dies sind Blobs, Data Lake Storage, Dateien, Warteschlangen, Tabellen oder statische Websites. Für den privaten Endpunkt sind diese Speicherdienste als untergeordnete Zielressourcen des zugeordneten Speicherkontos definiert.
Wenn Sie einen privaten Endpunkt für die Speicherressource „Data Lake Storage“ erstellen, sollten Sie auch einen für die Ressource „Blob Storage“ erstellen. Der Grund: Vorgänge, deren Ziel der Endpunkt „Data Lake Storage“ ist, werden möglicherweise an den Endpunkt „Blob“ umgeleitet. Wenn Sie einen privaten Endpunkt nur für Blob Storage und nicht für Data Lake Storage hinzufügen, schlagen einige Vorgänge (z. B. ACL verwalten, Verzeichnis erstellen, Verzeichnis löschen usw.) fehl, da die APIs einen privaten DFS-Endpunkt erfordern. Durch das Erstellen eines privaten Endpunkts für beide Ressourcen sorgen Sie dafür, dass alle Vorgänge erfolgreich abgeschlossen werden können.
Tipp
Erstellen Sie einen separaten privaten Endpunkt für die sekundäre Instanz des Speicherdiensts, um die Leseleistung für RA-GRS-Konten zu verbessern. Erstellen Sie unbedingt ein Speicherkonto (Standard oder Premium) vom Typ „Universell v2 (GPv2)“.
Für Lesezugriff auf die sekundäre Region mit einem Speicherkonto, das für georedundanten Speicher konfiguriert ist, benötigen Sie separate private Endpunkte sowohl für die primäre als auch die sekundäre Instanz des Diensts. Sie müssen für ein Failover keinen privaten Endpunkt für die sekundäre Instanz erstellen. Der private Endpunkt stellt nach einem Failover automatisch eine Verbindung mit der neuen primären Instanz her. Weitere Informationen zu den Speicherredundanzoptionen finden Sie unter Azure Storage-Redundanz.
Herstellen einer Verbindung mit einem privaten Endpunkt
Clients in einem VNet, die den privaten Endpunkt verwenden, sollten dieselbe Verbindungszeichenfolge für das Speicherkonto verwenden wie Clients, die eine Verbindung mit dem öffentlichen Endpunkt herstellen. Das automatische Weiterleiten der Verbindungen vom VNET zum Speicherkonto über eine private Verbindung basiert auf der DNS-Auflösung.
Wichtig
Verwenden Sie zum Herstellen einer Verbindung mit dem Speicherkonto mithilfe privater Endpunkte dieselbe Verbindungszeichenfolge, die Sie auch sonst verwenden würden. Stellen Sie keine Verbindung mit dem Speicherkonto über die URL der Unterdomäne privatelink
her.
Wir erstellen standardmäßig eine private DNS-Zone, die an das VNet angefügt ist, mit den erforderlichen Updates für die privaten Endpunkte. Wenn Sie jedoch einen eigenen DNS-Server verwenden, müssen Sie möglicherweise zusätzliche Änderungen an Ihrer DNS-Konfiguration vornehmen. Im folgenden Abschnitt zu DNS-Änderungen werden die für private Endpunkte erforderlichen Updates beschrieben.
DNS-Änderungen für private Endpunkte
Hinweis
Details zum Konfigurieren Ihrer DNS-Einstellungen für private Endpunkte finden Sie unter DNS-Konfiguration für private Azure-Endpunkte.
Wenn Sie einen privaten Endpunkt erstellen, wird der DNS-CNAME-Ressourceneintrag für das Speicherkonto auf einen Alias in einer Unterdomäne mit dem Präfix privatelink
aktualisiert. Standardmäßig erstellen wir außerdem eine private DNS-Zone, die der Unterdomäne privatelink
entspricht, mit den DNS-A-Ressourceneinträgen für die privaten Endpunkte.
Wenn Sie die Speicherendpunkt-URL von außerhalb des VNET mit dem privaten Endpunkt auflösen, wird diese in den öffentlichen Endpunkt des Speicherdiensts aufgelöst. Bei Auflösung aus dem VNET, das den privaten Endpunkt hostet, wird die Speicherendpunkt-URL in die IP-Adresse des privaten Endpunkts aufgelöst.
Beim oben gezeigten Beispiel lauten die DNS-Ressourceneinträge für das Speicherkonto „StorageAccountA“ bei Auflösung von außerhalb des VNET, das den privaten Endpunkt hostet, wie folgt:
Name | type | Wert |
---|---|---|
StorageAccountA.blob.core.windows.net |
CNAME | StorageAccountA.privatelink.blob.core.windows.net |
StorageAccountA.privatelink.blob.core.windows.net |
CNAME | <Öffentlicher Endpunkt des Speicherdiensts> |
<Öffentlicher Endpunkt des Speicherdiensts> | A | <Öffentliche IP-Adresse des Speicherdiensts> |
Wie bereits erwähnt, können Sie den Zugriff für Clients außerhalb des VNET über den öffentlichen Endpunkt mithilfe der Speicherfirewall verweigern oder steuern.
Die DNS-Ressourceneinträge für „StorageAccountA“ lauten nach dem Auflösen durch einen Client im VNET, das den privaten Endpunkt hostet, wie folgt:
Name | type | Wert |
---|---|---|
StorageAccountA.blob.core.windows.net |
CNAME | StorageAccountA.privatelink.blob.core.windows.net |
StorageAccountA.privatelink.blob.core.windows.net |
Ein | 10.1.1.5 |
Diese Vorgehensweise ermöglicht den Zugriff auf das Speicherkonto mithilfe derselben Verbindungszeichenfolge für Clients in dem VNET, das die privaten Endpunkte hostet, als auch Clients außerhalb des VNET.
Wenn Sie einen benutzerdefinierten DNS-Server in Ihrem Netzwerk verwenden, müssen Clients in der Lage sein, den FQDN für den Speicherkontoendpunkt in die IP-Adresse des privaten Endpunkts aufzulösen. Sie sollten den DNS-Server so konfigurieren, dass die Unterdomäne der privaten Verbindung an die private DNS-Zone für das VNET delegiert wird, oder konfigurieren Sie die A-Einträge für StorageAccountA.privatelink.blob.core.windows.net
mit der IP-Adresse des privaten Endpunkts.
Tipp
Wenn Sie einen benutzerdefinierten oder lokalen DNS-Server verwenden, sollten Sie ihn so konfigurieren, dass der Speicherkontoname in der Unterdomäne privatelink
in die IP-Adresse des privaten Endpunkts aufgelöst wird. Hierzu können Sie die Unterdomäne privatelink
an die private DNS-Zone des VNet delegieren oder die DNS-Zone auf dem DNS-Server konfigurieren und die DNS-A-Einträge hinzufügen.
Die empfohlenen DNS-Zonennamen der privaten Endpunkte für die Speicherdienste und die verknüpften untergeordneten Zielressourcen der Endpunkte lauten wie folgt:
Speicherdienst | Zielunterressource | Zonenname |
---|---|---|
Blob-Dienst | Blob | privatelink.blob.core.windows.net |
Data Lake Storage | DFS | privatelink.dfs.core.windows.net |
Dateidienst | file | privatelink.file.core.windows.net |
Warteschlangendienst | queue | privatelink.queue.core.windows.net |
Tabellenspeicherdienst | table | privatelink.table.core.windows.net |
Statische Websites | Web- | privatelink.web.core.windows.net |
Weitere Informationen zum Konfigurieren des eigenen DNS-Servers für die Unterstützung privater Endpunkte finden Sie in den folgenden Artikeln:
- Namensauflösung für Ressourcen in virtuellen Azure-Netzwerken
- DNS-Konfiguration für private Endpunkte
Preise
Ausführliche Preisinformationen finden Sie unter Azure Private Link – Preise.
Bekannte Probleme
Beachten Sie die folgenden bekannten Probleme im Zusammenhang mit privaten Endpunkten für Azure Storage:
Einschränkungen beim Speicherzugriff für Clients in VNETs mit privaten Endpunkten
Für Clients in VNETs mit vorhandenen privaten Endpunkten bestehen Einschränkungen beim Zugriff auf andere Speicherkonten mit privaten Endpunkten. Nehmen wir zum Beispiel an, ein VNet N1 verfügt über einen privaten Endpunkt für ein Speicherkonto A1 für die Blob-Speicherung. Wenn nun das Speicherkonto A2 über einen privaten Endpunkt im VNET N2 für Blobspeicher verfügt, müssen Clients im VNET N1 auch auf Blobspeicher im Konto A2 über einen privaten Endpunkt zugreifen. Hat das Speicherkonto A2 keine privaten Endpunkte für Blobspeicher, können Clients im VNET N1 ohne privaten Endpunkt auf Blobspeicher in diesem Konto zugreifen.
Diese Einschränkung ist die Folge der DNS-Änderungen, die vorgenommen werden, wenn Konto A2 einen privaten Endpunkt erstellt.
Kopieren von Blobs zwischen Speicherkonten
Sie können Blobs zwischen Speicherkonten über private Endpunkte nur kopieren, wenn Sie die Azure-REST-API oder Tools verwenden, bei denen die REST-API verwendet wird. Zu diesen Tools gehören AzCopy, Storage-Explorer, Azure PowerShell, die Azure-Befehlszeilenschnittstelle und die Azure Blob Storage-SDKs.
Nur private Endpunkte mit dem Speicher-Ressourcenendpunkt blob
oder file
als Ziel werden unterstützt. Sie umfasst REST-API-Aufrufe für Data Lake Storage-Konten, in denen auf den Ressourcenendpunkt blob
explizit oder implizit verwiesen wird. Private Endpunkte mit dem Data Lake Storage-Ressourcenendpunkt dfs
als Ziel werden noch nicht unterstützt. Das Kopieren zwischen Speicherkonten mithilfe des Network File System (NFS)-Protokolls wird noch nicht unterstützt.