Configuración y uso de conectores SFTP - 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.

Configuración y uso de conectores SFTP

El propósito de un conector es establecer una relación entre su AWS almacenamiento y el servidor SFTP de un socio. Puede enviar archivos desde Amazon S3 a un destino externo propiedad de un socio. También puede usar un conector SFTP para recuperar archivos del servidor SFTP de un socio.

Este tutorial ilustra cómo configurar un conector SFTP con los tipos de salida gestionado por servicio y VPC_LATTICE y, a continuación, transferir archivos entre el almacenamiento de Amazon S3 y un servidor SFTP.

Un conector SFTP recupera las credenciales de SFTP para autenticarse en un servidor SFTP remoto y establecer AWS Secrets Manager una conexión. El conector envía o recupera archivos del servidor remoto y los almacena en Amazon S3. Puede elegir entre la salida gestionada por el servicio (mediante una infraestructura AWS gestionada) o la salida de VPC (enrutamiento a través de la VPC mediante el acceso a recursos entre VPC). Se utiliza una función de IAM para permitir el acceso al bucket de Amazon S3 y a las credenciales almacenadas en Secrets Manager. Y puedes iniciar sesión en Amazon CloudWatch.

Un diagrama de arquitectura que muestra cómo el conector SFTP interactúa con Secrets Manager, Amazon S3, CloudWatch los registros, las funciones de IAM y el servidor SFTP remoto.

La siguiente entrada del blog proporciona una arquitectura de referencia para crear un flujo de trabajo de MFT con conectores SFTP, que incluye el cifrado de archivos mediante PGP antes de enviarlos a un servidor SFTP remoto mediante conectores SFTP: diseño de transferencias de archivos gestionadas seguras y compatibles con conectores SFTP y cifrado PGP. AWS Transfer Family

Tipos de salida de conectores

Los conectores SFTP admiten dos tipos de salida que determinan la forma en que el conector enruta el tráfico a los servidores SFTP remotos:

  • SERVICE_MANAGED (predeterminado): utiliza la infraestructura gestionada por AWS Transfer Family con direcciones IP estáticas para las conexiones salientes.

  • VPC: dirige el tráfico a través de su VPC mediante el acceso a recursos entre VPC, lo que permite la conectividad de los puntos de conexión privados y el uso de sus propias puertas de enlace NAT.

Este tutorial cubre ambos tipos de salida. Elija el tipo de salida de VPC cuando necesite:

  • Conéctese a servidores SFTP privados en su VPC (direcciones IP privadas)

  • Conéctese a servidores SFTP locales mediante Direct Connect o VPN

  • Dirija el tráfico de puntos finales públicos a través de su VPC para controles de seguridad

  • Utilice sus propias direcciones IP elásticas para las conexiones salientes

Paso 1: Cree los recursos de apoyo necesarios

Puede utilizar conectores SFTP para copiar archivos entre Amazon S3 y cualquier servidor SFTP remoto. Para este tutorial, utilizaremos un AWS Transfer Family servidor como servidor SFTP remoto. Necesitamos crear y configurar los siguientes recursos:

Para los conectores de tipo salida de VPC, también necesita:

Creación de buckets de Amazon S3

Creación de un bucket de Amazon S3
  1. Inicie sesión en la AWS Transfer Family consola en https://console.aws.amazon.com/s3/.

  2. Elija una región e introduzca un nombre.

    Para este tutorial, nuestro cubo está US East (N. Virginia) us-east-1 incluido y el nombre essftp-server-storage-east.

  3. Acepta los valores predeterminados y selecciona Crear depósito.

Para obtener información completa sobre la creación de buckets de Amazon S3, consulte ¿Cómo creo un bucket de S3? en la Guía del usuario de Amazon Simple Storage Service.

Cree un rol de IAM con los permisos necesarios

