Toegang verlenen tot Azure Blob Storage voor een SFTP-client (SSH File Transfer Protocol)
Artikel
In dit artikel leest u hoe u toegang tot SFTP-clients kunt autoriseren, zodat u veilig verbinding kunt maken met het Blob Storage-eindpunt van uw Azure Storage-account met behulp van een SFTP-client.
Schakel SFTP-ondersteuning in voor Azure Blob Storage. Zie SFTP-ondersteuning in- of uitschakelen.
Een lokale gebruiker maken
Azure Storage biedt geen ondersteuning voor Shared Access Signature (SAS) of Microsoft Entra-verificatie voor toegang tot het SFTP-eindpunt. In plaats daarvan moet u een identiteit gebruiken met de naam lokale gebruiker die kan worden beveiligd met een door Azure gegenereerd wachtwoord of een SSH-sleutelpaar (Secure Shell). Als u toegang wilt verlenen tot een verbindingsclient, moet het opslagaccount een identiteit hebben die is gekoppeld aan het wachtwoord of sleutelpaar. Deze identiteit wordt een lokale gebruiker genoemd.
In deze sectie leert u hoe u een lokale gebruiker maakt, een verificatiemethode kiest en machtigingen toewijst voor die lokale gebruiker.
U kunt lokale gebruikers verifiëren die verbinding maken vanuit SFTP-clients met behulp van een wachtwoord of een openbaar-persoonlijk SSH-sleutelpaar (Secure Shell).
Belangrijk
Hoewel u beide vormen van verificatie kunt inschakelen, kunnen SFTP-clients verbinding maken met slechts één van deze clients. Meervoudige verificatie, waarbij zowel een geldig wachtwoord als een geldig openbaar en persoonlijk sleutelpaar vereist zijn voor geslaagde verificatie, wordt niet ondersteund.
Selecteer onder Instellingen SFTP en selecteer vervolgens Lokale gebruiker toevoegen.
Voeg in het deelvenster Lokale gebruikersconfiguratie de naam van een gebruiker toe en selecteer vervolgens welke verificatiemethoden u aan deze lokale gebruiker wilt koppelen. U kunt een wachtwoord en/of een SSH-sleutel koppelen.
Als u SSH-wachtwoord selecteert, wordt uw wachtwoord weergegeven wanneer u alle stappen in het deelvenster Lokale gebruikersconfiguratie toevoegen voltooit. SSH-wachtwoorden worden gegenereerd door Azure en zijn minimaal 32 tekens lang.
Als u een SSH-sleutelpaar selecteert, selecteert u vervolgens Openbare-sleutelbron om een sleutelbron op te geven.
In de volgende tabel wordt elke sleutelbronoptie beschreven:
Optie
Richtlijn
Een nieuw sleutelpaar genereren
Gebruik deze optie om een nieuw openbaar/persoonlijk sleutelpaar te maken. De openbare sleutel wordt opgeslagen in Azure met de sleutelnaam die u opgeeft. De persoonlijke sleutel kan worden gedownload nadat de lokale gebruiker is toegevoegd.
Bestaande sleutel gebruiken die is opgeslagen in Azure
Gebruik deze optie als u een openbare sleutel wilt gebruiken die al is opgeslagen in Azure. Zie Lijstsleutels voor informatie over bestaande sleutels in Azure. Wanneer SFTP-clients verbinding maken met Azure Blob Storage, moeten deze clients de persoonlijke sleutel opgeven die is gekoppeld aan deze openbare sleutel.
Bestaande openbare sleutel gebruiken
Gebruik deze optie als u een openbare sleutel wilt uploaden die buiten Azure is opgeslagen. Als u geen openbare sleutel hebt, maar een sleutel buiten Azure wilt genereren, raadpleegt u Sleutels genereren met ssh-keygen.
Belangrijk
Alleen met OpenSSH opgemaakte openbare sleutels worden ondersteund. De sleutel die u opgeeft, moet deze indeling gebruiken: <key type> <key data>. RSA-sleutels zien er bijvoorbeeld ongeveer als volgt uit: ssh-rsa AAAAB3N.... Als uw sleutel een andere indeling heeft, kan een hulpprogramma zoals ssh-keygen worden gebruikt om deze te converteren naar de OpenSSH-indeling.
Selecteer Volgende om het tabblad Machtigingen van het configuratiedeelvenster te openen.
In deze sectie wordt beschreven hoe u zich kunt verifiëren met behulp van een SSH-sleutel of een wachtwoord.
Verifiëren met behulp van een SSH-sleutel (PowerShell)
Kies het type openbare sleutel dat u wilt gebruiken.
Bestaande sleutel gebruiken die is opgeslagen in Azure
Gebruik deze optie als u een openbare sleutel wilt gebruiken die al is opgeslagen in Azure. Zie Lijstsleutels voor informatie over bestaande sleutels in Azure. Wanneer SFTP-clients verbinding maken met Azure Blob Storage, moeten deze clients de persoonlijke sleutel opgeven die is gekoppeld aan deze openbare sleutel.
Gebruik een bestaande openbare sleutel die buiten Azure is opgeslagen.
Als u nog geen openbare sleutel hebt, raadpleegt u Sleutels genereren met ssh-keygen voor hulp bij het maken van een sleutel. Alleen met OpenSSH opgemaakte openbare sleutels worden ondersteund. De sleutel die u opgeeft, moet deze indeling gebruiken: <key type> <key data>. RSA-sleutels zien er bijvoorbeeld ongeveer als volgt uit: ssh-rsa AAAAB3N.... Als uw sleutel een andere indeling heeft, kan een hulpprogramma zoals ssh-keygen worden gebruikt om deze te converteren naar de OpenSSH-indeling.
Maak een openbaar sleutelobject met behulp van de opdracht New-AzStorageLocalUserSshPublicKey . Stel de -Key parameter in op een tekenreeks die het sleuteltype en de openbare sleutel bevat. In het volgende voorbeeld is ssh-rsa het sleuteltype en de sleutel .ssh-rsa a2V5...
$sshkey = "ssh-rsa a2V5..."
$sshkey = New-AzStorageLocalUserSshPublicKey -Key $sshkey -Description "description for ssh public key"
Maak een lokale gebruiker met behulp van de opdracht Set-AzStorageLocalUser . Als u een SSH-sleutel gebruikt, stelt u de SshAuthorizedKey parameter in op het openbare-sleutelobject dat u in de vorige stap hebt gemaakt.
In het volgende voorbeeld wordt een lokale gebruiker gemaakt en wordt de sleutel vervolgens afgedrukt naar de console.
U kunt dit wachtwoord later niet meer ophalen. Zorg dus dat u het wachtwoord kopieert en vervolgens opslaat op een plaats waar u het kunt vinden. Als u dit wachtwoord kwijtraakt, moet u een nieuw wachtwoord genereren. Houd er rekening mee dat SSH-wachtwoorden worden gegenereerd door Azure en minimaal 32 tekens lang zijn.
In deze sectie wordt beschreven hoe u zich kunt verifiëren met behulp van een SSH-sleutel of een wachtwoord.
Verifiëren met behulp van een SSH-sleutel (Azure CLI)
Kies het type openbare sleutel dat u wilt gebruiken.
Bestaande sleutel gebruiken die is opgeslagen in Azure
Gebruik deze optie als u een openbare sleutel wilt gebruiken die al is opgeslagen in Azure. Zie Lijstsleutels voor informatie over bestaande sleutels in Azure. Wanneer SFTP-clients verbinding maken met Azure Blob Storage, moeten deze clients de persoonlijke sleutel opgeven die is gekoppeld aan deze openbare sleutel.
Gebruik een bestaande openbare sleutel die buiten Azure is opgeslagen.
Als u nog geen openbare sleutel hebt, raadpleegt u Sleutels genereren met ssh-keygen voor hulp bij het maken van een sleutel. Alleen met OpenSSH opgemaakte openbare sleutels worden ondersteund. De sleutel die u opgeeft, moet deze indeling gebruiken: <key type> <key data>. RSA-sleutels zien er bijvoorbeeld ongeveer als volgt uit: ssh-rsa AAAAB3N.... Als uw sleutel een andere indeling heeft, kan een hulpprogramma zoals ssh-keygen worden gebruikt om deze te converteren naar de OpenSSH-indeling.
Als u een lokale gebruiker wilt maken die wordt geverifieerd met behulp van een SSH-sleutel, gebruikt u de opdracht az storage account local-user create en stelt u de parameter in op een tekenreeks die het sleuteltype en de --has-ssh-key openbare sleutel bevat.
In het volgende voorbeeld wordt een lokale gebruiker gemaakt met de naam contosouseren wordt een ssh-rsa-sleutel gebruikt met een sleutelwaarde voor ssh-rsa a2V5... verificatie.
Lokale gebruikers hebben ook een sharedKey eigenschap die alleen wordt gebruikt voor SMB-verificatie.
Verifiëren met behulp van een wachtwoord (Azure CLI)
Als u een lokale gebruiker wilt maken die is geverifieerd met behulp van een wachtwoord, gebruikt u de opdracht az storage account local-user create en stelt u de --has-ssh-password parameter in op true.
In het volgende voorbeeld wordt een lokale gebruiker met de naam contosousergemaakt en wordt de --has-ssh-password parameter ingesteld op true.
U kunt dit wachtwoord later niet meer ophalen. Zorg dus dat u het wachtwoord kopieert en vervolgens opslaat op een plaats waar u het kunt vinden. Als u dit wachtwoord kwijtraakt, moet u een nieuw wachtwoord genereren. Houd er rekening mee dat SSH-wachtwoorden worden gegenereerd door Azure en minimaal 32 tekens lang zijn.
Als u toegang wilt autoriseren op bestand- en mapniveau, kunt u ACL-autorisatie inschakelen. Deze mogelijkheid is in preview en kan alleen worden ingeschakeld met behulp van Azure Portal.
Selecteer op het tabblad Machtigingen de containers die u beschikbaar wilt maken voor deze lokale gebruiker. Selecteer vervolgens welke typen bewerkingen u wilt inschakelen dat deze lokale gebruiker kan uitvoeren.
Belangrijk
De lokale gebruiker moet ten minste één containermachtiging of ACL-machtiging hebben voor de basismap van die container. Anders mislukt een verbindingspoging naar die container.
Als u toegang wilt autoriseren met behulp van de toegangsbeheerlijsten (ACL's) die zijn gekoppeld aan bestanden en mappen in deze container, schakelt u het selectievakje ACL-autorisatie toestaan in. Zie ACL's voor meer informatie over het gebruik van ACLS voor het autoriseren van SFTP-clients.
U kunt deze lokale gebruiker ook toevoegen aan een groep door die gebruiker toe te wijzen aan een groeps-id. Deze id kan een willekeurig gewenste getal- of nummerschema zijn. Als u gebruikers groepeert, kunt u gebruikers toevoegen en verwijderen zonder dat u ACL's opnieuw hoeft toe te voegen aan een hele mapstructuur. In plaats daarvan kunt u alleen gebruikers toevoegen aan of verwijderen uit de groep.
Notitie
Er wordt automatisch een gebruikers-id voor de lokale gebruiker gegenereerd. U kunt deze id niet wijzigen, maar u kunt de id zien nadat u de lokale gebruiker hebt gemaakt door die gebruiker opnieuw te openen in het deelvenster Lokale gebruiker bewerken.
Typ in het invoervak van de basismap de naam van de container of het mappad (inclusief de containernaam) die de standaardlocatie is die is gekoppeld aan deze lokale gebruiker (bijvoorbeeld: mycontainer/mydirectory).
Selecteer de knop Toevoegen om de lokale gebruiker toe te voegen.
Als u wachtwoordverificatie hebt ingeschakeld, wordt het door Azure gegenereerde wachtwoord weergegeven in een dialoogvenster nadat de lokale gebruiker is toegevoegd.
Belangrijk
U kunt dit wachtwoord later niet meer ophalen. Zorg dus dat u het wachtwoord kopieert en vervolgens opslaat op een plaats waar u het kunt vinden.
Als u ervoor kiest om een nieuw sleutelpaar te genereren, wordt u gevraagd om de persoonlijke sleutel van dat sleutelpaar te downloaden nadat de lokale gebruiker is toegevoegd.
Notitie
Lokale gebruikers hebben een sharedKey eigenschap die alleen wordt gebruikt voor SMB-verificatie.
Bepaal welke containers u beschikbaar wilt maken voor de lokale gebruiker en welke typen bewerkingen u wilt inschakelen dat deze lokale gebruiker kan uitvoeren. Maak een machtigingsbereikobject met behulp van de opdracht New-AzStorageLocalUserPermissionScope en stel de -Permission parameter van die opdracht in op een of meer letters die overeenkomen met toegangsmachtigingsniveaus. Mogelijke waarden zijn Read(r), Write (w), Delete (d), List (l), Create (c), Modify Ownership(o), Modify Permissions(p).
In de volgende voorbeeldset wordt een machtigingsbereikobject gemaakt waarmee lees- en schrijfmachtigingen voor de mycontainer container worden verleend.
De lokale gebruiker moet ten minste één containermachtiging hebben voor de container waarmee deze verbinding maakt, anders mislukt de verbindingspoging.
Werk de lokale gebruiker bij met behulp van de opdracht Set-AzStorageLocalUser . Stel de -PermissionScope parameter in op het object voor het machtigingsbereik dat u eerder hebt gemaakt.
In het volgende voorbeeld wordt een lokale gebruiker bijgewerkt met containermachtigingen en worden vervolgens de machtigingsbereiken naar de console afgedrukt.
Als u een lokale gebruiker met machtigingen voor een container wilt bijwerken, gebruikt u de opdracht az storage account local-user update en stelt u vervolgens de permission-scope parameter van die opdracht in op een of meer letters die overeenkomen met toegangsmachtigingsniveaus. Mogelijke waarden zijn Read(r), Write (w), Delete (d), List (l), Create (c), Modify Ownership(o), Modify Permissions(p).
Het volgende voorbeeld geeft een lokale gebruikersnaam contosouser lees- en schrijftoegang tot een container met de naam contosocontainer.