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.
Zie SSH File Transfer Protocol (SFTP) in Azure Blob Storage voor meer informatie over SFTP-ondersteuning voor Azure Blob Storage.
Vereisten
- 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.
Zie het SFTP-machtigingenmodel voor meer informatie over het SFTP-machtigingenmodel.
Een verificatiemethode kiezen
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.
Ga in Azure Portal naar uw opslagaccount.
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.
$UserName = "mylocalusername"
$localuser = Set-AzStorageLocalUser -ResourceGroupName $resourceGroupName -StorageAccountName $storageAccountName -UserName $UserName -SshAuthorizedKey $sshkey -HasSharedKey $true -HasSshKey $true
$localuser
$localuser.SshAuthorizedKeys | ft
Notitie
Lokale gebruikers hebben ook een sharedKey
eigenschap die alleen wordt gebruikt voor SMB-verificatie.
Verifiëren met behulp van een wachtwoord (PowerShell)
Maak een lokale gebruiker met de opdracht Set-AzStorageLocalUser en stel de -HasSshPassword
parameter in op $true
.
In het volgende voorbeeld wordt een lokale gebruiker gemaakt die gebruikmaakt van wachtwoordverificatie.
$UserName = "mylocalusername"
$localuser = Set-AzStorageLocalUser -ResourceGroupName $resourceGroupName -StorageAccountName $storageAccountName -UserName $UserName -HasSshPassword $true
U kunt een wachtwoord maken met behulp van de opdracht New-AzStorageLocalUserSshPassword . Stel de -UserName
parameter in op de gebruikersnaam.
In het volgende voorbeeld wordt een wachtwoord voor de gebruiker gegenereerd.
$password = New-AzStorageLocalUserSshPassword -ResourceGroupName $resourceGroupName -StorageAccountName $storageAccountName -UserName $UserName
$password
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 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 contosouser
en wordt een ssh-rsa-sleutel gebruikt met een sleutelwaarde voor ssh-rsa a2V5...
verificatie.
az storage account local-user create --account-name contosoaccount -g contoso-resource-group -n contosouser --ssh-authorized-key key="ssh-rsa a2V5..." --has-ssh-key true --has-ssh-password true
Notitie
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 contosouser
gemaakt en wordt de --has-ssh-password
parameter ingesteld op true
.
az storage account local-user create --account-name contosoaccount -g contoso-resource-group -n contosouser --has-ssh-password true
Maak een wachtwoord met behulp van de opdracht az storage account local-user regenerate-password . Stel de -n
parameter in op de lokale gebruikersnaam.
In het volgende voorbeeld wordt een wachtwoord voor de gebruiker gegenereerd.
az storage account local-user regenerate-password --account-name contosoaccount -g contoso-resource-group -n contosouser
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 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.
Machtigingen verlenen aan containers
Kies welke containers u toegang wilt verlenen en welk toegangsniveau u wilt bieden. Deze machtigingen zijn van toepassing op alle mappen en submappen in de container. Zie Containermachtigingen voor meer informatie over elke containermachtiging.
Als u toegang wilt autoriseren op bestand- en mapniveau, kunt u ACL-autorisatie inschakelen.
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 ACL's 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
).
Zie De basismap voor meer informatie over de basismap.
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.
$permissionScope = New-AzStorageLocalUserPermissionScope -Permission rw -Service blob -ResourceName mycontainer
Belangrijk
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.
$UserName = "mylocalusername"
$localuser = Set-AzStorageLocalUser -ResourceGroupName $resourceGroupName -StorageAccountName $storageAccountName -UserName $UserName -HomeDirectory "mycontainer" -PermissionScope $permissionScope
$localuser
$localuser.PermissionScopes | ft
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
.
az storage account local-user update --account-name contosoaccount -g contoso-resource-group -n contosouser --home-directory contosocontainer --permission-scope permissions=rw service=blob resource-name=contosocontainer
Volgende stappen
Gerelateerde inhoud