Para el rol de acceso, cree una política con los siguientes permisos.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "AllowListingOfUserFolder", "Action": [ "s3:ListBucket", "s3:GetBucketLocation" ], "Effect": "Allow", "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket" ] }, { "Sid": "HomeDirObjectAccess", "Effect": "Allow", "Action": [ "s3:PutObject", "s3:GetObject", "s3:DeleteObject", "s3:DeleteObjectVersion", "s3:GetObjectVersion", "s3:GetObjectACL", "s3:PutObjectACL" ], "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*" }, { "Sid": "GetConnectorSecretValue", "Effect": "Allow", "Action": [ "secretsmanager:GetSecretValue" ], "Resource": "arn:aws:secretsmanager:us-west-2:111122223333:secret:aws/transfer/SecretName-6RandomCharacters" } ] }

Sustituya los elementos de la siguiente manera:

  • Paraamzn-s3-demo-bucket, el tutorial usasftp-server-storage-east.

  • Pararegion, el tutorial usaus-east-1.

  • Paraaccount-id, usa tu Cuenta de AWS ID.

  • En SecretName-6RandomCharacters efecto, estamos a using sftp-connector1 favor del nombre (tendrás tus propios seis caracteres aleatorios para tu secreto).

También debes asegurarte de que esta función contenga una relación de confianza que permita al conector acceder a tus recursos cuando atienda las solicitudes de transferencia de los usuarios. Para obtener más información sobre cómo establecer una relación de confianza, consulte Para establecer una relación de confianza.

nota

Para ver los detalles del rol que vamos a usar en el tutorial, consulteFunción combinada de usuario y de acceso.

Cree y almacene un secreto en AWS Secrets Manager

Necesitamos almacenar un secreto en Secrets Manager para almacenar las credenciales de usuario de su conector SFTP. Puedes usar una contraseña, una clave privada SSH o ambas. Para el tutorial, usaremos una clave privada.

nota

Cuando guardas secretos en Secrets Manager, Cuenta de AWS incurres en cargos. Para obtener más información acerca de los precios, consulte AWS Secrets Manager Precios.

Antes de comenzar el procedimiento para almacenar el secreto, recupere y formatee su clave privada. La clave privada debe corresponder a la clave pública que está configurada para el usuario en el servidor SFTP remoto. Para nuestro tutorial, la clave privada debe corresponder a la clave pública que está almacenada para nuestro usuario de prueba en el servidor SFTP de Transfer Family que utilizamos como servidor remoto.

Para ello, ejecute el siguiente comando:

jq -sR . path-to-private-key-file

Por ejemplo, si su archivo de clave privada se encuentra en~/.ssh/sftp-testuser-privatekey, el comando es el siguiente.

jq -sR . ~/.ssh/sftp-testuser-privatekey

Esto devuelve la clave en el formato correcto (con caracteres de nueva línea incrustados) a la salida estándar. Copie este texto en alguna parte, ya que tendrá que pegarlo en el siguiente procedimiento (en el paso 6).

Almacenamiento de las credenciales de usuario en Secrets Manager para un conector SFTP
  1. Inicie sesión en Consola de administración de AWS y abra la AWS Secrets Manager consola en https://console.aws.amazon.com/secretsmanager/.

  2. En el panel de navegación izquierdo, seleccione Secretos.

  3. En la página Secretos, seleccione Almacenar un nuevo secreto.

  4. En la página Seleccionar tipo de secreto, en Tipo de secreto, seleccione Otro tipo de secreto.

  5. En la sección de Pares clave-valor, seleccione la pestaña Clave/valor.

    • Clave: EntrarUsername.

    • valor: introduzca el nombre de nuestro usuario,sftp-testuser.

  6. Para introducir la clave, le recomendamos que utilice la pestaña Texto sin formato.

    1. Seleccione Añadir fila y, a continuación, introduzcaPrivateKey.

    2. Elija la pestaña Texto sin formato. El campo ahora contiene el siguiente texto:

      {"Username":"sftp-testuser","PrivateKey":""}
    3. Pegue el texto de su clave privada (guardado anteriormente) entre las comillas dobles vacías («»).

      La pantalla debería tener el siguiente aspecto (los datos clave aparecen atenuados).

      El secreto en texto plano, con el nombre de usuario y la clave privada.
  7. Elija Siguiente.

  8. En la página Configurar el secreto, introduzca un nombre para el secreto. En este tutorial, asignamos un nombre al secretoaws/transfer/sftp-connector1.

  9. Seleccione Siguiente y, a continuación, acepte los valores predeterminados de la página Configurar rotación. A continuación, elija Siguiente.

  10. En la página de Revisión, elija Guardar para crear y almacenar el secreto.

