Cómo crear un servidor habilitado para SFTP en AWS

AWS Transfer Family admite el Protocolo Seguro de Transferencia de Archivos (SFTP), el Protocolo de Transferencia de Archivos sobre SSL (FTPS) y el Protocolo de Transferencia de Archivos (FTP) para transferir archivos a y desde AWS S3 o AWS EFS(Elastic File System).Admite el enrutamiento DNS con Amazon Route 53. AWS Transfer Family elimina la sobrecarga de comprar y ejecutar tus propios servidores FTP, en su lugar, administra la infraestructura de archivos por ti. Admite capacidad de autoescalado y mantiene una alta disponibilidad.

AWS Transfer Family es un servicio totalmente administrado por AWS que escala en tiempo real, y no necesitas crear

Entendamos 3 protocolos diferentes soportados por AWS Transfer Family.

  1. Protocolo SFTP: Secure Shell File Transfer Protocol es un protocolo de red utilizado para la transferencia segura de datos a través de Internet. El protocolo admite la funcionalidad completa de seguridad y autenticación de SSH
  2. ProtocoloFTP: El Protocolo de Transferencia de Archivos (FTP) es un protocolo de red utilizado para la transferencia de datos. FTP utiliza un canal separado para las transferencias de control y de datos.
  3. ProtocoloFTPS: El Protocolo de Transferencia de Archivos sobre SSL es una extensión del FTP. Utiliza los protocolos criptográficos Transport Layer Security y Secure Sockets Layer para cifrar el tráfico.

Puedes crear un servidor de acceso público o crear un servidor en la VPC.

También puedes controlar el acceso al servidor utilizando las políticas de AWS Identity and Access Management (IAM), estas políticas pueden asignarse a un Rol IAM que luego se adjunta al usuario.

No hay costes iniciales y sólo tienes que pagar por lo que utilices y por los protocolos que hayas habilitado para acceder a tu punto final. Para conocer sus precios, visita la página oficial de AWS aquí.

En este artículo, veremos los pasos para crear un servidor habilitado para SFTP en AWS que será accesible públicamente. Antes de continuar con este artículo, se supone que estás familiarizado con los Roles IAM, las instancias EC2 y los Buckets S3.

Requisitos previos

  1. Cuenta AWS (Créala si no tienes una).
  2. Instancia Ubuntu EC2.
  3. Rol IAM con acceso completo a S3.
  4. Cubo S3.

¿Qué vamos a hacer?

  1. Iniciar sesión en AWS
  2. Crear un Servidor SFTP
  3. Modifica las Relaciones de Confianza de la Política IAM
  4. Crea una carpeta en el Bucket S3
  5. Generar un Rayo de Claves en la instancia EC2.
  6. Crea un usuario en el Servidor SFTP
  7. Prueba la conexión con el Servidor SFTP
  8. Elimina el Servidor SFTP

Iniciar sesión en AWS

Haz clic aquí para ir a la página de inicio de sesión donde puedes introducir tus credenciales para entrar en la cuenta.

Página de acceso

Una vez que hayas accedido con éxito a tu cuenta, verás la consola principal de administración de AWS como se muestra a continuación y podrás elegir la región deseada para crear un Servidor SFTP.

Consola de administración de AWS

Crear un Servidor SFTP

Busca «Transferir Familia» en el cuadro de búsqueda de la parte superior de la pantalla.

Buscar familia transferida

Verás el panel principal de la Familia de Transferencia de AWS como se indica a continuación. Haz clic en el botón «Crear servidor» para crear tu primer servidor SFTP.

Panel de la familia de transferencias de AWS

Aquí, elige el protocolo que quieres habilitar para el servidor. Puedes habilitar varios protocolos, pero aquí procederemos con un único protocolo SFTP. Haz clic en el botón «Siguiente» para continuar.

Elige un Protocolo

Elige el tipo de endpoint en función de tus necesidades. Si quieres que tu endpoint sea accesible públicamente procede con ello. Pulsa el botón «Siguiente».

