Herstellen einer Verbindung mit Azure Blob Storage mithilfe des SSH-Dateiübertragungsprotokolls (SFTP)

Sie können eine sichere Verbindung mit dem Blob-Storage-Endpunkt eines Azure Storage-Kontos herstellen, indem Sie einen SFTP-Client verwenden und dann Dateien hochladen und herunterladen. In diesem Artikel wird beschrieben, wie Sie das SFTP aktivieren und dann mithilfe eines SFTP-Clients eine Verbindung mit Azure Blob Storage herstellen.

Weitere Informationen zur SFTP-Unterstützung für Azure Blob Storage finden Sie unter Unterstützung von SSH File Transfer Protocol (SFTP) für Azure Blob Storage (Vorschau).

Voraussetzungen

  • Ein Standard-Blockblob-Speicherkonto vom Typ „Allgemein v2“ oder „Premium“ Sie können das SFTP auch beim Erstellen des Kontos aktivieren. Weitere Informationen zu diesen Speicherkontotypen finden Sie unter Speicherkontoübersicht.

  • Das Feature für hierarchische Namespaces des Kontos muss aktiviert sein. Informationen zum Aktivieren des Features für hierarchische Namespaces finden Sie unter Aktualisieren von Azure Blob Storage mit Azure Data Lake Storage Gen2-Funktionen.

  • Wenn Sie eine Verbindung aus einem lokalen Netzwerk heraus herstellen, stellen Sie sicher, dass Ihr Client die ausgehende Kommunikation über den Port 22 zulässt, der von SFTP verwendet wird.

Aktivieren der SFTP-Unterstützung

In diesem Abschnitt erfahren Sie, wie Sie die SFTP-Unterstützung für ein vorhandenes Speicherkonto aktivieren. Eine Azure Resource Manager-Vorlage, mit der die SFTP-Unterstützung im Rahmen der Kontoerstellung aktiviert wird, finden Sie unter Erstellen eines Azure Storage-Kontos und Blobcontainers, auf die über das SFTP-Protokoll in Azure zugegriffen werden kann. Informationen zum Anzeigen der LOKALEN BENUTZER-REST-APIs und .NET-Verweise finden Sie unter Local Users and LocalUser Class.

  1. Navigieren Sie im Azure-Portal zu Ihrem Speicherkonto.

  2. Wählen Sie unter Einstellungen die Option SFTP aus.

    Hinweis

    Diese Option wird nur angezeigt, wenn das Feature für hierarchische Namespaces des Kontos aktiviert wurde. Informationen zum Aktivieren des Features für hierarchische Namespaces finden Sie unter Aktualisieren von Azure Blob Storage mit Azure Data Lake Storage Gen2-Funktionen.

  3. Wählen Sie SFTP aktivieren aus.

    Enable SFTP button

    Hinweis

    Wenn auf der SFTP-Konfigurationsseite keine lokalen Benutzer angezeigt werden, müssen Sie mindestens einen von ihnen hinzufügen. Informationen zum Hinzufügen lokaler Benutzer finden Sie im nächsten Abschnitt.

Deaktivieren der SFTP-Unterstützung

In diesem Abschnitt erfahren Sie, wie Sie die SFTP-Unterstützung für ein vorhandenes Speicherkonto deaktivieren. Weil die SFTP-Unterstützung stündlich Kosten verursacht, sollten Sie erwägen, die SFTP-Unterstützung zu deaktivieren, wenn Clients SFTP nicht aktiv zur Datenübertragung nutzen.

  1. Navigieren Sie im Azure-Portal zu Ihrem Speicherkonto.

  2. Wählen Sie unter Einstellungen die Option SFTP aus.

  3. Wählen Sie SFTP deaktivieren aus.

    Screenshot of the disable SFTP button.

Konfigurieren von Berechtigungen

Azure Storage unterstützt keine SAS-Authentifizierung (Shared Access Signature) oder Microsoft Entra-Authentifizierung für den Zugriff auf den SFTP-Endpunkt. Stattdessen müssen Sie eine Identität namens lokaler Benutzer verwenden, die mit einem von Azure generierten Kennwort oder einem SSH-Schlüsselpaar (Secure Shell) geschützt werden kann. Dem Speicherkonto muss eine Identität zugeordnet sein, die mit diesem Kennwort oder Schlüsselpaar verknüpft ist, um einem Verbindungsherstellungsclient Zugriff zu gewähren. Diese Identität wird als lokaler Benutzer bezeichnet.

In diesem Abschnitt erfahren Sie, wie Sie einen lokalen Benutzer erstellen, eine Authentifizierungsmethode auswählen und diesem lokalen Benutzer Berechtigungen zuweisen.

Weitere Informationen zum SFTP-Berechtigungsmodell finden Sie unter SFTP-Berechtigungsmodell.

Tipp