Crear una puerta de enlace de recursos (solo tipo de salida de VPC)

Para los conectores de tipo salida de VPC, debe crear una puerta de enlace de recursos en su VPC. La puerta de enlace de recursos sirve como punto de entrada para el acceso a los recursos entre VPC.

Para crear una pasarela de recursos
  1. Ejecute el siguiente comando para crear una puerta de enlace de recursos (sustituya el ID de VPC y la subred por sus IDs valores):

    aws vpc-lattice create-resource-gateway \ --name my-sftp-resource-gateway \ --vpc-identifier vpc-12345678 \ --subnet-ids subnet-12345678 subnet-87654321
    nota

    Las puertas de enlace de recursos requieren subredes en al menos 2 zonas de disponibilidad.

  2. Anote el ID de Resource Gateway de la respuesta para usarlo en el siguiente paso.

Crear una configuración de recursos (solo tipo de salida de VPC)

Cree una configuración de recursos que apunte a su servidor SFTP. Puede ser una dirección IP privada para los servidores de la VPC o un nombre DNS público para los servidores externos. Para obtener más información sobre las configuraciones de recursos, consulte Configuraciones de recursos en la Guía del usuario de Amazon VPC Lattice.

Para crear una configuración de recursos
  1. Para un servidor SFTP privado, ejecute:

    aws vpc-lattice create-resource-configuration \ --name my-sftp-resource-config \ --port-ranges 22 \ --type SINGLE \ --resource-gateway-identifier rgw-12345678 \ --resource-configuration-definition ipResource={ipAddress="10.0.1.100"}
  2. Para un servidor SFTP público (solo nombre DNS), ejecute:

    aws vpc-lattice create-resource-configuration \ --name my-public-sftp-resource-config \ --port-ranges 22 \ --type SINGLE \ --resource-gateway-identifier rgw-12345678 \ --resource-configuration-definition dnsResource={domainName="sftp.example.com"}
    nota

    Los puntos finales públicos deben usar nombres DNS, no direcciones IP.

  3. Anote el ARN de configuración de recursos de la respuesta para usarlo al crear el conector.

Paso 2: Crear y probar un conector SFTP

En esta sección, creamos un conector SFTP que utiliza todos los recursos que creamos anteriormente. Para obtener más información, consulte Creación de conectores SFTP.

Creación de un Conector SFTP
  1. Abre la AWS Transfer Family consola en. https://console.aws.amazon.com/transfer/

  2. En el panel de navegación izquierdo, seleccione Conectores SFTP y, a continuación, seleccione Crear conector SFTP.

  3. Para el tipo de salida, elija una de las siguientes opciones:

    • Servicio gestionado (predeterminado): utiliza la infraestructura gestionada por AWS Transfer Family con direcciones IP estáticas para las conexiones salientes.

    • VPC Lattice: dirige el tráfico a través de su VPC mediante el acceso a recursos entre VPC. Elija esta opción para la conectividad de puntos finales privados o para utilizar sus propias puertas de enlace NAT.

    importante

    No puede cambiar el tipo de salida después de crear el conector. Elija con cuidado en función de sus requisitos de conectividad.

  4. En la sección de Configuración del conector, proporcione la siguiente información:

    • Para la URL, introduzca la URL del servidor SFTP remoto. Para el tutorial, introducimos la URL del servidor Transfer Family que estamos utilizando como servidor SFTP remoto.

      sftp://s-1111aaaa2222bbbb3.server.transfer.us-east-1.amazonaws.com

      1111aaaa2222bbbb3Sustitúyalo por tu ID de servidor de Transfer Family.

    • Para el rol de acceso, ingresa el rol que creamos anteriormente,sftp-connector-role.

    • Para el ARN de configuración de recursos (solo tipo de salida de entramado de VPC), introduzca el ARN de la configuración de recursos que creó anteriormente:

      arn:aws:vpc-lattice:us-east-1:account-id:resourceconfiguration/rcfg-12345678
    • Para la función de registro, elija una función que incluya una política de confianza en el elemento principal. transfer.amazonaws.com

      Consejo: Además de añadir Transfer Family como entidad de confianza, puede añadir la política AWSTransferLoggingAccess AWS gestionada al rol. Esta política se describe en detalle en AWSTransferLoggingAccess.

    La consola de conectores SFTP de Transfer Family, que muestra los ajustes de configuración del conector.
  5. En el panel Configuración SFTP, proporcione la siguiente información:

    • Para las credenciales de Connector, elija el nombre del recurso de Secrets Manager que contiene las credenciales de SFTP. Para el tutorial, elijaaws/transfer/sftp-connector1.

    • En el caso de las claves de host confiables, pegue la parte pública de la clave de host. Puede recuperar esta clave ejecutándola ssh-keyscan para su servidor SFTP. Para obtener más información sobre cómo formatear y almacenar la clave de host de confianza, consulta la documentación SftpConnectorConfigsobre los tipos de datos.

    • Para el número máximo de conexiones simultáneas, seleccione un valor entero entre 1 y 5: el valor predeterminado es 5.

    La consola de conectores SFTP de Transfer Family, que muestra los ajustes de configuración de SFTP.
  6. Una vez que haya confirmado todos los ajustes, elija Crear conector para crear el conector SFTP.

