Configure los 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.

Configure los conectores SFTP

En este tema se describe cómo crear conectores SFTP, los algoritmos de seguridad asociados a ellos, cómo almacenar un secreto para guardar las credenciales, detalles sobre el formato de la clave privada e instrucciones para probar los conectores.

Creación de un Conector SFTP

En este procedimiento se explica cómo crear conectores SFTP mediante la AWS Transfer Family consola o. AWS CLI

Console
Creación 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, seleccione Conectores y, a continuación, seleccione Crear conector.

  3. Elija SFTP como tipo de conector para crear un conector SFTP y, a continuación, elija Siguiente.

    La consola Transfer Family, que muestra la página Crear conector, donde se elige el tipo de conector. Se selecciona SFTP.
  4. En la sección de Configuración del conector, proporcione la siguiente información:

    • Para la URL, introduzca la URL de un servidor SFTP remoto. Esta URL debe tener el siguiente formato como sftp://partner-SFTP-server-url, por ejemplo, sftp://AnyCompany.com.

      nota

      También tiene la posibilidad de proporcionar un número de puerto en su URL. El formato es sftp://partner-SFTP-server-url:port-number. El número de puerto predeterminado (cuando no se especifica ningún puerto) es el puerto 22.

    • Para la función de acceso, elija el nombre de recurso de Amazon (ARN) de la función AWS Identity and Access Management (IAM) que se va a utilizar.

      • Asegúrese de que este rol proporcione acceso de lectura y escritura al directorio principal de la ubicación del archivo que se utiliza en la solicitud StartFileTransfer.

      • Asegúrese de que este rol dé permiso a secretsmanager:GetSecretValue para acceder al secreto.

        nota

        En la política, debe especificar el ARN del secreto. El ARN contiene el nombre secreto, pero lo añade con seis caracteres alfanuméricos aleatorios. El ARN de un secreto tiene el siguiente formato.

        arn:aws:secretsmanager:region:account-id:secret:aws/transfer/SecretName-6RandomCharacters
      • Asegúrese de que contiene una relación de confianza que permita que el conector tenga acceso a los recursos cuando atienda las solicitudes de transferencia de sus usuarios. Para obtener más información sobre cómo establecer una relación de confianza, consulte Para establecer una relación de confianza.

      El siguiente ejemplo concede los permisos necesarios para acceder al DOC-EXAMPLE-BUCKET en Amazon S3 y al secreto especificado almacenado en Secrets Manager.

      { "Version": "2012-10-17", "Statement": [ { "Sid": "AllowListingOfUserFolder", "Action": [ "s3:ListBucket", "s3:GetBucketLocation" ], "Effect": "Allow", "Resource": [ "arn:aws:s3:::DOC-EXAMPLE-BUCKET" ] }, { "Sid": "HomeDirObjectAccess", "Effect": "Allow", "Action": [ "s3:PutObject", "s3:GetObject", "s3:DeleteObject", "s3:DeleteObjectVersion", "s3:GetObjectVersion", "s3:GetObjectACL", "s3:PutObjectACL" ], "Resource": "arn:aws:s3:::DOC-EXAMPLE-BUCKET/*" }, { "Sid": "GetConnectorSecretValue", "Effect": "Allow", "Action": [ "secretsmanager:GetSecretValue" ], "Resource": "arn:aws:secretsmanager:region:account-id:secret:aws/transfer/SecretName-6RandomCharacters" } ] }
      nota

      Para el rol de acceso, el ejemplo concede acceso a un único secreto. Sin embargo, puede utilizar un carácter comodín, que puede ahorrarle trabajo si quiere reutilizar el mismo rol de IAM para varios usuarios y secretos. Por ejemplo, la siguiente declaración de recursos concede permisos para todos los secretos cuyos nombres comiencen por aws/transfer.

      "Resource": "arn:aws:secretsmanager:region:account-id:secret:aws/transfer/*"

      También puede almacenar los secretos que contengan sus credenciales de SFTP en otra Cuenta de AWS. Para obtener más información sobre cómo habilitar el acceso secreto entre cuentas, consulte Permisos a los AWS Secrets Manager secretos para los usuarios de otra cuenta.

    • (Opcional) Para la función de registro, elige la función de IAM para que el conector la utilice para enviar eventos a tus CloudWatch registros. En el siguiente ejemplo de política, se enumeran los permisos necesarios para registrar eventos en los conectores SFTP.

      { "Version": "2012-10-17", "Statement": [{ "Sid": "SFTPConnectorPermissions", "Effect": "Allow", "Action": [ "logs:CreateLogStream", "logs:DescribeLogStreams", "logs:CreateLogGroup", "logs:PutLogEvents" ], "Resource": [ "arn:aws:logs:*:*:log-group:/aws/transfer/*" ] }] }
  5. En el panel Configuración SFTP, proporcione la siguiente información:

    • Para las credenciales de Connector, en la lista desplegable, elija el nombre de un identificador secreto AWS Secrets Manager que contenga la clave privada o la contraseña del usuario de SFTP. Debe crear un secreto y almacenarlo de una manera específica. Para más detalles, consulte Guarde un secreto para usarlo con un conector SFTP.

    • En el caso de las claves de host de confianza, pegue la parte pública de la clave de host que se utiliza para identificar el servidor externo. Para añadir más de una clave, seleccione Añadir clave de host de confianza para añadir una clave adicional. Puede utilizar el comando ssh-keyscan en el servidor SFTP para recuperar la clave necesaria. Para obtener más información sobre el formato y el tipo de claves de host de confianza compatibles con Transfer Family, consulte SFTPConnectorConfig.

  6. En la sección Opciones de algoritmos criptográficos, elija una política de seguridad de la lista desplegable del campo Política de seguridad. La política de seguridad le permite seleccionar los algoritmos criptográficos que admite su conector. Para obtener más información sobre las políticas y los algoritmos de seguridad disponibles, consultePolíticas AWS Transfer Family de seguridad para conectores SFTP.

  7. (Opcional) En la sección Etiquetas, para Clave y Valor, escriba una o varias etiquetas como pares clave-valor.

  8. Una vez que haya confirmado todos los ajustes, elija Crear conector para crear el conector SFTP. Si el conector se ha creado correctamente, aparece una pantalla con una lista de las direcciones IP estáticas asignadas y un botón de prueba de conexión. Utilice el botón para probar la configuración del nuevo conector.

    La pantalla de creación de conectores que aparece cuando se ha creado correctamente un conector SFTP. Contiene un botón para probar la conexión y una lista de las direcciones IP estáticas administradas por el servicio de este conector.