Configuración del punto final

Elige el servicio de almacenamiento de AWS donde quieres que se almacenen tus datos. Aquí procederemos con Amazon S3. Pulsa el botón «Siguiente» para continuar.

Elige un dominio

Procede aquí con las opciones por defecto.

Función de registro

Revisa la configuración y haz clic en el botón «Crear servidor». Esto creará un servidor SFTP para ti, el proceso de creación tardará unos minutos en finalizar.

Revisar y crear un servidor

Modificar las Relaciones de Confianza de la Política IAM

El siguiente paso es modificar la política IAM que tiene acceso total a los buckets S3. Ve a «Rol IAM — > Relaciones de confianza» y edítala.

Función IAM para SFTP

Cambia el Servicio a «transfer.amazonaws.com», el documento de la política debería tener el siguiente aspecto.

Editar relación de confianza

Crea una carpeta en el Bucket S3.

Mira si tienes un bucket S3 donde quieras almacenar los datos del servidor SFTP.

Crea una carpeta en el Bucket S3

Genera un Rayo de Claves en la instancia EC2.

El siguiente paso es crear un par de claves que se utilizarán para autenticarse en el servidor SFTP. Ve a tu servidor Linux y ejecuta el siguiente comando para generar un par de claves

ssh-keygen

cat ~/.ssh/id_rsa.pub

Obtén la clave pública que necesitarás en el siguiente paso.

Generar un par de claves

Crear un usuario en el Servidor SFTP

Vamos al SFTP que hemos creado.

Servidor SFTP

Haz clic en el botón «Añadir usuario» para crear un usuario que se utilizará para autenticarse y transferir archivos a S3 utilizando el servidor SFTP que hemos creado.

Aquí, el endpoint que ves se utilizará para acceder al servidor SFTP para la transferencia de datos. Conserva contigo este endpoint que necesitarás para acceder al servidor SFTP.

Añade un nombre de usuario, elige el rol IAM, selecciona el bucket S3 y una carpeta dentro de él que actuará como directorio principal para el usuario que estamos creando. Añade la clave pública que hemos copiado en el paso anterior en la parte «Clave pública SSH».

Desplázate hacia abajo en la página y haz clic en el botón «Añadir». Esto creará un usuario que necesitará una clave privada asociada a la pública que añadimos al crear el usuario.

Añade el usuario

Prueba la conexión con el Servidor SFTPPrueba la conexión con el Servidor SFTP

Ve al servidor Linux donde creaste el par de claves y utiliza el siguiente comando para conectarte al servidor SFTP.

Aquí, tienes que cambiar el endpoint por el que tengas para tu servidor SFTP.

sftp -i ~/.ssh/id_rsa rahul-sftp-user@s-922b406852024d85a.server.transfer.eu-west-3.amazonaws.com

Puedes intentar subir archivos utilizando el siguiente comando, donde el archivo utilizado en el siguiente comando pertenece al sistema local.

put /home/ubuntu/test-archivo

El comando anterior copiará el archivo «/home/ubuntu/test-file» del sistema local al servidor SFTP.

Subir un archivo

Puedes verificar desde la consola si el archivo se ha subido o no al cubo S3 utilizando el comando «put» anterior.

Comprueba el Cubo S3

Eliminar el servidor SFTP

Cuando ya no necesites tu servidor SFTP, puedes eliminarlo fácilmente. Para eliminar el servidor, haz clic en «Acciones –> Eliminar».

Borrar el Servidor SFTP

Confirma tu acción de eliminación y haz clic en el botón «Eliminar». Una vez que elimines el servidor SFTP no podrás restaurarlo, así que ten cuidado al realizar la operación de eliminación.

Confirmar eliminación

Conclusión

En este artículo hemos visto los pasos para crear un servidor SFTP con S3 como backend. Creamos un usuario y le asignamos un determinado bucket –> carpeta de S3 como directorio de Inicio. Vimos los cambios necesarios para que el rol IAM sea utilizado por el usuario.

También te podría gustar...