También puede crear conectores mediante. AWS Command Line Interface

  • Para crear un conector SFTP con salida gestionada por el servicio, ejecute el siguiente comando:

    aws transfer create-connector \ --url "sftp://s-1111aaaa2222bbbb3.server.transfer.us-east-1.amazonaws.com" \ --access-role "arn:aws::iam::account-id:role/sftp-connector-role" \ --sftp-config UserSecretId="aws/transfer/sftp-connector1",TrustedHostKeys="ssh-rsa AAAAB3NzaC..."
  • Para crear un conector SFTP con salida basada en VPC, ejecute el siguiente comando:

    aws transfer create-connector \ --url "sftp://my.sftp.server.com:22" \ --access-role "arn:aws::iam::account-id:role/sftp-connector-role" \ --sftp-config UserSecretId="aws/transfer/sftp-connector1",TrustedHostKeys="ssh-rsa AAAAB3NzaC..." \ --egress-config VpcLattice={ResourceConfigurationArn="arn:aws:vpc-lattice:us-east-1:account-id:resourceconfiguration/rcfg-12345678",PortNumber=22}

Tras crear un conector SFTP, le recomendamos que lo pruebe antes de intentar transferir cualquier archivo con el nuevo conector.

nota

En el caso de los conectores de tipo salida de VPC, la resolución del DNS puede tardar varios minutos después de la creación. Durante este tiempo, el estado del conector será PENDING y TestConnection volverá a ser «Conector no disponible». Espere a que aparezca el estado ACTIVE antes de intentar transferir los archivos.

Test a connector using the console
Prueba de un conector SFTP
  1. Abra la AWS Transfer Family consola en https://console.aws.amazon.com/transfer/.

  2. En el panel de navegación izquierdo, elija Conectores SFTP y seleccione un conector.

  3. En el menú Acciones, seleccione Evento de prueba.

    La consola Transfer Family, que muestra un conector SFTP seleccionado y la acción Probar conexión resaltada.

El sistema devuelve un mensaje que indica si la prueba se supera o no. Si la prueba no es satisfactoria, el sistema muestra un mensaje de error en función del motivo por el que no se ha realizado la prueba.

El panel de conexión de prueba del conector SFTP muestra una prueba satisfactoria.
El panel de conexión de prueba del conector SFTP muestra una prueba fallida: el mensaje de error indica que el rol de acceso del conector es incorrecto.
Test a connector using the CLI

Para probar un conector mediante el AWS Command Line Interface, ejecute el siguiente comando en una línea de comandos (connector-idsustitúyalo por su ID de conector real):

aws transfer test-connection --connector-id c-connector-id

Si la prueba se realiza correctamente, se devolverán las siguientes líneas:

{ "Status": "OK", "StatusMessage": "Connection succeeded" }

Si la prueba no tiene éxito, recibirá un mensaje de error descriptivo, por ejemplo:

{ "Status": "ERROR", "StatusMessage": "Unable to assume the configured access role" }

Cuando describe un conector de tipo salida de VPC, la respuesta incluye los nuevos campos:

{ "Connector": { "AccessRole": "arn:aws:iam::219573224423:role/sftp-connector-role", "Arn": "arn:aws:transfer:us-east-1:219573224423:connector/c-5dfa309ccabf40759", "ConnectorId": "c-5dfa309ccabf40759", "Status": "ACTIVE", "EgressConfig": { "ResourceConfigurationArn": "arn:aws:vpc-lattice:us-east-1:025066256552:resourceconfiguration/rcfg-079259b27a357a190" }, "EgressType": "VPC", "ServiceManagedEgressIpAddresses": null, "SftpConfig": { "TrustedHostKeys": [ "ssh-rsa AAAAB3NzaC..." ], "UserSecretId": "aws/transfer/sftp-connector1" }, "Url": "sftp://my.sftp.server.com:22" } }

Tenga en cuenta que ServiceManagedEgressIpAddresses es nulo para los conectores de tipo salida de VPC, ya que el tráfico se dirige a través de la VPC en lugar de a través de la infraestructura gestionada. AWS

Paso 3: envíe y recupere archivos mediante el conector SFTP

Para simplificar, asumimos que ya tiene archivos en su bucket de Amazon S3.

nota

En el tutorial se utilizan buckets de Amazon S3 para las ubicaciones de almacenamiento de origen y destino. Si su servidor SFTP no utiliza el almacenamiento de Amazon S3, siempre que aparezca sftp-server-storage-east en los siguientes comandos, puede sustituir la ruta por una ruta a las ubicaciones de los archivos accesibles desde su servidor SFTP.

  • Enviamos un archivo con el nombre SEND-to-SERVER.txt del almacenamiento de Amazon S3 al servidor SFTP.

  • Recuperamos un archivo con el nombre RETRIEVE-to-S3.txt del servidor SFTP al almacenamiento de Amazon S3.

nota

En los siguientes comandos, sustitúyalo por connector-id tu ID de conector.

En primer lugar, enviamos un archivo desde nuestro bucket de Amazon S3 al servidor SFTP remoto. Desde una línea de comandos, ejecute el siguiente comando:

aws transfer start-file-transfer --connector-id c-connector-id --send-file-paths "/sftp-server-storage-east/SEND-to-SERVER.txt" / --remote-directory-path "/sftp-server-storage-east/incoming"

Su sftp-server-storage-east depósito ahora debería tener este aspecto.

El depósito del servidor SFTP con el archivo recién transferido.

Si no ves el archivo como esperabas, comprueba CloudWatch los registros.

Para comprobar tus CloudWatch registros
  1. Abre la CloudWatch consola de Amazon en https://console.aws.amazon.com/cloudwatch/

  2. Selecciona Grupos de registros en el menú de navegación de la izquierda.

  3. Introduce tu ID de conector en la barra de búsqueda para buscar tus registros.

  4. Seleccione el flujo de registro que se devuelve de la búsqueda.

  5. Amplíe la entrada de registro más reciente.

Si se realiza correctamente, la entrada de registro tendrá el siguiente aspecto:

{ "operation": "SEND", "timestamp": "2023-12-18T15:26:57.346283Z", "connector-id": "connector-id", "transfer-id": "transfer-id", "file-transfer-id": "transfer-id/file-transfer-id", "url": "sftp://server-id.server.transfer.us-east-1.amazonaws.com", "file-path": "/sftp-server-storage-east/SEND-to-SERVER.txt", "status-code": "COMPLETED", "start-time": "2023-12-18T15:26:56.915864Z", "end-time": "2023-12-18T15:26:57.298122Z", "account-id": "account-id", "connector-arn": "arn:aws:transfer:us-east-1:account-id:connector/connector-id", "remote-directory-path": "/sftp-server-storage-east/incoming" }