Aparece la página Conectores, con el ID del nuevo conector SFTP agregado a la lista. Para ver los detalles de los conectores, consulte Ver los detalles del conector SFTP.

CLI

Utilice el comando create-connector para crear un conector. Para utilizar este comando para crear un conector SFTP, debe proporcionar la siguiente información.

  • La dirección URL de un servidor SFTP remoto. Esta URL debe tener el siguiente formato como sftp://partner-SFTP-server-url, por ejemplo, sftp://AnyCompany.com.

  • Ver Acceso de roles. Seleccione el nombre de recurso de Amazon (ARN) del rol de AWS Identity and Access Management (IAM) que desee utilizar.

    • Asegúrese de que este rol proporcione acceso de lectura y escritura al directorio principal de la ubicación del archivo que se utiliza en la solicitud StartFileTransfer.

    • Asegúrese de que este rol dé permiso a secretsmanager:GetSecretValue para acceder al secreto.

      nota

      En la política, debe especificar el ARN del secreto. El ARN contiene el nombre secreto, pero lo añade con seis caracteres alfanuméricos aleatorios. El ARN de un secreto tiene el siguiente formato.

      arn:aws:secretsmanager:region:account-id:secret:aws/transfer/SecretName-6RandomCharacters
    • Asegúrese de que contiene una relación de confianza que permita que el conector tenga acceso a los recursos cuando atienda las solicitudes de transferencia de sus usuarios. Para obtener más información sobre cómo establecer una relación de confianza, consulte Para establecer una relación de confianza.

    El siguiente ejemplo concede los permisos necesarios para acceder al DOC-EXAMPLE-BUCKET en Amazon S3 y al secreto especificado almacenado en Secrets Manager.

    { "Version": "2012-10-17", "Statement": [ { "Sid": "AllowListingOfUserFolder", "Action": [ "s3:ListBucket", "s3:GetBucketLocation" ], "Effect": "Allow", "Resource": [ "arn:aws:s3:::DOC-EXAMPLE-BUCKET" ] }, { "Sid": "HomeDirObjectAccess", "Effect": "Allow", "Action": [ "s3:PutObject", "s3:GetObject", "s3:DeleteObject", "s3:DeleteObjectVersion", "s3:GetObjectVersion", "s3:GetObjectACL", "s3:PutObjectACL" ], "Resource": "arn:aws:s3:::DOC-EXAMPLE-BUCKET/*" }, { "Sid": "GetConnectorSecretValue", "Effect": "Allow", "Action": [ "secretsmanager:GetSecretValue" ], "Resource": "arn:aws:secretsmanager:region:account-id:secret:aws/transfer/SecretName-6RandomCharacters" } ] }
    nota

    Para el rol de acceso, el ejemplo concede acceso a un único secreto. Sin embargo, puede utilizar un carácter comodín, que puede ahorrarle trabajo si quiere reutilizar el mismo rol de IAM para varios usuarios y secretos. Por ejemplo, la siguiente declaración de recursos concede permisos para todos los secretos cuyos nombres comiencen por aws/transfer.

    "Resource": "arn:aws:secretsmanager:region:account-id:secret:aws/transfer/*"

    También puede almacenar los secretos que contengan sus credenciales de SFTP en otra Cuenta de AWS. Para obtener más información sobre cómo habilitar el acceso secreto entre cuentas, consulte Permisos a los AWS Secrets Manager secretos para los usuarios de otra cuenta.

  • (Opcional) Elija la función de IAM que utilizará el conector para enviar eventos a sus CloudWatch registros. En el siguiente ejemplo de política, se enumeran los permisos necesarios para registrar eventos en los conectores SFTP.

    { "Version": "2012-10-17", "Statement": [{ "Sid": "SFTPConnectorPermissions", "Effect": "Allow", "Action": [ "logs:CreateLogStream", "logs:DescribeLogStreams", "logs:CreateLogGroup", "logs:PutLogEvents" ], "Resource": [ "arn:aws:logs:*:*:log-group:/aws/transfer/*" ] }] }
  • Proporcione la siguiente información de configuración de SFTP.

    • El ARN de un secreto AWS Secrets Manager que contiene la clave privada o la contraseña del usuario de SFTP.

    • La parte pública de la clave de host que se utiliza para identificar el servidor externo. Si lo desea, puede proporcionar varias claves de host de confianza.

    La forma más sencilla de proporcionar la información del SFTP es guardarla en un archivo. Por ejemplo, copie el siguiente texto de ejemplo en un archivo denominado testSFTPConfig.json.

    // Listing for testSFTPConfig.json { "UserSecretId": "arn:aws::secretsmanager:us-east-2:123456789012:secret:aws/transfer/example-username-key", "TrustedHostKeys": [ "sftp.example.com ssh-rsa AAAAbbbb...EEEE=" ] }
  • Especifique una política de seguridad para el conector e introduzca el nombre de la política de seguridad.

