Quiero que el servidor de AWS Transfer Family de mi cuenta de AWS acceda a un sistema de archivos de Amazon Elastic File System (Amazon EFS) en otra cuenta. También quiero configurar mi servidor de Transfer Family con acceso entre cuentas al sistema de archivos de Amazon EFS.
Solución
Nota: Si se muestran errores al poner en marcha comandos de AWS CLI, consulta Solución de errores de AWS CLI. Además, asegúrate de utilizar la versión más reciente de AWS CLI.
Para configurar el servidor de Transfer Family, crea un rol de AWS Identity and Access Management (IAM) en la cuenta A con acceso al sistema de archivos de la cuenta B. A continuación, crea un usuario del servidor de Transfer Family que esté configurado con el rol de IAM en la cuenta A. Comprueba que el usuario del servidor de Transfer Family de la cuenta A puede acceder al sistema de archivos de la cuenta B.
Nota: La consola de AWS Transfer Family muestra solo el sistema de archivos de Amazon EFS que está en la misma cuenta. Para usar tu servidor de Transfer Family con un sistema de archivos que está en otra cuenta, utiliza la AWS CLI o un AWS SDK.
Creación de un rol de IAM en la cuenta A con acceso al sistema de archivos
Crea un rol de IAM para los usuarios de tu servidor. Para la política de IAM del rol, utiliza la siguiente instrucción de política:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "RootFileSystemAccess",
"Effect": "Allow",
"Action": [
"elasticfilesystem:ClientRootAccess",
"elasticfilesystem:ClientMount",
"elasticfilesystem:ClientWrite"
],
"Resource": "arn:aws:elasticfilesystem:region:accountB-id:file-system/file-system-id"
}
]
}
Agrega una política en el sistema de archivos para la cuenta B que otorgue permiso al rol de IAM desde la cuenta A:
{
"Sid": "EFS-TransferFamily",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::AccounA-id:role/RoleName"
},
"Action": [
"elasticfilesystem:ClientRootAccess",
"elasticfilesystem:ClientWrite",
"elasticfilesystem:ClientMount"
],
"Resource": "arn:aws:elasticfilesystem:region:accountB-id:file-system/file-system-id"
}
Creación de un usuario de servidor de Transfer Family con el rol de IAM en la cuenta A
Ejecuta el siguiente comando create-user de la AWS CLI para crear un usuario de Transfer Family:
aws transfer create-user --user-name "sftp" --server-id "SERVER-ID" --role "arn:aws:iam::accountA-id:role/RoleName" --home-directory "/file-system-id/username"
El comando devuelve el ID del servidor y el nombre de usuario.
Resultado de ejemplo:
{
"ServerId": "MY_SERVER_ID",
"UserName": "MY_SERVER_USER_NAME"
}
Comprobar que el usuario del servidor de Transfer Family de la cuenta A pueda acceder al bucket de la cuenta B
Sigue estos pasos:
-
Conéctate al servidor con el usuario que has creado. Puedes ejecutar el siguiente comando sftp de OpenSSH para conectarte:
sftp -i myserveruser MY_SERVER_USER_NAME@MY_SERVER_ID.server.transfer.us-east-1.amazonaws.com
-
Enumera el directorio principal del bucket. Si usas OpenSSH, ejecuta el comando ls:
ls
Si el comando devuelve el directorio principal, el usuario del servidor tiene acceso entre cuentas al sistema de archivos de Amazon EFS.
Información relacionada
Creación de un servidor con SFTP
Creación de políticas de sistemas de archivos
¿Cómo configuro mi servidor de AWS Transfer Family para usar un bucket de Amazon S3 que se encuentra en otra cuenta de AWS?
Configuración del acceso entre cuentas para Transfer Family