In diesem Abschnitt erfahren Sie, wie Sie lokale Benutzer für ein vorhandenes Speicherkonto konfigurieren. Eine Azure Resource Manager-Vorlage, mit der ein lokaler Benutzer im Rahmen der Kontoerstellung konfiguriert wird, finden Sie unter Erstellen eines Azure Storage-Kontos und Blobcontainers, auf die über das SFTP-Protokoll in Azure zugegriffen werden kann.

  1. Navigieren Sie im Azure-Portal zu Ihrem Speicherkonto.

  2. Wählen Sie unter Einstellungen den Eintrag SFTP und dann Lokalen Benutzer hinzufügen aus.

    Add local users button

  3. Fügen Sie im Konfigurationsbereich Lokalen Benutzer hinzufügen den Namen eines Benutzers hinzu, und wählen Sie dann aus, welche Authentifizierungsmethoden Sie diesem lokalen Benutzer zuordnen möchten. Sie können ein Kennwort und/oder einen SSH-Schlüssel zuordnen.

    Wichtig

    Sie können zwar beide Authentifizierungsarten aktivieren, SFTP-Clients können jedoch nur eine Verbindung herstellen. Die MFA, bei der sowohl ein gültiges Kennwort als auch ein gültiges Paar aus öffentlichem und privatem Schlüssel für eine erfolgreiche Authentifizierung erforderlich sind, wird jedoch nicht unterstützt.

    Wenn Sie SSH-Kennwort auswählen, wird Ihr Kennwort angezeigt, nachdem Sie alle Schritte im Konfigurationsbereich Lokalen Benutzer hinzufügen abgeschlossen haben. SSH-Kennwörter werden von Azure generiert und sind mindestens 32 Zeichen lang.

    Wenn Sie SSH-Schlüsselpaar auswählen, müssen Sie Quelle des öffentlichen Schlüssels auswählen, um eine Schlüsselquelle anzugeben.

    Local user configuration pane

    In der folgenden Tabelle werden die einzelnen Schlüsselquellenoptionen beschrieben:

    Option Anleitungen
    Ein neues Schlüsselpaar generieren Verwenden Sie diese Option, um ein neues Paar aus öffentlichem und privatem Schlüssel zu erstellen. Der öffentliche Schlüssel wird in Azure mit dem Schlüsselnamen gespeichert, den Sie angeben. Der private Schlüssel kann heruntergeladen werden, nachdem der lokale Benutzer erfolgreich hinzugefügt wurde.
    In Azure gespeicherten vorhandenen Schlüssel verwenden Verwenden Sie diese Option, wenn Sie einen öffentlichen Schlüssel verwenden möchten, der bereits in Azure gespeichert ist. Informationen zum Suchen vorhandener Schlüssel in Azure finden Sie unter Auflisten von Schlüsseln. Wenn SFTP-Clients eine Verbindung mit Azure Blob Storage herstellen, müssen diese Clients den privaten Schlüssel angeben, der diesem öffentlichen Schlüssel zugeordnet ist.
    Verwenden Sie den vorhandenen öffentlichen Schlüssel. Verwenden Sie diese Option, wenn Sie einen öffentlichen Schlüssel hochladen möchten, der außerhalb von Azure gespeichert ist. Wenn Sie nicht über einen öffentlichen Schlüssel verfügen, aber einen außerhalb von Azure generieren möchten, finden Sie weitere Informationen unter Generieren von Schlüsseln mit ssh-keygen.

    Hinweis

    Die vorhandene Option öffentlicher Schlüssel unterstützt derzeit nur openSSH-formatierte öffentliche Schlüssel. Der bereitgestellte Schlüssel muss das folgende Format aufweisen: <key type> <key data>. RSA-Schlüssel würden beispielsweise in etwa wie folgt aussehen: ssh-rsa AAAAB3N.... Wenn Ihr Schlüssel in einem anderen Format vorliegt, kann ein Tool wie ssh-keygen verwendet werden, um ihn in das OpenSSH-Format zu konvertieren.

  4. Wählen Sie Weiter aus, um die Registerkarte Containerberechtigungen im Konfigurationsbereich zu öffnen.

  5. Wählen Sie auf der Registerkarte Containerberechtigungen die Container aus, die Sie diesem lokalen Benutzer zur Verfügung stellen möchten. Wählen Sie dann aus, welche Arten von Vorgängen dieser lokale Benutzer ausführen soll.

    Container permissions tab

    Wichtig

    Der lokale Benutzer muss mindestens eine Containerberechtigung für den Container haben, mit dem er eine Verbindung herstellt; andernfalls schlägt der Verbindungsversuch fehl.

  6. Geben Sie im Bearbeitungsfeld Startverzeichnis den Namen des Containers oder den Verzeichnispfad (einschließlich des Containernamens) ein, der diesem lokalen Benutzer als Standardspeicherort zugeordnet ist.

    Weitere Informationen zum Stammverzeichnis finden Sie unter Startverzeichnis.

  7. Klicken Sie auf die Hinzufügen-Schaltfläche, um fortzufahren.

    Wenn Sie die Kennwortauthentifizierung aktiviert haben, wird das von Azure generierte Kennwort in einem Dialogfeld angezeigt, nachdem der lokale Benutzer hinzugefügt wurde.

    Wichtig

    Sie können dieses Kennwort später nicht abrufen. Achten Sie daher darauf, das Kennwort zu kopieren und es dann an einem Ort zu speichern, an dem Sie es finden.

    Wenn Sie ein neues Schlüsselpaar generieren möchten, werden Sie aufgefordert, den privaten Schlüssel dieses Schlüsselpaars herunterzuladen, nachdem der lokale Benutzer hinzugefügt wurde.

    Hinweis

    Lokale Benutzer verfügen über die Eigenschaft sharedKey, die nur für die SMB-Authentifizierung verwendet wird.