Si la transferencia del archivo ha fallado, la entrada de registro contiene un mensaje de error que especifica el problema. Las causas más comunes de los errores son los problemas con los permisos de IAM y las rutas de archivo incorrectas.

A continuación, recuperamos un archivo del servidor SFTP y lo colocamos en un bucket de Amazon S3. Desde una línea de comandos, ejecute el siguiente comando:

aws transfer start-file-transfer --connector-id c-connector-id --retrieve-file-paths "/sftp-server-storage-east/RETRIEVE-to-S3.txt" --local-directory-path "/sftp-server-storage-east/incoming"

Si la transferencia se realiza correctamente, su bucket de Amazon S3 contiene el archivo transferido, como se muestra aquí.

El bucket de Amazon S3 con el archivo recién transferido.

Si se realiza correctamente, la entrada de registro tendrá el siguiente aspecto:

{ "operation": "RETRIEVE", "timestamp": "2023-12-18T15:36:40.017800Z", "connector-id": "c-connector-id", "transfer-id": "transfer-id", "file-transfer-id": "transfer-id/file-transfer-id", "url": "sftp://s-server-id.server.transfer.us-east-1.amazonaws.com", "file-path": "/sftp-server-storage-east/RETRIEVE-to-S3.txt", "status-code": "COMPLETED", "start-time": "2023-12-18T15:36:39.727626Z", "end-time": "2023-12-18T15:36:39.895726Z", "account-id": "account-id", "connector-arn": "arn:aws:transfer:us-east-1:account-id:connector/c-connector-id", "local-directory-path": "/sftp-server-storage-east/incoming" }

Solución de problemas de conectores de tipo salida de VPC

Si tiene problemas con los conectores de tipo salida de VPC, compruebe lo siguiente:

  • El estado del conector es PENDIENTE: la resolución de DNS para los conectores de VPC puede tardar varios minutos. Espere a que el estado se active antes de intentar realizar la conexión.

  • Tiempos de espera de conexión: compruebe que los grupos de seguridad permiten el tráfico en el puerto 22 entre las subredes de Resource Gateway y el servidor SFTP de destino.

  • Errores de configuración de recursos: asegúrese de que la configuración de recursos apunte a la dirección IP o el nombre de DNS correctos y que la puerta de enlace de recursos esté en la misma VPC que su servidor SFTP (para puntos finales privados). Para obtener más información, consulte Configuraciones de recursos en la Guía del usuario de Amazon VPC Lattice.

  • Problemas con los puntos finales públicos: en el caso de los puntos finales públicos, asegúrese de utilizar un nombre DNS, no una dirección IP, en la configuración de recursos. Compruebe que la VPC tenga una puerta de enlace NAT para el acceso saliente a Internet.

  • Disponibilidad AZ: las pasarelas de recursos requieren subredes en al menos 2 zonas de disponibilidad. No todos son AZs compatibles con VPC Lattice; compruebe si son compatibles AZs en su región.

Consideraciones de costo para el tipo de salida de VPC:

  • VPC Lattice cobra 0,006 USD por el procesamiento de datos como proveedor de recursos (VPC Lattice factura directamente)

  • AWS Transfer Family absorbe los costes de consumo de recursos de 0,01 USD/GB (primer PB)

  • Para los puntos finales públicos a través de VPC, se pueden aplicar cargos adicionales por transferencia de datos y puerta de enlace NAT.

  • Transfer Family no cobra cargos adicionales más allá de la tarifa estándar de procesamiento de datos de 0,40$ por GB

Procedimientos para crear un servidor Transfer Family para usarlo como servidor SFTP remoto

