Autorisieren des Zugriffs auf Azure Blob Storage für einen SFTP (SSH File Transfer Protocol)-Client
Artikel
In diesem Artikel erfahren Sie, wie Sie den Zugriff auf SFTP-Clients autorisieren, damit Sie mithilfe eines SFTP-Clients sicher eine Verbindung mit dem Blob Storage-Endpunkt Ihres Azure Storage-Kontos herstellen können.
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.
Sie können lokale Benutzer, die eine Verbindung von SFTP-Clients herstellen, mit einem Kennwort oder einem SSH (Secure Shell)-Schlüsselpaar aus einem öffentlichen und einem privaten Schlüssel authentifizieren.
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.
Navigieren Sie im Azure-Portal zu Ihrem Speicherkonto.
Wählen Sie unter Einstellungen den Eintrag SFTP und dann Lokalen Benutzer hinzufügen aus.
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.
Wenn Sie SSH-Kennwort auswählen, dann erscheint Ihr Kennwort, wenn alle Schritte im Konfigurationsbereich Lokalen Benutzer hinzufügen abgeschlossen sind. 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.
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.
Wichtig
Nur mit OpenSSH formatierte öffentliche Schlüssel werden unterstützt. Der Schlüssel, den Sie bereitstellen, muss dieses Format verwenden: <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.
Wählen Sie Weiter aus, um die Registerkarte Berechtigungen im Konfigurationsbereich zu öffnen.
Dieser Abschnitt zeigt, wie Sie sich mithilfe eines SSH-Schlüssels oder eines Kennworts authentifizieren.
Authentifizieren mithilfe eines SSH-Schlüssels (PowerShell)
Wählen Sie den Typ des öffentlichen Schlüssels aus, den Sie verwenden möchten.
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 einen vorhandenen öffentlichen Schlüssel, der außerhalb von Azure gespeichert ist.
Wenn Sie noch keinen öffentlichen Schlüssel haben, finden Sie unter Schlüssel mit ssh-keygen generieren einen Leitfaden, wie Sie einen Schlüssel erstellen können. Nur mit OpenSSH formatierte öffentliche Schlüssel werden unterstützt. Der Schlüssel, den Sie bereitstellen, muss dieses Format verwenden: <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.
Erstellen Sie ein öffentliches Schlüsselobjekt mithilfe des Befehls New-AzStorageLocalUserSshPublicKey. Legen Sie den -Key-Parameter auf eine Zeichenfolge fest, die den Schlüsseltyp und den öffentlichen Schlüssel enthält. Im folgenden Beispiel lautet der Schlüsseltyp ssh-rsa und der Name ssh-rsa a2V5....
$sshkey = "ssh-rsa a2V5..."
$sshkey = New-AzStorageLocalUserSshPublicKey -Key $sshkey -Description "description for ssh public key"
Erstellen Sie einen lokalen Benutzer mithilfe des Befehls Set-AzStorageLocalUser. Wenn Sie einen SSH-Schlüssel verwenden, legen Sie den Parameter SshAuthorizedKey auf das öffentliche Schlüsselobjekt fest, das Sie im vorherigen Schritt erstellt haben.
Im folgenden Beispiel wird ein lokaler Benutzer erstellt und dann der Schlüssel in der Konsole ausgegeben.
Sie können ein Kennwort mithilfe des Befehls New-AzStorageLocalUserSshPassword erstellen. Legen Sie den -UserName-Parameter auf den Benutzernamen fest.
Im folgenden Beispiel wird ein Kennwort für den Benutzer generiert.
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 das Kennwort verlieren, müssen Sie ein neues Kennwort generieren. Beachten Sie, dass SSH-Kennwörter von Azure generiert werden und mindestens 32 Zeichen lang sind.
Dieser Abschnitt zeigt, wie Sie sich mithilfe eines SSH-Schlüssels oder eines Kennworts authentifizieren.
Authentifizieren mithilfe eines SSH-Schlüssels (Azure CLI)
Wählen Sie den Typ des öffentlichen Schlüssels aus, den Sie verwenden möchten.
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 einen vorhandenen öffentlichen Schlüssel, der außerhalb von Azure gespeichert ist.
Wenn Sie noch keinen öffentlichen Schlüssel haben, finden Sie unter Schlüssel mit ssh-keygen generieren einen Leitfaden, wie Sie einen Schlüssel erstellen können. Nur mit OpenSSH formatierte öffentliche Schlüssel werden unterstützt. Der Schlüssel, den Sie bereitstellen, muss dieses Format verwenden: <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.
Um einen lokalen Benutzer zu erstellen, der mit einem SSH-Schlüssel authentifiziert wird, verwenden Sie den Befehl az storage account local-user create, und legen Sie dann den --has-ssh-key-Parameter auf eine Zeichenfolge fest, die den Schlüsseltyp und den öffentlichen Schlüssel enthält.
Das folgende Beispiel erstellt einen lokalen Benutzer mit dem Namen contosouser und verwendet einen SSH-RSA-Schlüssel mit einem Schlüsselwert ssh-rsa a2V5... für die Authentifizierung.
Lokale Benutzer verfügen außerdem über die Eigenschaft sharedKey, die nur für die SMB-Authentifizierung verwendet wird.
Authentifizieren mithilfe eines Kennworts (Azure CLI)
Um einen lokalen Benutzer zu erstellen, der mit einem Kennwort authentifiziert wird, verwenden Sie den Befehl az storage account local-user create, und legen Sie dann den --has-ssh-password Parameter auf true fest.
Das folgende Beispiel erstellt einen lokalen Benutzer mit dem Namen contosouser und legt den --has-ssh-password-Parameter auf true fest.
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 das Kennwort verlieren, müssen Sie ein neues Kennwort generieren. Beachten Sie, dass SSH-Kennwörter von Azure generiert werden und mindestens 32 Zeichen lang sind.
Erteilen von Berechtigungen für Container
Wählen Sie aus, auf welche Container Sie Zugriff gewähren und welche Zugriffsebene Sie bereitstellen wollen. Diese Berechtigungen gelten für alle Verzeichnisse und Unterverzeichnisse im Container. Weitere Informationen zu den einzelnen Containerberechtigungen finden Sie unter Containerberechtigungen.
Wenn Sie den Zugriff auf Datei- und Verzeichnisebene autorisieren möchten, können Sie die ACL-Autorisierung aktivieren. Diese Funktion befindet sich in der Vorschau und kann nur über das Azure-Portal aktiviert werden.
Wählen Sie auf der Registerkarte Berechtigungen 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.
Wichtig
Der lokale Benutzer muss über mindestens eine Containerberechtigung oder ACL-Berechtigung für das Stammverzeichnis dieses Containers verfügen. Andernfalls schlägt ein Verbindungsversuch mit diesem Container fehl.
Wenn Sie den Zugriff mithilfe der den Dateien und Verzeichnissen in diesem Container zugeordneten Zugriffssteuerungslisten (Access Control Lists, ACLs) autorisieren wollen, aktivieren Sie das Kontrollkästchen ACL-Autorisierung zulassen. Weitere Informationen zur Verwendung von ACLs zum Autorisieren von SFTP-Clients finden Sie unter ACLs.
Sie können diesen lokalen Benutzer auch zu einer Gruppe hinzufügen, indem Sie diesen Benutzer einer Gruppen-ID zuweisen. Diese ID kann eine beliebige Nummer oder ein beliebiges Nummernschema sein. Durch Gruppieren von Benutzern können Sie Benutzer hinzufügen und entfernen, ohne dass ACLs erneut auf eine gesamte Verzeichnisstruktur angewendet werden müssen. Stattdessen können Sie Benutzer einfach der Gruppe hinzufügen oder aus ihr entfernen.
Hinweis
Eine Benutzer-ID für den lokalen Benutzer wird automatisch generiert. Sie können diese ID nicht ändern, aber Sie können die ID sehen, nachdem Sie den lokalen Benutzer erstellt haben, indem Sie diesen Benutzer im Bereich Lokalen Benutzer bearbeiten erneut öffnen.
Geben Sie im Bearbeitungsfeld Stammverzeichnis den Namen des Containers oder den Verzeichnispfad (einschließlich des Containernamens) ein, der dem lokalen Benutzer als Standardspeicherort zugeordnet ist (Beispiel: mycontainer/mydirectory).
Weitere Informationen zum Stammverzeichnis finden Sie unter Startverzeichnis.
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.
Entscheiden Sie, welche Container dem lokalen Benutzer zur Verfügung gestellt werden sollen und welche Arten von Vorgängen dieser lokale Benutzer ausführen darf. Erstellen Sie ein Berechtigungsbereichsobjekt, indem Sie den Befehl New-AzStorageLocalUserPermissionScope verwenden und den -Permission-Parameter dieses Befehls auf mindestens einen Buchstaben festlegen, der Zugriffsberechtigungsstufen entspricht. Mögliche Werte sind Read (r), Write (w), Delete (d), List (l), Create (c), Modify Ownership (o), Modify Permissions (p).
In den folgenden Beispielen wird ein Berechtigungsbereichsobjekt erstellt, das Lese- und Schreibberechtigungen für den mycontainer-Container erteilt.
Der lokale Benutzer muss mindestens eine Containerberechtigung für den Container haben, mit dem er eine Verbindung herstellt; andernfalls schlägt der Verbindungsversuch fehl.
Aktualisieren Sie den lokalen Benutzer mithilfe des Befehls Set-AzStorageLocalUser. Legen Sie den -PermissionScope-Parameter auf das zuvor erstellte Berechtigungsbereichsobjekt fest.
Das folgende Beispiel aktualisiert einen lokalen Benutzer mit Containerberechtigungen und gibt dann die Berechtigungsbereiche in der Konsole aus.
Um einen lokalen Benutzer mit der Berechtigung für einen Container zu aktualisieren, verwenden Sie den Befehl az storage account local-user update, und legen Sie dann den permission-scope-Parameter dieses Befehls auf einen oder mehrere Buchstaben fest, die den Zugriffsberechtigungsstufen entsprechen. Mögliche Werte sind Read (r), Write (w), Delete (d), List (l), Create (c), Modify Ownership (o), Modify Permissions (p).
Das folgende Beispiel gewährt einem lokalen Benutzernamen contosouser Lese- und Schreibzugriff auf einen Container mit dem Namen contosocontainer.
Sie können auf Ihre Daten in Azure Blob Storage mit verschiedenen Protokollen zugreifen, z. B. Representational State Transfer (REST), Hadoop Distributed File System (HDFS), Network File System (NFS) und Secure File Transfer Protocol (SFTP).
Veranschaulichen Sie wichtige Qualifikationen zum Konfigurieren, Verwalten, Schützen und Verwalten wichtiger professioneller Funktionen in Microsoft Azure.