Verbinden eines SFTP-Clients

Sie können einen beliebigen SFTP-Client verwenden, um eine sichere Verbindung herzustellen und dann Dateien zu übertragen. Der folgende Screenshot zeigt eine Windows PowerShell Sitzung, die die Open SSH- und Kennwortauthentifizierung verwendet, um eine Verbindung herzustellen und dann eine Datei mit dem Namen logfile.txt hochzuladen.

Connect with Open SSH

Hinweis

Der SFTP-Benutzername lautet storage_account_name.username. Im vorstehenden Beispiel lautet der Wert für storage_account_name „contoso4“ und der Wert für username „contosouser“. Der kombinierte Benutzername für den SFTP-Befehl wird contoso4.contosouser.

Hinweis

Möglicherweise werden Sie aufgefordert, einem Hostschlüssel zu vertrauen. Gültige Hostschlüssel werden hier veröffentlicht.

Nach Abschluss der Übertragung können Sie die Datei im Azure-Portal anzeigen und verwalten.

Uploaded file appears in storage account

Hinweis

Der Azure-Portal verwendet die Blob-REST-API und die Data Lake Storage Gen2-REST-API. Die Interaktion mit einer hochgeladenen Datei im Azure-Portal veranschaulicht die Interoperabilität zwischen SFTP und REST.

Anleitungen zum Verbinden und Übertragen von Dateien finden Sie in der Dokumentation Ihres SFTP-Clients.

Herstellen einer Verbindung mithilfe einer benutzerdefinierten Domäne

Bei Verwendung benutzerdefinierter Domänen ist die Verbindungszeichenfolge myaccount.myuser@customdomain.com. Wenn für den Benutzer kein Startverzeichnis angegeben wurde, lautet es myaccount.mycontainer.myuser@customdomain.com.

Wichtig

Stellen Sie sicher, dass Ihr DNS-Anbieter keine Proxyfunktion für Anforderungen verwendet. Die Proxyfunktion kann dazu führen, dass beim Verbindungsversuch ein Timeout auftritt.

Herstellen einer Verbindung über einen privaten Endpunkt

Wenn Sie einen privaten Endpunkt verwenden, lautet die Verbindungszeichenfolge myaccount.myuser@myaccount.privatelink.blob.core.windows.net. Wenn für den Benutzer kein Startverzeichnis angegeben wurde, lautet es myaccount.mycontainer.myuser@myaccount.privatelink.blob.core.windows.net.

Hinweis

Sie müssen unbedingt die Netzwerkkonfiguration auf „Aktiviert aus ausgewählten virtuellen Netzwerken und IP-Adressen" ändern und Ihren privaten Endpunkt auswählen; andernfalls ist der reguläre SFTP-Endpunkt weiterhin öffentlich zugänglich.

Überlegungen zum Netzwerkbetrieb

SFTP ist ein Dienst auf Plattformebene, sodass Port 22 geöffnet wird, auch wenn die Kontooption deaktiviert ist. Wenn der SFTP-Zugriff nicht konfiguriert wurde, empfangen alle Anforderungen eine Verbindungstrennung vom Dienst. Wenn Sie SFTP verwenden, möchten Sie den öffentlichen Zugriff möglicherweise über die Konfiguration einer Firewall, eines virtuellen Netzwerks oder eines privaten Endpunkts einschränken. Diese Einstellungen werden auf der Anwendungsebene erzwungen, d. h., sie sind nicht spezifisch für SFTP und wirken sich auf die Konnektivität aller Azure Storage-Endpunkte aus. Weitere Informationen zum Konfigurieren von Firewallregeln finden Sie unter Konfigurieren von Azure Storage-Firewalls und virtuellen Netzwerken.

Hinweis

Überwachungstools, die versuchen, die TLS-Unterstützung auf der Protokollebene zu ermitteln, geben möglicherweise zusätzlich zur mindestens erforderlichen Version TLS-Versionen zurück, wenn sie direkt auf dem Endpunkt des Speicherkontos ausgeführt werden. Weitere Informationen finden Sie unter Erzwingen der erforderliche Mindestversion der Transport Layer Security (TLS) für Anforderungen an ein Speicherkonto.

Weitere Informationen