Maak een SFTP-server op AWS

AWS Transfer Family ondersteunt Secure File Transfer Protocol (SFTP), File Transfer Protocol over SSL (FTPS), en File Transfer Protocol (FTP) om bestanden van en naar AWS S3 of AWS EFS(Elastic File System) over te brengen.Het ondersteunt DNS routing met Amazon Route 53. AWS Transfer Family neemt de overhead weg om je eigen FTP servers aan te schaffen en te draaien, in plaats daarvan beheert het de bestandsinfrastructuur voor je. Het ondersteunt auto-scaling capaciteit en handhaaft hoge beschikbaarheid.

AWS Transfer Family is een volledig door AWS beheerde dienst die in real-time schaalt, en je hoeft geen

Laten we 3 verschillende protocollen begrijpen die door AWS Transfer Family worden ondersteund.

  1. SFTP Protocol: Secure Shell File Transfer Protocol is een netwerkprotocol dat gebruikt wordt voor het veilig overbrengen van gegevens over het internet. Het protocol ondersteunt de volledige beveiligings- en authenticatiefunctionaliteit van SSH
  2. FTP Protocol: File Transfer Protocol (FTP) is een netwerkprotocol dat gebruikt wordt voor het overbrengen van gegevens. FTP gebruikt een apart kanaal voor controle en gegevensoverdracht.
  3. FTPS Protocol: File Transfer Protocol over SSL is een uitbreiding op FTP. Het gebruikt Transport Layer Security en Secure Sockets Layer cryptografische protocollen om verkeer te versleutelen.

Je kunt een publiek toegankelijke server maken of een server in de VPC.

Je kunt ook de toegang tot de server regelen met AWS Identity and Access Management (IAM) beleidsregels, deze beleidsregels kunnen worden toegewezen aan een IAM Rol die dan aan de gebruiker wordt gekoppeld.

Er zijn geen kosten vooraf en je hoeft alleen te betalen voor wat je gebruikt en protocollen die je hebt ingeschakeld voor toegang tot je eindpunt. Om meer te weten over de prijsstelling ervan, bezoek je de officiƫle pagina van AWS hier.

In dit artikel zullen we de stappen zien om een SFTP-enabled server op AWS te maken die publiek toegankelijk zal zijn. Alvorens verder te gaan met dit artikel, wordt verondersteld dat je bekend bent met IAM Rollen, EC2 instances en S3 Buckets.

Vereisten

  1. AWS Account(Maak aan als je er geen hebt).
  2. Ubuntu EC2 Instance (Klik hier om te leren hoe je een Ubuntu EC2 instance op AWS kunt maken).
  3. IAM Rol met volledige toegang tot S3 (Klik hierom te leren hoe je een IAM Rol maakt).
  4. S3 Bucket (Klik hier om te leren hoe je een S3 bucket op AWS maakt).

Wat zullen we doen?

  1. Inloggen op AWS
  2. Maak een SFTP Server aan
  3. Wijzig de vertrouwensrelaties van het IAM Beleid
  4. Maak een map in de S3 Bucket.
  5. Genereer een Key-Pair in de EC2 instantie.
  6. Maak een gebruiker aan in de SFTP Server
  7. Test de verbinding met de SFTP Server
  8. Verwijder de SFTP Server

Inloggen bij AWS

Klik hier om naar de login pagina te gaan waar je je credentials kunt invoeren om in de account te komen.

Login Page

Als je met succes op je account bent ingelogd zie je de hoofdbeheerconsole van AWS als volgt en kun je de gewenste regio kiezen om een SFTP Server te maken.

AWS Beheerconsole

Maak een SFTP Server

Zoek naar “Transfer Family” in het zoekveld bovenaan het scherm.

Zoek Overdracht Familie

Je ziet het hoofddashboard van de AWS Transfer Family als volgt. Klik op de knop “Create server” om je eerste SFTP server te maken.

AWS Transfer Family Dashboard

Kies hier het protocol dat je voor de server wilt inschakelen. Je kunt meerdere protocollen inschakelen, maar hier gaan we verder met een enkel SFTP protocol. Klik op de knop “Next” om verder te gaan.

Kies een Protocol

Kies het eindpunt type op basis van je behoefte. Als je wilt dat je eindpunt publiek toegankelijk is ga dan verder. Klik op de knop “Next”.

