Cómo configurar el servidor SFTP de AWS con AWS S3
Un tutorial sobre la configuración del servidor SFTP de AWS con AWS S3.
“Secure Shell (SSH) File Transfer Protocol (SFTP) es un protocolo de red utilizado para la transferencia segura de datos a través de Internet. El protocolo es compatible con la funcionalidad completa de seguridad y autenticación de SSH. Se usa ampliamente para intercambiar datos, incluida información confidencial, entre socios comerciales en una variedad de industrias, como servicios financieros, atención médica, venta minorista y publicidad.”
Hoy vamos a configurar un servidor SFTP de AWS utilizando AWS S3 y AWS Transfer Family. ¡Empecemos juntos!
1) En la consola de AWS Transfer Family, seleccione “Crear servidor”.
2) Elija SFTP.
3) Como proveedor de identidad, elija “Servicio administrado”. Para sus diferentes propósitos, puede utilizar las opciones de proveedor de AWS Directory Service o Custom Identity.
4) El servidor SFTP no debe ser de acceso público, pero debemos acceder a él desde el puerto 22. Para hacer esto, debemos configurar una VPC, una subred pública y una dirección IP elástica. Además, puede usar su propio nombre de host para el punto final de SFTP.
5) Debe definir un grupo de seguridad. La IP de origen debe ser su IP de VPN.
6) Para el dominio, estamos seleccionando AWS S3.
7) Configurar detalles adicionales. (No es necesario cambiar nada por ahora).
8) ¡Su servidor SFTP de AWS está en funcionamiento! Ahora, necesitamos crear un usuario SFTP para acceder.
9) Debe seleccionar un nombre de usuario, crear un rol de IAM para su acceso a S3 y seleccionar un depósito de AWS S3.
Su política de confianza de roles de IAM debería tener este aspecto:
Su política de IAM que está adjunta al rol debe configurarse así:
{“Version”: “2012–10–17”,“Statement”: [{“Sid”: “Test1”,“Action”: [“s3:ListBucket”,“s3:GetBucketLocation”],“Effect”: “Allow”,“Resource”: [“arn:aws:s3:::BUCKET_NAME”]},{“Sid”: “ Test2”,“Effect”: “Allow”,“Action”: [“s3:PutObject”,“s3:GetObject”,“s3:DeleteObjectVersion”,“s3:DeleteObject”,“s3:GetObjectVersion”],“Resource”: “arn:aws:s3:::BUCKET_NAME/*”}]}
10) Necesitamos crear una clave SSH usando ssh-keygen. Utilice este comando para crear una clave:
$ ssh-keygen -P “” -m PEM -f key_name
11) Abra el archivo key_name.pub y copie el texto y péguelo en la clave pública SSH.
12) Conecte su servidor SFTP con este comando:
$ sftp -i <your_private_key> <username>@<sftp_dns_host>
13) Intente enumerar su AWS S3 Bucket con ls.
14) Sube un archivo:
Solución de problemas
- Si recibe un error de “Permiso denegado” después de conectarse al servidor SFTP, verifique su permiso de usuario de la política y el rol de IAM.
- Está recibiendo “No se conoce tal host” y “Cierre de conexión”. errores cuando desea conectarse a su servidor SFTP, debe verificar su estado SFTP (debe estar en línea) y las configuraciones del grupo de seguridad.
- Si el punto final de su servidor SFTP no está configurado, verifique la configuración de su VPC y subred pública. La subred pública debe enrutarse a Internet Gateway y los nombres de host DNS de VPC y la resolución deben estar habilitadas.
¡Gracias por leer!
Si le interesa, puede echar un vistazo a algunos de los otros artículos que he escrito recientemente sobre Laravel: