Transferencia de archivos a través de un punto de conexión mediante un cliente - AWS Transfer Family

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Transferencia de archivos a través de un punto de conexión mediante un cliente

Los archivos se transfieren a través del AWS Transfer Family servicio especificando la operación de transferencia en un cliente. AWS Transfer Family admite los siguientes clientes:

  • Admitimos la versión 3 del protocolo SFTP.

  • OpenSSH (macOS y Linux)

    nota

    Este cliente solo funciona con servidores que estén habilitados para el Protocolo de File Transfer (SFTP) Secure Shell (SSH).

  • WinSCP (solo Microsoft Windows)

  • Cyberduck (Windows, macOS y Linux)

  • FileZilla (Windows, macOS y Linux)

Las limitaciones siguientes se aplican a cada cliente:

  • El protocolo SCP no es compatible porque se considera inseguro. Puede utilizar el comando scp OpenSSH tal y como se describe en. Uso del comando scp

  • El número máximo de sesiones SFTP simultáneas y multiplexadas por conexión es de 10.

  • Para las conexiones inactivas, el valor de tiempo de espera es de 1800 segundos (30 minutos) para todos los protocolos (). SFTP/FTP/FTPS Si no hay actividad después de este período, es posible que el cliente se desconecte. Para las conexiones que no responden:

    • El SFTP tiene un tiempo de espera de 300 segundos (5 minutos) cuando un cliente deja de responder por completo.

    • El FTPS y el FTP tienen un tiempo de espera por inactividad de aproximadamente 10 minutos, que es gestionado por la biblioteca subyacente.

  • Amazon S3 y Amazon EFS (debido al NFSv4 protocolo) requieren que los nombres de los archivos estén codificados en UTF-8. El uso de una codificación diferente puede provocar resultados inesperados. Para Amazon S3, consulte las directrices de nomenclatura de claves de objetos.

  • En el caso del Protocolo de File Transfer a través de SSL (FTPS), solo se admite el modo explícito. El modo implícito no es compatible.

  • Para el Protocolo de File Transfer (FTP) y el FTPS, solo se admite el modo pasivo.

  • Para FTP y FTPS, solo se admite el modo STREAM.

  • Para FTP y FTPS, solo Image/Binary se admite el modo.

  • Para FTP y FTPS, TLS: PROT C (desprotegido) El TLS para la conexión de datos es el valor predeterminado, pero el protocolo FTPS no admite PROT C. AWS Transfer Family Por lo tanto, en el caso del FTPS, es necesario emitir el PROT P para que se acepte la operación de datos.

  • Si utiliza Amazon S3 para el almacenamiento de su servidor y si su cliente incluye la opción de utilizar varias conexiones para una sola transferencia, asegúrese de inhabilitarla. De lo contrario, las cargas de archivos grandes pueden fallar de forma impredecible. Tenga en cuenta que si utiliza Amazon EFS como servidor de almacenamiento, EFS admite varias conexiones para una sola transferencia.

La siguiente es una lista de los comandos disponibles para FTP y FTPS:

Comandos disponibles

LABOR

HAZAÑA

MAYORÍA

PASS

RETR

STOR

AUTH

LANG

MKD

PASV

RMD

STOU

TAZA

LIST

MODE

PBSZ

RNFR

STRU

CWD

MDTM

NLST

PUERTO

RINTO

SISTEMA

DELE

MFMT

NO

PWD

SIZE

TYPE

EPSV

MLSD

OPTA

QUIT

STAT

USER

nota

No es compatible con la APPE.

En el caso de SFTP, los usuarios que utilizan el directorio de inicio lógico en servidores que utilizan Amazon Elastic File System (Amazon EFS) no admiten actualmente las siguientes operaciones.

Comandos SFTP incompatibles

SSH_FXP_READLINK

SSH_FXP_SYMLINK

SSH_FXP_STAT cuando el archivo solicitado es un enlace simbólico

SSH_FXP_REALPATH cuando la ruta solicitada contiene algún componente de enlace simbólico

Generación de un par de claves público-privadas

Para poder transferir un archivo, debe disponer de un par de claves público-privadas. Si no ha generado previamente un par de claves, consulte Genere claves SSH para los usuarios administrados por el servicio.

Comandos disponibles SFTP/FTPS/FTP

En la siguiente tabla se describen los comandos disponibles para los protocolos SFTP, FTPS y FTP. AWS Transfer Family

nota

En la tabla se mencionan los archivos y directorios de Amazon S3, que solo admite buckets y objetos: no hay jerarquía. Sin embargo, puede usar prefijos en los nombres de las claves de los objetos para dar a entender una jerarquía y organizar los datos de forma similar a las carpetas. Este comportamiento se describe en Trabajar con metadatos de objetos de la Guía del usuario de Amazon Simple Storage Service.

Comandos de SFTP/FTPS/FTP
Comando Amazon S3 Amazon EFS
cd Soportado Compatible
chgrp No compatible Compatible (solo root o owner)
chmod No compatible Compatible (solo root)
chmtime No compatible Compatible
chown No compatible Compatible (solo root)
get Compatible Compatible (incluida la resolución de enlaces simbólicos)
ln -s No compatible Soportado
ls/dir Soportado Soportado
mkdir Soportado Soportado
put Soportado Soportado
pwd Soportado Compatible
rename Solo se admite para archivos
nota

No se admite el cambio de nombre que sobrescriba un archivo existente.

Compatible
nota

No se admite el cambio de nombre que sobrescriba un archivo o directorio existente.

rm Soportado Compatible
rmdir Compatible (solo directorios vacíos) Soportado
version Soportado Compatible

Encuentre su punto de conexión de Amazon VPC

Si el tipo de punto de conexión de su servidor de Transfer Family es VPC, no es fácil identificar el punto de conexión que se va a utilizar para transferir archivos. En este caso, utilice el siguiente procedimiento para encontrar su punto de conexión de Amazon VPC.

Para encontrar su punto de conexión de Amazon VPC
  1. Diríjase a la página de detalles de su servidor.

  2. En el panel de detalles del punto de conexión, seleccione la VPC.

    La página de detalles del servidor de consola Transfer Family, que muestra los detalles del punto de conexión de un servidor de VPC.
  3. En el panel de control de Amazon VPC, seleccione el ID del punto de conexión de VPC.

  4. En la lista de nombres de DNS, el punto de conexión de su servidor es el primero de la lista.

    La página de puntos de conexión de la consola de Amazon VPC, que muestra los nombres de DNS de un punto de conexión seleccionado.

Evite errores setstat

Al cargar el archivo, algunos clientes de transferencia de archivos SFTP pueden usar comandos como SETSTAT para intentar cambiar los atributos de los archivos remotos, lo que incluye la marca temporal y los permisos. Sin embargo, estos comandos no son compatibles con los sistemas de almacenamiento de objetos, como Amazon S3. Debido a esta incompatibilidad, la carga de archivos desde estos clientes puede provocar errores incluso si el archivo se carga correctamente.

  • Cuando utilice la API CreateServer o UpdateServer, utilice la opción SetStatOption de ProtocolDetails para ignorar el error que se genera cuando el cliente intenta utilizar SETSTAT en un archivo que está cargando en un bucket de S3.

  • Establezca el valor en ENABLE_NO_OP para hacer que el servidor de Transfer Family ignore el comando SETSTAT y cargue los archivos sin necesidad de realizar ningún cambio en el cliente SFTP.

  • Tenga en cuenta que, si bien la SetStatOption ENABLE_NO_OP configuración ignora el error, genera una entrada de registro en CloudWatch los registros para que pueda determinar cuándo el cliente realiza una llamada a SETSTAT.

Para ver los detalles de la API de esta opción, consulte. ProtocolDetails

Uso de OpenSSH

Esta sección contiene instrucciones para transferir archivos desde la línea de comandos mediante OpenSSH.

nota

Este cliente solo funciona con un servidor habilitado para SFTP.

Con OpenSSH

Para transferir archivos AWS Transfer Family mediante la utilidad de línea de comandos OpenSSH
  1. En Linux, macOS o Windows abra un terminal de comandos.

  2. En el símbolo del sistema, escriba el comando siguiente:

    sftp -i transfer-key sftp_user@service_endpoint

    En el comando anterior, sftp_user es el nombre de usuario y transfer-key es la clave privada de SSH. Aquí service_endpoint se muestra el punto final del servidor, tal y como se muestra en la AWS Transfer Family consola del servidor seleccionado.

    nota

    Este comando usa la configuración que se encuentra en el ssh_config archivo predeterminado. A menos que haya editado este archivo anteriormente, SFTP usa el puerto 22. Puede especificar un puerto diferente (por ejemplo, 2222) añadiendo un -P indicador al comando, de la siguiente manera.

    sftp -P 2222 -i transfer-key sftp_user@service_endpoint

    Como alternativa, si siempre quiere usar el puerto 2222 o el puerto 22000, puede actualizar el puerto predeterminado en el ssh_config archivo.

    Debe aparecer el símbolo del sistema sftp.

  3. (Opcional) Para ver el directorio de inicio del usuario, introduzca el siguiente comando en la línea de comandos sftp:

    pwd

  4. Para cargar un archivo desde su sistema de archivos al servidor de Transfer Family, utilice el comando put. Por ejemplo, para cargar hello.txt (suponiendo que el archivo esté en el directorio actual del sistema de archivos), ejecute el siguiente comando en la línea de comandos sftp:

    put hello.txt

    Aparecerá un mensaje similar al siguiente para indicar que la transferencia está en curso o que se ha completado.

    Uploading hello.txt to /amzn-s3-demo-bucket/home/sftp_user/hello.txt

    hello.txt 100% 127 0.1KB/s 00:00

nota

Desde que se crea el servidor, pueden transcurrir algunos minutos hasta que el servicio DNS del entorno pueda resolver el nombre de host de su punto de conexión.

Uso del comando scp

Transfer Family no es compatible con el protocolo SCP. Sin embargo, puede usar el comando scp OpenSSH si necesita esta funcionalidad.

La recomendación para usar SCP sobre SFTP es usar OpenSSH versión 9.0 o posterior. En la versión 9 y posteriores de OpenSSH, scp el comando utiliza de forma predeterminada el protocolo SFTP para las transferencias de archivos en lugar del protocolo SCP heredado.

importante

Asegúrese de que su servidor Transfer Family esté configurado para usar el acceso al directorio optimizado para S3.

Utilice WinSCP

Siga las instrucciones indicadas a continuación para transferir archivos desde la línea de comandos mediante WinSCP.

nota

Si utiliza WinSCP 5.19, puede conectarse directamente a Amazon S3 con sus credenciales AWS y archivos. upload/download Para obtener más información, consulte Conexión al servicio Amazon S3.

Para transferir archivos AWS Transfer Family mediante WinSCP
  1. Abra el cliente WinSCP.

  2. En el cuadro de diálogo de inicio de sesión, en Protocolo de archivos, elija un protocolo: SFTP o FTP.

    Si eligió FTP, elija una de las siguientes opciones para el cifrado:

    • Sin cifrado para FTP

    • TLS/SSL Cifrado explícito para FTPS

  3. ParaNombre del host, escriba el punto de conexión del servidor. El punto de conexión del servidor se encuentra en la página de Detalles del servidor. Para obtener más información, consulte Vea los detalles de los servidores SFTP, FTPS y FTP.

    Si el servidor usa un punto de conexión de VPC, consulte Encuentre su punto de conexión de Amazon VPC.

  4. En el número de puerto, introduzca lo siguiente:

    • 22 para SFTP

    • 21 para FTP/FTPS

  5. En Nombre de usuario, introduzca el nombre del usuario que creó para su proveedor de identidad específico.

    Consejo: El nombre de usuario debe ser uno de los usuarios que creó o configuró para su proveedor de identidad. AWS Transfer Family proporciona los siguientes proveedores de identidad:

  6. Seleccione Avanzado para abrir el cuadro de diálogo Configuración avanzada del sitio. En la sección SSH, elija Autenticación.

  7. Busque y elija el archivo de clave privada de SSH en su sistema de archivos.

    Si WinSCP le ofrece convertir la clave privada de SSH al formato PPK, elija Aceptar.

  8. Elija Aceptar para volver al cuadro de diálogo Iniciar sesión y allí elija Guardar.

  9. En el cuadro de diálogo Guardar sitio, elija Aceptar para completar la configuración de la conexión.

  10. En el cuadro de diálogo de inicio de sesión, elija Herramientas y, a continuación, Preferencias.

  11. En el cuadro de diálogo de preferencias, casilla de Transfer, elija Endurance.

    En la opción Habilitar la transferencia resume/transfer a un nombre de archivo temporal, seleccione Inhabilitar.

    importante

    Si dejas esta opción habilitada, aumentarán los costos de carga y disminuirán considerablemente su rendimiento. También puede provocar errores al cargar archivos de gran tamaño.

  12. En Transferir, seleccione Fondo y desactive la casilla Usar varias conexiones para una sola transferencia.

    Consejo: Si dejas esta opción seleccionada, las cargas de archivos grandes pueden fallar de forma impredecible. Por ejemplo, se pueden crear cargas multiparte huérfanas que conlleven gastos de Amazon S3. También puede producirse una corrupción silenciosa de los datos.

  13. Ejecute la transferencia de archivos.

    Puede utilizar drag-and-drop métodos para copiar archivos entre la ventana de destino y la de origen. Puede usar los iconos de la barra de herramientas para cargar, descargar, eliminar, editar o modificar las propiedades de los archivos en WinSCP.

nota

Esta nota no se aplica si utiliza Amazon EFS para el almacenamiento.

Los comandos que intentan cambiar los atributos de los archivos remotos, incluidas las marcas de tiempo, no son compatibles con los sistemas de almacenamiento de objetos como Amazon S3. Por lo tanto, si utiliza Amazon S3 como almacenamiento, asegúrese de deshabilitar la configuración de la marca de tiempo de WinSCP (o utilice SetStatOption como se describe en Evite errores setstat) antes de realizar transferencias de archivos. Para ello, en el cuadro de diálogo Preajustes de transferencia de WinSCP, desactive la opción de subida Establecer permisos y la opción común Mantener fecha.

Uso de Cyberduck

Siga las instrucciones indicadas a continuación para transferir archivos desde la línea de comandos mediante Cyberduck.

Para transferir archivos AWS Transfer Family mediante Cyberduck
  1. Abra el cliente de Cyberduck.

  2. Elija Abrir conexión.

  3. En el cuadro de diálogo Abrir conexión, elija un protocolo: SFTP (protocolo de File Transfer SSH), FTP-SSL (TLS de autenticación explícita) o FTP (protocolo de File Transfer).

  4. En Servidor, escriba el punto de conexión del servidor. El punto de conexión del servidor se encuentra en la página de Detalles del servidor. Para obtener más información, consulte Vea los detalles de los servidores SFTP, FTPS y FTP.

    Si el servidor usa un punto de conexión de VPC, consulte Encuentre su punto de conexión de Amazon VPC.

  5. En el número de puerto, introduzca lo siguiente:

    • 22 para SFTP

    • 21 para FTP/FTPS

  6. En Usuario, escriba el nombre del usuario que creó en Administración de usuarios para puntos finales de servidor.

  7. Si selecciona SFTP, para la clave privada SSH, elija o introduzca la clave privada SSH.

  8. Elija Conectar.

  9. Ejecute la transferencia de archivos.

    En función del lugar donde se encuentren los archivos, elija entre las acciones siguientes:

    • En el directorio local (el origen), seleccione los archivos que desea transferir, arrástrelos y suéltelos en el directorio de Amazon S3 (el destino).

    • En el directorio de Amazon S3 (el origen), seleccione los archivos que desea transferir, arrástrelos y suéltelos en el directorio local (el destino).

Usa FileZilla

Siga las instrucciones que aparecen a continuación para transferir archivos utilizando FileZilla.

FileZilla Para configurar una transferencia de archivos
  1. Abre el FileZilla cliente.

  2. Elija Archivo y, a continuación, Administrador del sitio.

  3. En el cuadro de diálogo del administrador del sitio, elija Nuevo sitio.

  4. En la pestaña General, en Protocolo, elija un protocolo: SFTP o FTP.

    Si eligió FTP, elija una de las siguientes opciones para el cifrado:

    • Utilice únicamente FTP simple (inseguro): para FTP

    • Utilice FTP explícito sobre TLS, si está disponible: para FTPS

  5. En el campo Nombre de host, introduzca el protocolo que está utilizando, seguido del punto de conexión del servidor. El punto de conexión del servidor se encuentra en la página de Detalles del servidor. Para obtener más información, consulte Vea los detalles de los servidores SFTP, FTPS y FTP.

    • Si utiliza SFTP, introduzca: sftp://hostname

    • Si utiliza FTPS, introduzca: ftps://hostname

    Asegúrese de hostname reemplazarlo por el punto final del servidor actual.

    Si el servidor usa un punto de conexión de VPC, consulte Encuentre su punto de conexión de Amazon VPC.

  6. En el número de puerto, introduzca lo siguiente:

    • 22 para SFTP

    • 21 para FTP/FTPS

  7. Si selecciona SFTP, en Tipo de inicio de sesión, elija Archivo clave.

    En Archivo de claves, elija o introduzca la clave privada SSH.

  8. En Usuario, escriba el nombre del usuario que creó en Administración de usuarios para puntos finales de servidor.

  9. Elija Conectar.

  10. Ejecute la transferencia de archivos.

    nota

    Si interrumpe una transferencia de archivos en curso, AWS Transfer Family podría escribir un objeto parcial en su bucket de Amazon S3. Si interrumpe una carga, compruebe que el tamaño del archivo en el bucket de Amazon S3 coincide con el tamaño del objeto original antes de continuar.

Utilice un cliente Perl

Si usa el cliente NET::SFTP::Foreign perl, debe configurar elqueue_size. 1 Por ejemplo:

my $sftp = Net::SFTP::Foreign->new('user@s-12345.server.transfer.us-east-2.amazonaws.com', queue_size => 1);

nota

Esta solución alternativa es necesaria para las revisiones de Net::SFTP::Foreign anteriores a 1.92.02.

Utilice LFTP

LFTP es un cliente FTP gratuito que permite a los usuarios realizar transferencias de archivos a través de la interfaz de línea de comandos desde la mayoría de las máquinas Linux.

En el caso de las descargas de archivos de gran tamaño, LFTP tiene un problema conocido con paquetes desordenados, que provoca un error en la transferencia de archivos.

Procesamiento de carga posterior

Puede ver la información de procesamiento posterior a la carga, incluidos los metadatos de los objetos de Amazon S3 y las notificaciones de eventos.

Metadatos de objeto de Amazon S3

Como parte de los metadatos de su objeto, verá una clave llamada x-amz-meta-user-agent cuyo valor es AWSTransfer y x-amz-meta-user-agent-id cuyo valor es username@server-id. username es el usuario de Transfer Family que cargó el archivo y server-id es el servidor utilizado para la carga. Se puede acceder a esta información mediante la HeadObjectoperación en el objeto S3 dentro de la función Lambda.