A continuación, describimos los pasos para crear un servidor Transfer Family que sirva como servidor SFTP remoto para este tutorial. Tenga en cuenta lo siguiente:

  • Usamos un servidor Transfer Family para representar un servidor SFTP remoto. Los usuarios típicos de conectores SFTP tienen su propio servidor SFTP remoto. Consulte Cree un servidor SFTP de Transfer Family y un usuario.

  • Como utilizamos un servidor Transfer Family, también utilizamos un usuario de SFTP gestionado por el servicio. Y, para simplificar, combinamos los permisos que este usuario necesita para acceder al servidor Transfer Family con los permisos que necesita para usar nuestro conector. De nuevo, la mayoría de los casos de uso de conectores SFTP tienen un usuario SFTP independiente que no está asociado a un servidor Transfer Family. Consulte Cree un servidor SFTP de Transfer Family y un usuario.

  • Para el tutorial, dado que utilizamos el almacenamiento de Amazon S3 para nuestro servidor SFTP remoto, necesitamos crear un segundo depósito para poder transferir archivos de un depósito a otro. sftp-server-storage-east

Cree un servidor SFTP de Transfer Family y un usuario

La mayoría de los usuarios no necesitarán crear un servidor SFTP Transfer Family ni un usuario, ya que ya tienes un servidor SFTP con usuarios y puedes usar este servidor para transferir archivos de ida y vuelta. Sin embargo, para este tutorial, para simplificar, utilizamos un servidor Transfer Family que funciona como servidor SFTP remoto.

Siga el procedimiento descrito en Cree un servidor compatible con SFTP para crear un servidor y Paso 3: agregar un usuario de servicio administradas agregar un usuario. Estos son los detalles del usuario que vamos a utilizar para el tutorial:

  • Cree su usuario gestionado por el servicio,. sftp-testuser

    • Configure el directorio principal en /sftp-server-storage-east/sftp-testuser

    • Al crear el usuario, se almacena una clave pública. Más adelante, cuando crees el secreto en Secrets Manager, tendrás que proporcionar la clave privada correspondiente.

  • Función:sftp-connector-role. Para el tutorial, utilizamos la misma función de IAM tanto para nuestro usuario de SFTP como para acceder al conector de SFTP. Al crear conectores para su organización, es posible que tenga funciones de usuario y de acceso independientes.

  • Clave de host del servidor: debe usar la clave de host del servidor al crear el conector. Puede recuperar esta clave ejecutándola ssh-keyscan para su servidor. Por ejemplo, si el identificador de su servidor es s-1111aaaa2222bbbb3 y su punto final está activadous-east-1, el siguiente comando recupera la clave de host del servidor:

    ssh-keyscan s-1111aaaa2222bbbb3.server.transfer.us-east-1.amazonaws.com

    Copie este texto en alguna parte, ya que tendrá que pegarlo en el Paso 2: Crear y probar un conector SFTP procedimiento.

Función combinada de usuario y de acceso

Para el tutorial, utilizamos un único rol combinado. Usamos esta función tanto para nuestro usuario de SFTP como para acceder al conector. El siguiente ejemplo contiene los detalles de este rol, por si desea realizar las tareas del tutorial.

El siguiente ejemplo concede los permisos necesarios para acceder a nuestros dos buckets en Amazon S3 y al secreto denominado aws/transfer/sftp-connector1 almacenado en Secrets Manager. En el tutorial, este rol recibe un nombresftp-connector-role.

{ "Version":"2012-10-17", "Statement": [ { "Sid": "AllowListingOfUserFolder", "Action": [ "s3:ListBucket", "s3:GetBucketLocation" ], "Effect": "Allow", "Resource": [ "arn:aws:s3:::sftp-server-storage-east", "arn:aws:s3:::sftp-server-storage-east" ] }, { "Sid": "HomeDirObjectAccess", "Effect": "Allow", "Action": [ "s3:PutObject", "s3:GetObject", "s3:DeleteObject", "s3:DeleteObjectVersion", "s3:GetObjectVersion", "s3:GetObjectACL", "s3:PutObjectACL" ], "Resource": [ "arn:aws:s3:::sftp-server-storage-east/*", "arn:aws:s3:::sftp-server-storage-east/*" ] }, { "Sid": "GetConnectorSecretValue", "Effect": "Allow", "Action": [ "secretsmanager:GetSecretValue" ], "Resource": "arn:aws:secretsmanager:us-east-1:111122223333:secret:aws/transfer/sftp-connector1-6RandomCharacters" } ] }

Para obtener información completa sobre la creación de roles para Transfer Family, siga el procedimiento descrito en Creación de un rol de usuario Para crear un rol.