Ricerca nel sito web

Come creare un server abilitato per SFTP su AWS


AWS Transfer Family supporta Secure File Transfer Protocol (SFTP), File Transfer Protocol over SSL (FTPS) e File Transfer Protocol (FTP) per trasferire file da e verso AWS S3 o AWS EFS (Elastic File System). Supporta il routing DNS con Amazon Route 53. AWS Transfer Family rimuove l'overhead per acquistare ed eseguire i tuoi server FTP, invece gestisce l'infrastruttura di file per te. Supporta la capacità di scalabilità automatica e mantiene un'elevata disponibilità.

AWS Transfer Family è un servizio completamente gestito da AWS che scala in tempo reale e non è necessario crearlo

Comprendiamo 3 diversi protocolli supportati da AWS Transfer Family.

  1. Protocollo SFTP: Secure Shell File Transfer Protocol è un protocollo di rete utilizzato per il trasferimento sicuro di dati su Internet. Il protocollo supporta la piena funzionalità di sicurezza e autenticazione di SSH
  2. Protocollo FTP: File Transfer Protocol (FTP) è un protocollo di rete utilizzato per il trasferimento di dati. FTP utilizza un canale separato per il controllo e il trasferimento dei dati.
  3. Protocollo FTPS: il protocollo di trasferimento file su SSL è un'estensione di FTP. Utilizza i protocolli crittografici Transport Layer Security e Secure Sockets Layer per crittografare il traffico.

Puoi creare un server accessibile pubblicamente o creare un server nel VPC.

Puoi anche controllare l'accesso al server utilizzando i criteri AWS Identity and Access Management (IAM), questi criteri possono essere assegnati a un ruolo IAM che viene quindi collegato all'utente.

Non sono previsti costi anticipati e devi pagare solo per ciò che utilizzi e i protocolli che hai abilitato per l'accesso al tuo endpoint. Per conoscere i suoi prezzi, visita la pagina ufficiale di AWS qui.

In questo articolo vedremo i passaggi per creare un server abilitato per SFTP su AWS che sarà accessibile pubblicamente. Prima di procedere con questo articolo, si presuppone che tu abbia familiarità con i ruoli IAM, le istanze EC2 e i bucket S3.

Prerequisiti

  1. Account AWS (crealo se non ne hai uno).
  2. Istanza Ubuntu EC2 (fare clic qui per imparare a creare un'istanza Ubuntu EC2 su AWS).
  3. Ruolo IAM con accesso completo a S3 (fai clic qui per scoprire come creare un ruolo IAM).
  4. Bucket S3 (fai clic qui per imparare a creare un bucket S3 su AWS).

Che cosa faremo?

  1. Accedi ad AWS
  2. Crea un server SFTP
  3. Modifica le relazioni di fiducia del criterio IAM
  4. Crea una cartella nel bucket S3.
  5. Genera una coppia di chiavi nell'istanza EC2.
  6. Crea un utente nel server SFTP
  7. Verifica la connessione al server SFTP
  8. Elimina il server SFTP

Accedi ad AWS

Clicca qui per andare alla pagina di login dove puoi inserire le tue credenziali per entrare nell'account.

Una volta effettuato correttamente l'accesso al tuo account, vedrai la console di gestione AWS principale come segue e potrai scegliere la regione desiderata per creare un server SFTP.

Crea un server SFTP

Cerca \Trasferisci famiglia\ nella casella di ricerca nella parte superiore dello schermo.

Vedrai la dashboard principale di AWS Transfer Family come segue. Fai clic sul pulsante \Crea server\ per creare il tuo primo server SFTP.

Qui, scegli il protocollo che desideri abilitare per il server. Puoi abilitare più protocolli, ma qui procederemo con un unico protocollo SFTP. Fare clic sul pulsante \Avanti\ per procedere.

Scegli il tipo di endpoint in base alle tue esigenze. Se desideri che il tuo endpoint sia accessibile pubblicamente, procedi con esso. Fai clic sul pulsante \Avanti\.

Scegli il servizio di archiviazione AWS in cui desideri archiviare i tuoi dati. Qui procederemo con Amazon S3. Fai clic sul pulsante \Avanti\ per procedere.

Procedi con le opzioni predefinite qui.

Rivedere la configurazione e fare clic sul pulsante \Crea server\. Questo creerà un server SFTP per te, il processo di creazione richiederà alcuni minuti per terminare.

Modifica le relazioni di fiducia del criterio IAM

Il passaggio successivo consiste nel modificare la policy IAM che ha accesso completo ai bucket S3. Vai al \Ruolo IAM --> Relazioni di fiducia\ e modificalo.

Modifica il Servizio in \transfer.amazonaws.com\, il documento delle norme dovrebbe avere il seguente aspetto.

Crea una cartella nel bucket S3.

Ci vediamo se hai un bucket S3 in cui desideri archiviare i dati dal server SFTP.

Genera una coppia di chiavi nell'istanza EC2.

Il passaggio successivo consiste nel creare una coppia di chiavi che verrà utilizzata per l'autenticazione al server SFTP. Vai al tuo server Linux ed esegui il seguente comando per generare una coppia di chiavi

ssh-keygen

cat ~/.ssh/id_rsa.pub

Recupera la chiave pubblica che sarà necessaria nel passaggio successivo.

Crea un utente nel server SFTP

Andiamo all'SFTP che abbiamo creato.

Fai clic sul pulsante \Aggiungi utente\ per creare un utente che verrà utilizzato per autenticare e trasferire i file su S3 utilizzando il server SFTP che abbiamo creato.

Qui, l'endpoint che vedi verrà utilizzato per accedere al server SFTP per il trasferimento dei dati. Tieni questo endpoint con te che sarà necessario durante l'accesso al server SFTP.

Aggiungi un nome utente, scegli il ruolo IAM, seleziona il bucket S3 e una cartella al suo interno che fungerà da home directory per l'utente che stiamo creando. Aggiungi la chiave pubblica che abbiamo copiato dal passaggio precedente nella parte \Chiave pubblica SSH\.

Scorri la pagina e clicca sul pulsante \Aggiungi\. Verrà creato un utente che avrà bisogno di una chiave privata associata al pubblico che abbiamo aggiunto durante la creazione dell'utente.

Testare la connessione al server SFTP Testare la connessione al server SFTP

Vai al server Linux in cui hai creato la coppia di chiavi e usa il seguente comando per connetterti al server SFTP.

Qui, devi cambiare l'endpoint con quello che hai per il tuo server SFTP.

sftp -i ~/.ssh/id_rsa [email azonaws.com

Puoi provare a caricare i file utilizzando il seguente comando in cui il file utilizzato nel seguente comando appartiene al sistema locale.

put /home/ubuntu/test-file

Il comando precedente copierà il file \/home/ubuntu/test-file\ dal sistema locale al server SFTP.

Puoi verificare dalla console se il file è stato caricato o meno nel bucket S3 utilizzando il comando \put\ precedente.

Elimina il server SFTP

Quando non hai più bisogno del tuo server SFTP, puoi eliminarlo facilmente. Per eliminare il server, fare clic su \Azioni --> Elimina\.

Conferma l'azione di eliminazione e fai clic sul pulsante \Elimina\. Una volta eliminato il server SFTP non puoi ripristinarlo, quindi fai attenzione mentre esegui l'operazione di eliminazione.

Conclusione

In questo articolo, abbiamo visto i passaggi per creare un server SFTP con S3 come backend. Abbiamo creato un utente e gli abbiamo assegnato un particolare bucket S3 --> cartella come home directory. Abbiamo visto le modifiche necessarie per il ruolo IAM da utilizzare per l'utente.