{"id":3101,"date":"2021-05-14T13:59:00","date_gmt":"2021-05-14T11:59:00","guid":{"rendered":"https:\/\/blog.besharp.it\/?p=3101"},"modified":"2021-05-14T17:07:49","modified_gmt":"2021-05-14T15:07:49","slug":"file-transfer-da-e-verso-amazon-s3-via-sftp-con-aws-transfer-family","status":"publish","type":"post","link":"https:\/\/blog.besharp.it\/it\/file-transfer-da-e-verso-amazon-s3-via-sftp-con-aws-transfer-family\/","title":{"rendered":"File Transfer da e verso Amazon S3 via SFTP con AWS Transfer Family"},"content":{"rendered":"\n
I protocolli per il trasferimento di file verso server in remoto esistono dagli albori del networking tra computer. FTP (esattamente, File Transfer Protocol) \u00e8 uno degli elementi fondamentali di Internet. Sviluppato da uno studente del MIT all’inizio degli anni ’70, FTP \u00e8 diventato lo standard per il trasferimento e la gestione dei file remoti per decenni.<\/p>\n\n\n\n
Nel corso degli anni, FTP \u00e8 stato aggiornato per fornire numerosi vantaggi. Gli esempi pi\u00f9 importanti, SFTP e FTPS sono stati sviluppati per soppiantare lo storico protocollo data la capacit\u00e0 di stabilire stream di dati sicuri.<\/p>\n\n\n\n
Il servizio AWS gestito, AWS Transfer Family, fornisce un set di risorse completamente gestite per supportare un modo aggiuntivo per trasferire file dentro e fuori AWS. Questo servizio consente l’esposizione di una comoda interfaccia per gestire gli oggetti su Amazon S3 ed Amazon EFS utilizzando protocolli di trasferimento file ben noti come FTP, SFTP e FTPS.<\/p>\n\n\n\n
Questo servizio AWS consente di evitare gli ostacoli portati dalla manutenzione di server FTP. Infatti, AWS Transfer Family si occupa di far scalare i server EC2 sottostanti garantendo il giusto apporto di risorse, mantenendo l’intero servizio altamente disponibile.<\/p>\n\n\n\n
Per l’autenticazione degli utenti, AWS Transfer Family consente di scegliere tra soluzioni gestite direttamente dal servizio e personalizzate. La prima opzione, tuttavia, pur consentendo una configurazione molto rapida del servizio utilizzando le chiavi SSH RSA generate da AWS per l’autenticazione SFTP, non supporta l’integrazione con i meccanismi di autenticazione esistenti o anche la semplice autenticazione con la vecchia password e nome utente. La seconda opzione invece, ti d\u00e0 carta bianca quando \u00e8 necessario integrare un identity provider esistente. Ad esempio \u00e8 possibile utilizzare LDAP o Microsoft Active Directory come IdP, oppure configurare sistemi di autenticazione personalizzati grazie a funzioni lambda create ad-hoc.<\/p>\n\n\n\n
Come detto in precedenza, AWS Transfer Family consente l’accesso ai file remoti archiviati su S3 o EFS utilizzando i protocolli FTP, SFTP e FTPS. \u00c8 importante notare tuttavia, che l’utilizzo di FTP non \u00e8 supportato per i workload internet-facing, infatti, le connessioni FTP (a differenza di quelle SFTP e FTPS) sono considerate non sicure a causa del trasferimento in chiaro delle credenziali. Infatti, \u00e8 consentita l\u2019esposizione del servizio solo in modalit\u00e0 VPC.<\/p>\n\n\n\n
Il provisioning dell’infrastruttura necessaria per mantenere un’architettura che consenta il trasferimento di file FTP, SFTP o FTPS pu\u00f2 essere molto onerosa in termini sia economici che di manutenzione. AWS Transfer Family consente di configurare nuovi workload o migrare quelli esistenti limitando queste preoccupazioni.<\/p>\n\n\n\n
Va sottolineato che la migrazione di carichi di lavoro simili a quelli offerti da AWS Transfer Family non influisce sull’esperienza utente, consentendo loro di utilizzare i client FTP a cui sono abituati, come Cyberduck, FileZilla, WinSCP, ecc.<\/p>\n\n\n\n
Al contempo, l’utilizzo di questo servizio consente di portare i tuoi dati all\u2019interno di un servizio di archiviazione durevole e altamente disponibile. Come vedremo nella parte successiva, l’adozione di S3, ad esempio, pu\u00f2 dare spazio a un numero significativo di casi di business interessanti.<\/p>\n\n\n\n
Per configurare l’autenticazione utente autogestita in AWS Transfer Family, dovremo specificare un endpoint di API Gateway e un ruolo per chiamare le sue api.<\/p>\n\n\n\n