Configuratie van eindpunten

Kies de AWS opslagdienst waar je je gegevens wilt laten opslaan. Hier gaan we verder met Amazon S3. Klik op de knop “Next” om verder te gaan.

Kies een domein

Ga hier verder met de standaard opties.

Loggende rol

Bekijk de configuratie en klik op de knop “Create Server”. Dit zal een SFTP server voor je aanmaken, het aanmaken duurt een paar minuten.

Bekijk en maak een server

Wijzig de vertrouwensrelaties van het IAM beleid

De volgende stap is het wijzigen van het IAM beleid dat volledige toegang heeft tot de S3 emmers. Ga naar de “IAM rol — > Vertrouwensrelaties” en wijzig het.

IAM rol voor SFTP

Verander de Dienst in “transfer.amazonaws.com”, het beleidsdocument moet er als volgt uitzien.

Bewerk vertrouwensrelatie

Maak een map in de S3 Bucket.

Zie of je een S3 emmer hebt waarin je gegevens van de SFTP server wilt opslaan.

Maak een map in de S3 Bucket

Genereer een sleutelpaar in de EC2 instantie.

De volgende stap is het maken van een sleutel-paar dat gebruikt zal worden om je naar de SFTP server te authenticeren. Ga naar je Linux server en voer het volgende commando uit om een sleutel-paar te genereren

ssh-keygen

cat ~/.ssh/id_rsa.pub

Haal de publieke sleutel op die in de volgende stap nodig zal zijn.

Genereer een sleutel-paar

Maak een gebruiker in de SFTP Server

Laten we naar de SFTP gaan die we zo gemaakt hebben.

SFTP server

Klik op de knop “Add user” om een gebruiker aan te maken die gebruikt zal worden om bestanden te authenticeren en naar S3 over te brengen met de SFTP server die we maakten.

Hier wordt het eindpunt dat je ziet gebruikt om toegang te krijgen tot de SFTP server voor de gegevensoverdracht. Houd dit eindpunt bij je dat nodig zal zijn bij het benaderen van de SFTP server.

Voeg een gebruikersnaam toe, kies de IAM rol, kies de S3 emmer en een map erin die als thuismap zal fungeren voor de gebruiker die we aanmaken. Voeg de publieke sleutel die we uit de vorige stap kopieerden toe in het onderdeel “SSH public key”.

Scroll naar beneden en klik op de “Add” knop. Dit maakt een gebruiker aan die een private sleutel nodig heeft die gekoppeld is aan de publieke die we tijdens het aanmaken van de gebruiker toevoegden.

Voeg de gebruiker toe

Test de verbinding met de SFTP ServerTest de verbinding met de SFTP Server

Ga naar de Linux server waar je het sleutelpaar gemaakt hebt en gebruik het volgende commando om verbinding te maken met de SFTP server.

Hier moet je het eindpunt veranderen met wat je voor je SFTP server hebt.

sftp -i ~/.ssh/id_rsa rahul-sftp-[email protected]

Je kunt proberen bestanden te uploaden met het volgende commando, waarbij het bestand dat in het volgende commando gebruikt wordt tot het lokale systeem behoort.

zet /home/ubuntu/test-file

Het bovenstaande commando kopieert het bestand “/home/ubuntu/test-file” van het lokale systeem naar de SFTP server.

Upload een bestand

Je kunt vanaf de console controleren of het bestand al dan niet in de S3 emmer is geüpload met het bovenstaande “put” commando.

Controleer de S3 emmer

Verwijder de SFTP server

Als je je SFTP server niet meer nodig hebt kun je hem gemakkelijk verwijderen. Om de server te verwijderen, klik je op “Actions –> Delete”.

Verwijder de SFTP Server

Bevestig je verwijderactie en klik op de “Delete” knop. Zodra je de SFTP server verwijdert kun je hem niet meer herstellen, dus wees voorzichtig bij het uitvoeren van de verwijderactie.

Bevestig de verwijdering

Conclusie

In dit artikel zagen we de stappen om een SFTP server te maken met S3 als backend. We maakten een gebruiker aan en kenden hem een bepaalde S3 emmer –> map als Thuismap toe. We zagen de nodige veranderingen die nodig zijn om de IAM rol voor de gebruiker te kunnen gebruiken.