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

Dieser Artikel zeigt, wie Sie mithilfe eines SFTP-Clients eine sichere Verbindung mit dem Blob Storage-Endpunkt eines Azure Storage-Kontos herstellen. Nachdem Sie eine Verbindung hergestellt haben, können Sie Dateien hoch- und herunterladen sowie Zugriffssteuerungslisten (Access Control Lists, ACLs) in Dateien und Ordnern ändern.

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

Verbinden eines SFTP-Clients

Sie können einen beliebigen SFTP-Client verwenden, um eine sichere Verbindung herzustellen und dann Dateien zu übertragen. Das folgende Beispiel zeigt eine Windows PowerShell-Sitzung, die Open SSH verwendet.

PS C:\Users\temp> sftp contoso4.contosouser@contoso4.blob.core.windows.net

Der SFTP-Benutzername lautet storage_account_name.username. Im obigen Beispiel entspricht der storage_account_name „contoso4“ und der username „contosouser“. Der kombinierte Benutzername wird zu „contoso4.contosouser“. Der Blobdienstendpunkt ist „contoso4.blob.core.windows.net“.

Um die Verbindung abzuschließen, müssen Sie möglicherweise auf eine oder mehrere Eingabeaufforderungen reagieren. Wenn Sie beispielsweise den lokalen Benutzer mit Kennwortauthentifizierung konfiguriert haben, werden Sie aufgefordert, dieses Kennwort einzugeben. Möglicherweise werden Sie auch aufgefordert, einem Hostschlüssel zu vertrauen. Gültige Hostschlüssel werden hier veröffentlicht.

Herstellen einer Verbindung mithilfe einer benutzerdefinierten Domäne

Wenn Sie mithilfe einer benutzerdefinierten Domäne eine Verbindung mit dem Blobdienstendpunkt herstellen möchten, dann lautet die Verbindungszeichenfolge myaccount.myuser@customdomain.com. Wenn das Stammverzeichnis für den Benutzer nicht angegeben ist, dann lautet die Verbindungszeichenfolge myaccount.mycontainer.myuser@customdomain.com.

Wichtig

Stellen Sie sicher, dass Ihr DNS-Anbieter keine Proxyanforderungen erstellt, da dies zu einem Timeout des Verbindungsversuchs führen kann.

Informationen zum Zuordnen einer benutzerdefinierten Domäne zu einem Blobdienstendpunkt finden Sie unter Zuordnen einer benutzerdefinierten Domäne zu einem Azure Blob Storage-Endpunkt.

Herstellen einer Verbindung über einen privaten Endpunkt

Wenn Sie mithilfe eines privaten Endpunkts eine Verbindung mit dem Blobdienstendpunkt herstellen möchten, lautet die Verbindungszeichenfolge myaccount.myuser@myaccount.privatelink.blob.core.windows.net. Wenn das Stammverzeichnis für den Benutzer nicht angegeben ist, lautet es myaccount.mycontainer.myuser@myaccount.privatelink.blob.core.windows.net.

Hinweis

Stellen Sie sicher, dass Sie die Netzwerkkonfiguration in „Aus ausgewählten virtuellen Netzwerken und IP-Adressen aktiviert“ ändern, und wählen Sie dann Ihren privaten Endpunkt aus. Andernfalls wird der Blobdienstendpunkt weiterhin öffentlich zugänglich sein.

Herstellen einer Verbindung über Internetrouting

Wenn Sie über Internetrouting eine Verbindung mit dem Blobdienst-Endpunkt herstellen möchten, lautet die Verbindungszeichenfolge myaccount.myuser@myaccount-internetrouting.blob.core.windows.net. Wenn das Stammverzeichnis für den Benutzer nicht angegeben ist, lautet es myaccount.mycontainer.myuser@myaccount-internetrouting.blob.core.windows.net.

Übertragen von Daten

Nachdem Sie eine Verbindung hergestellt haben, können Sie Dateien hochladen und herunterladen. Das folgende Beispiel lädt eine Datei mit dem Namen logfile.txt mithilfe einer aktiven Open SSH-Sitzung hoch.

sftp> put logfile.txt
Uploading logfile.txt to /mydirectory/logfile.txt
logfile.txt
        100%    19    0.2kb/S    00.00

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

Screenshot der hochgeladenen Datei, die im Speicherkonto angezeigt wird.

Hinweis

Der Azure-Portal verwendet die Blob-REST-API und die Data Lake Storage-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.

Ändern der ACL einer Datei oder eines Verzeichnisses

Sie können die Berechtigungsstufe des besitzenden Benutzers, der besitzenden Gruppe und aller anderen Benutzer einer ACL mithilfe eines SFTP-Clients ändern. Sie können auch die ID des besitzenden Benutzers und der besitzenden Gruppe ändern. Weitere Informationen zum ACL-Support für SFTP-Clients finden Sie unter ACLs.

Berechtigungen ändern

Um die Berechtigungsstufe des besitzenden Benutzers, der besitzenden Gruppe oder aller anderen Benutzer einer ACL zu ändern, muss der lokale Benutzer über die Berechtigung Modify Permission verfügen. Siehe Erteilen von Berechtigungen für Container.

Das folgende Beispiel gibt die ACL eines Verzeichnisses in der Konsole aus. Anschließend wird der chmod-Befehl verwendet, um die ACL auf 777 festzulegen. Jede 7 ist die numerische Form von rwx (Lesen, Schreiben und Ausführen). 777 erteilt also Lese-, Schreib- und Ausführungsberechtigungen für den besitzenden Benutzer, die besitzende Gruppe und alle anderen Benutzer. Dieses Beispiel gibt dann die aktualisierte ACL in der Konsole aus. Weitere Informationen zu numerischen und kurzen Formen einer ACL finden Sie unter Kurzformen für Berechtigungen.

sftp> ls -l
drwxr-x---     1234     5678                0 Mon, 08 Jan 2024 16:53:25 GMT dir1
drwxr-x---        0        0                0 Mon, 16 Oct 2023 12:18:08 GMT dir2
sftp> chmod 777 dir1
Changing mode on /dir1
sftp> ls -l
drwxrwxrwx     1234     5678                0 Mon, 08 Jan 2024 16:54:06 GMT dir1
drwxr-x---        0        0                0 Mon, 16 Oct 2023 12:18:08 GMT dir2

Hinweis

Das Hinzufügen oder Ändern von ACL-Einträgen für benannte Benutzer, benannte Gruppen und benannte Sicherheitsprinzipale wird noch nicht unterstützt.

Ändern des besitzenden Benutzers

Um den besitzenden Benutzer eines Verzeichnisses oder Blobs zu ändern, muss der lokale Benutzer über die Berechtigung Modify Ownership verfügen. Siehe Erteilen von Berechtigungen für Container.

Das folgende Beispiel gibt die ACL eines Verzeichnisses in der Konsole aus. Die ID des besitzenden Benutzers lautet 0. Dieses Beispiel verwendet den chown-Befehl, um die ID des besitzenden Benutzers auf 1234 festzulegen, und gibt die Änderung auf der Konsole aus.

sftp> ls -l
drwxr-x---        0        0                0 Mon, 08 Jan 2024 16:00:12 GMT dir1
drwxr-x---        0        0                0 Mon, 16 Oct 2023 12:18:08 GMT dir2
sftp> chown 1234 dir1
Changing owner on /dir1
sftp> ls -l
drwxr-x---     1234        0                0 Mon, 08 Jan 2024 16:52:52 GMT dir1
drwxr-x---        0        0                0 Mon, 16 Oct 2023 12:18:08 GMT dir2
sftp>

Ändern der besitzenden Gruppe

Um die besitzende Gruppe eines Verzeichnisses oder Blobs zu ändern, muss der lokale Benutzer über die Berechtigung Modify Ownership verfügen. Siehe Erteilen von Berechtigungen für Container.

Das folgende Beispiel gibt die ACL eines Verzeichnisses in der Konsole aus. Die ID der besitzenden Gruppe lautet 0. Dieses Beispiel verwendet den chgrp-Befehl, um die ID der besitzenden Gruppe auf 5678 festzulegen, und gibt die Änderung auf der Konsole aus.

sftp> ls -l
drwxr-x---     1234        0                0 Mon, 08 Jan 2024 16:52:52 GMT dir1
drwxr-x---        0        0                0 Mon, 16 Oct 2023 12:18:08 GMT dir2
sftp> chgrp 5678 dir1
Changing group on /dir1
sftp> ls -l
drwxr-x---     1234     5678                0 Mon, 08 Jan 2024 16:53:25 GMT dir1
drwxr-x---        0        0                0 Mon, 16 Oct 2023 12:18:08 GMT dir2