Configure SFTP los conectores - 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 SFTP los conectores

En este tema se describe cómo crear SFTP conectores, 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.

Cree un SFTP conector

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

Console
Para crear un SFTP conector
  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 SFTPel tipo de conector para crear un SFTP conector y, a continuación, elija Siguiente.

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

    • Para el URL, introduzca el URL para un SFTP servidor remoto. URLDebe estar formateado comosftp://partner-SFTP-server-url, por ejemplosftp://AnyCompany.com.

      nota

      Si lo desea, puede proporcionar un número de puerto en suURL. 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 ARN el secreto. ARNContiene el nombre secreto, pero lo añade con seis caracteres alfanuméricos aleatorios. Un ARN formulario 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 el 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 le ahorrará trabajo si quiere reutilizar el mismo IAM rol 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 puedes guardar los secretos que contengan tus SFTP credenciales en otro Cuenta de AWS. Para obtener más información sobre cómo habilitar el acceso secreto entre cuentas, consulta Permisos a los AWS Secrets Manager secretos para los usuarios de otra cuenta.

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

      { "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 la sección SFTPConfiguración, proporcione la siguiente información:

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

    • 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 ssh-keyscan comando en el SFTP servidor 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. (Opcional) En la sección Etiquetas, para Clave y Valor, escriba una o varias etiquetas como pares clave-valor.

  7. Una vez que haya confirmado todos los ajustes, elija Crear conector para crear el SFTP conector. Si el conector se ha creado correctamente, aparecerá 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 un SFTP conector se ha creado correctamente. 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 de conectores, con el ID del nuevo SFTP conector agregado a la lista. Para ver los detalles de los conectores, consulte Vea los detalles SFTP del conector.

CLI

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

  • El URL para un SFTP servidor remoto. URLDebe estar formateado comosftp://partner-SFTP-server-url, por ejemplosftp://AnyCompany.com.

  • Ver Acceso de roles. Elija el nombre del recurso de Amazon (ARN) del rol 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 ARN el secreto. ARNContiene el nombre secreto, pero lo añade con seis caracteres alfanuméricos aleatorios. Un ARN formulario 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 el 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 le ahorrará trabajo si quiere reutilizar el mismo IAM rol 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 puedes guardar los secretos que contengan tus SFTP credenciales en otro Cuenta de AWS. Para obtener más información sobre cómo habilitar el acceso secreto entre cuentas, consulta Permisos a los AWS Secrets Manager secretos para los usuarios de otra cuenta.

  • (Opcional) Elija la IAM función 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 SFTP conectores.

    { "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 SFTP de configuración.

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

    • 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 SFTP información 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=" ] }
nota

SecretIdPuede ser el nombre completo ARN o el nombre del secreto (example-username-key en el listado 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

SFTPalgoritmos de conector

Al crear un SFTP conector, se adjuntan los siguientes algoritmos de seguridad al conector.

Tipo Algoritmo
SSHcifrar

aes256-gcm@openssh.com

aes128-gcm@openssh.com

aes256-ctr

aes192-ctr

SSHmétodo de intercambio de claves () KEX

curva 25519-sha256

curve25519-sha256@libssh.org

diffie-hellman-group16-sha512

diffie-hellman-group18-sha512

diffie-hellman-group-exchange-sha256

SSH MAC

hmac-sha2-512-etm@openssh.com

hmac-sha2-256-etm@openssh.com

hmac-sha2-512

hmac-sha2-256

SSHclave de host

ecdsa-sha2-nistp256

ecdsa-sha2-nistp384

ecdsa-sha2-nistp521

rsa-sha2-512

rsa-sha2-256

Guarde un secreto para usarlo con un SFTP conector

Puede usar Secrets Manager para almacenar las credenciales de usuario de sus SFTP conectores. 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 información, consulte Cuotas para SFTP conectores.

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.

Para almacenar las credenciales de usuario en Secrets Manager para un SFTP conector
  1. Inicie sesión en AWS Management Console 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: 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 SFTP del conector, 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 SFTP servidor remoto.

  8. Elija 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 SFTP del conector

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

Por ejemplo, para generar una clave privada para utilizarla con SFTP conectores, el siguiente comando de ejemplo produce el tipo de clave correcto (sustituir key_name con el nombre de archivo real de su key pair):

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

Al crear el key pair para usarlo con SFTP conectores, no utilice una contraseña. Es necesaria una contraseña vacía para que la configuración funcione correctamente. SFTP

Este comando crea un par de RSA claves, con un tamaño de clave de 4096 bits. La clave se genera en el PEM formato antiguo, que Transfer Family requiere para su uso con el secreto SFTP del conector. 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 SSH formato Open (-----BEGIN OPENSSH PRIVATE KEY-----) para las claves utilizadas en el SFTP conector. La clave debe estar en PEMformato 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 (»\n«) incrustados en el formato. JSON

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

jq command

En este ejemplo, se utiliza el jq comando, que se puede descargar en 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
Para agregar datos de clave privada al secreto para usarlos con SFTP los conectores
  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 SFTP conector en el paso 8 y sígalo hasta el final.

Pruebe un SFTP conector

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

Para probar un SFTP conector
  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 SFTP conector seleccionado, y la acción Probar conexió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 SFTP conector, que muestra una prueba satisfactoria.
El panel de conexión de prueba del SFTP conector muestra una prueba fallida: el mensaje de error indica que la función de acceso del conector es incorrecta.
nota

Para utilizar el API para probar el conector, consulte la TestConnectionAPIdocumentación.