La pantalla de metadatos que muestra información sobre los metadatos de los objetos de Amazon S3 para AWS Transfer Family.

Notificaciones de eventos de Amazon S3

Cuando se carga un objeto en su bucket de S3 mediante Transfer Family, RoleSessionName aparece en el campo Solicitante de la estructura de notificaciones de eventos de S3 como [AWS:Role Unique Identifier]/username.sessionid@server-id. Por ejemplo, el siguiente es el contenido de un ejemplo de campo Requester (Solicitante) de un registro de acceso de S3 para un archivo que se copió en el bucket de S3.

arn:aws:sts::AWS-Account-ID:assumed-role/IamRoleName/username.sessionid@server-id

En el campo Requester (Solicitante) de arriba, se muestra el rol de IAM al que se llamó IamRoleName. Para obtener más información sobre cómo configurar las notificaciones de eventos S3, consulte Configuración de notificaciones de eventos de Amazon S3 en la Guía para desarrolladores de Amazon Simple Storage Service. Para obtener más información sobre los identificadores únicos de rol AWS Identity and Access Management (IAM), consulte Identificadores únicos en la Guía del AWS Identity and Access Management usuario.

Mensajes SFTP

En esta sección se describen los mensajes del lado del cliente que puede recibir durante o después de las transferencias de archivos SFTP cuando utiliza un servidor Transfer Family. Para obtener más información sobre cualquier evento de SFTP, consulta los registros de tu cliente de SFTP. Puede usar esa información para solucionar cualquier error o enviar esa información a su equipo de red para que lo ayude a identificar el problema.

Mensajes SFTP del lado del cliente
Actividad Description (Descripción)
AUTH_FAILURE El usuario falló en la autenticación. Esto puede deberse a cualquier tipo de error provocado por un proveedor de identidades personalizado o por un usuario gestionado por un servicio. Los detalles del evento ayudan a aclarar la causa raíz del error.
CLOSE Indica que un archivo o directorio abierto se ha cerrado correctamente.
CONECTADO/DESCONECTADO Indica el éxito normal de la conexión y las desconexiones.
CREATE_SYMLINK Se creó un enlace simbólico (con éxito o sin éxito).
DELETE Se ha eliminado un archivo (correctamente o sin éxito).
ERROR Un error general e inesperado. La descripción asociada contiene información que puede ayudarle a usted o a sus administradores de red a identificar el problema específico.
EXIT_REASON Se emite cuando un error inesperado provoca la finalización de la sesión de SFTP. El mensaje asociado al evento describe la causa.
MKDIR Se creó un directorio (con éxito o sin éxito).
OPEN Se ha abierto un archivo para su lectura o escritura (correctamente o sin éxito)
PARTIAL_CLOSE El cliente se desconectó del servidor mientras un archivo aún estaba abierto y no se recibió ningún mensaje de CIERRE. Transfer Family almacena la parte recibida del archivo (que de hecho podría ser el archivo completo) y emite el evento PARTIAL_CLOSE para alertar al cliente sobre el problema. La integración de los flujos de trabajo también recibe un onPartialClose evento para gestionar el archivo de forma adecuada.
RENAME Se ha cambiado el nombre de un archivo (correctamente o sin éxito)
RMDIR Se ha eliminado un directorio (correctamente o sin éxito)
SETSTAT

Los atributos de un archivo se modifican (correctamente o sin éxito).

nota

Transfer Family no es compatible con SETSTAT si utiliza Amazon S3 como almacenamiento. En Evite errores setstat esta sección se proporcionan detalles sobre cómo evitar SetStat errores desactivando la configuración. Esto evita que reciba unfail unsupported error: en su lugar, recibirá success but do nothing un mensaje.

TLS_RESUME_FAILURE El servidor está configurado para forzar la reanudación de la sesión TLS y el cliente no la admite.