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.
- 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
- 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.
- 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
- AWS Account(Maak aan als je er geen hebt).
- Ubuntu EC2 Instance (Klik hier om te leren hoe je een Ubuntu EC2 instance op AWS kunt maken).
- IAM Rol met volledige toegang tot S3 (Klik hierom te leren hoe je een IAM Rol maakt).
- S3 Bucket (Klik hier om te leren hoe je een S3 bucket op AWS maakt).
Wat zullen we doen?
- Inloggen op AWS
- Maak een SFTP Server aan
- Wijzig de vertrouwensrelaties van het IAM Beleid
- Maak een map in de S3 Bucket.
- Genereer een Key-Pair in de EC2 instantie.
- Maak een gebruiker aan in de SFTP Server
- Test de verbinding met de SFTP Server
- 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.
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.
Maak een SFTP Server
Zoek naar “Transfer Family” in het zoekveld bovenaan het scherm.
Je ziet het hoofddashboard van de AWS Transfer Family als volgt. Klik op de knop “Create server” om je eerste SFTP server te maken.
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 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”.
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.
Ga hier verder met de standaard opties.
Bekijk de configuratie en klik op de knop “Create Server”. Dit zal een SFTP server voor je aanmaken, het aanmaken duurt een paar minuten.
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.
Verander de Dienst in “transfer.amazonaws.com”, het beleidsdocument moet er als volgt uitzien.
Maak een map in de S3 Bucket.
Zie of je een S3 emmer hebt waarin je gegevens van de SFTP server wilt opslaan.
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.
Maak een gebruiker in de SFTP Server
Laten we naar de SFTP gaan die we zo gemaakt hebben.
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.
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.
Je kunt vanaf de console controleren of het bestand al dan niet in de S3 emmer is geüpload met het bovenstaande “put” commando.
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”.
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.
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.