nota

SecretIdPuede ser el ARN completo o el nombre del secreto (example-username-keyen la lista anterior).

Ejecute el siguiente comando para crear el conector.

aws transfer create-connector --url "sftp://partner-SFTP-server-url" \ --access-role your-IAM-role-for-bucket-access \ --logging-role arn:aws:iam::your-account-id:role/service-role/AWSTransferLoggingAccess \ --sftp-config file:///path/to/testSFTPConfig.json --security-policy-name security-policy-name

Guarde un secreto para usarlo con un conector SFTP

Puede usar Secrets Manager para almacenar las credenciales de usuario de los conectores SFTP. Al crear el secreto, debe proporcionar un nombre de usuario. Además, puede proporcionar una contraseña, una clave privada o ambas. Para obtener más detalles, consulte Cuotas para conectores SFTP.

nota

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

Almacenamiento de las credenciales de usuario en Secrets Manager para un conector SFTP
  1. Inicie sesión en la AWS Secrets Manager consola AWS Management Console y ábrala 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: introduzca Username.

    • valor: introduzca el nombre del usuario que está autorizado a conectarse al servidor del socio.

  6. Si desea proporcionar una contraseña, seleccione Añadir fila y, en la sección Pares clave/valor, elija la pestaña Clave/valor.

    Seleccione Añadir fila y, en la sección Pares clave/valor, elija la pestaña Clave/valor.

    • Clave: introduzca Password.

    • valor: introduzca una contraseña para el usuario.

  7. Si desea proporcionar una clave privada, consulte Genere y formatee la clave privada del conector SFTP, que describe cómo introducir los datos de la clave privada.

    nota

    Los datos de la clave privada que introduzca deben corresponder a la clave pública que está almacenada para este usuario en el servidor SFTP remoto.

  8. Seleccione Next (Siguiente).

  9. En la página Configurar secreto, introduzca un nombre y una descripción para el secreto. Se recomienda utilizar un prefijo de aws/transfer/ para el nombre. Por ejemplo, puede dar un nombre a su secreto de aws/transfer/connector-1.

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

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

