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.
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
-
Abra la AWS Transfer Family consola en https://console.aws.amazon.com/transfer/.
-
En el panel de navegación izquierdo, seleccione Conectores y, a continuación, seleccione Crear conector.
-
Elija SFTPel tipo de conector para crear un SFTP conector y, a continuación, elija Siguiente.
-
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
.
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.
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
"
}
]
}
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/*"
]
}]
}
-
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.
-
(Opcional) En la sección Etiquetas, para Clave y Valor, escriba una o varias etiquetas como pares clave-valor.
-
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.
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.
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
"
}
]
}
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=
"
]
}
SecretId
Puede 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.
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
-
Inicie sesión en AWS Management Console y abra la AWS Secrets Manager consola en https://console.aws.amazon.com/secretsmanager/.
-
En el panel de navegación izquierdo, seleccione Secretos.
-
En la página Secretos, seleccione Almacenar un nuevo secreto.
-
En la página Seleccionar tipo de secreto, en Tipo de secreto, seleccione Otro tipo de secreto.
-
En la sección de Pares clave-valor, seleccione la pestaña Clave/valor.
-
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.
-
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.
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.
-
Elija Next (Siguiente).
-
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
.
-
Seleccione Siguiente y, a continuación, acepte los valores predeterminados de la página Configurar rotación. A continuación, elija Siguiente.
-
En la página de Revisión, elija Guardar para crear y almacenar el secreto.
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 ""
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.
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
-
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, {}.
-
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
"}
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.
-
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.
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.
Para utilizar el API para probar el conector, consulte la TestConnectionAPIdocumentación.