Genere y formatee la clave privada del conector SFTP

Los detalles completos para generar un key pair de claves pública/privada se describen en. Creación de claves SSH en macOS, Linux o Unix

Por ejemplo, para generar una clave privada para utilizarla con conectores SFTP, el siguiente comando de ejemplo produce el tipo de clave correcto (sustituya key_name por el nombre de archivo real del par de claves):

ssh-keygen -t rsa -b 4096 -m PEM -f key_name -N ""
nota

Cuando cree su key pair para usarlo con conectores SFTP, no utilice una contraseña. Es necesaria una contraseña vacía para que la configuración de SFTP funcione correctamente.

Este comando crea un key pair RSA, con un tamaño de clave de 4096 bits. La clave se genera en el formato PEM heredado, que Transfer Family requiere para su uso con el secreto del conector SFTP. Las claves se guardan en key_name (clave privada) y key_name.pub (clave pública) en el directorio actual, es decir, en el directorio en el que se ejecuta el ssh-keygen comando.

nota

Transfer Family no admite el formato OpenSSH -----BEGIN OPENSSH PRIVATE KEY----- () para las claves utilizadas en el conector SFTP. La clave debe estar en formato PEM antiguo (-----BEGIN RSA PRIVATE KEY----- o -----BEGIN EC PRIVATE KEY-----). Puede utilizar la herramienta ssh-keygen para convertir la clave, proporcionando la opción de -m PEM al ejecutar el comando.

Después de generar la clave, debe asegurarse de que la clave privada esté formateada con caracteres de nueva línea incrustados (»\n«) en formato JSON.

Usa un comando para convertir tu clave privada existente al formato correcto: formato JSON con caracteres de nueva línea incrustados. A continuación, se proporcionan ejemplos de Powershell. jq Puedes usar cualquier herramienta o comando para convertir la clave privada al formato JSON con caracteres de nueva línea incrustados.

jq command

En este ejemplo, se usa el jq comando, que se puede descargar desde Download jq.

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

Por ejemplo, si el archivo de clave privada se encuentra en~/.ssh/my_private_key, el comando es el siguiente.

jq -sR . ~/.ssh/my_private_key

Esto devuelve la clave en el formato correcto (con caracteres de nueva línea incrustados) a la salida estándar.

PowerShell

Si utiliza Windows, puede utilizarlo PowerShell para convertir la clave al formato correcto. El siguiente comando de Powershell convierte la clave privada al formato correcto.

Get-Content -Raw path-to-private-key-file | ConvertTo-Json
Cómo añadir datos de clave privada al secreto para su uso con los conectores SFTP
  1. En la consola de Secrets Manager, cuando guarde Otro tipo de secreto, seleccione la pestaña Texto sin formato. El texto debe estar vacío, con solo una llave de apertura y cierre, {}.

  2. Pegue su nombre de usuario, datos de clave privada o contraseña con el siguiente formato. Para sus datos de la clave privada, pegue el resultado del comando que ejecutó en el paso 1.

    {"Username":"SFTP-USER","Password":"SFTP-USER-PASSWORD","PrivateKey":"PASTE-PRIVATE-KEY-DATA-HERE"}
    El secreto en texto plano, que muestra el texto de muestra.

    Si pega los datos de la clave privada correctamente, debería ver lo siguiente al seleccionar la pestaña Clave/valor. Observe que los datos de la clave privada se muestran line-by-line en lugar de mostrarse como una cadena continua de texto.

    El secreto que muestra los detalles en la pestaña clave/valor.
  3. Continúe con el procedimiento en Guarde un secreto para usarlo con un conector SFTP en el paso 8 y sígalo hasta el final.

Prueba de un conector SFTP

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

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, seleccione Conectores 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.
nota

Para usar la API para probar el conector, consulte la documentación de la API de TestConnection.