Quero que meu servidor AWS Transfer Family em minha conta da AWS acesse um sistema de arquivos Amazon Elastic File System (Amazon EFS) em outra conta. Também quero configurar meu servidor Transfer Family com acesso entre contas ao sistema de arquivos do Amazon EFS.
Resolução
Observação: se você receber erros ao executar comandos da AWS CLI, consulte Solução de problemas da AWS CLI. Além disso, verifique se você está usando a versão mais recente da AWS CLI.
Para configurar seu servidor Transfer Family, crie um perfil do AWS Identity and Access Management (AWS IAM) na conta A com acesso ao sistema de arquivos na conta B. Em seguida, crie um usuário do servidor do Transfer Family configurado com o perfil do IAM na conta A. Verifique se o usuário do servidor do Transfer Family na conta A pode acessar o sistema de arquivos na conta B.
Observação: o console do AWS Transfer Family mostra somente o sistema de arquivos do Amazon EFS que está na mesma conta. Para usar seu servidor Transfer Family com um sistema de arquivos que está em outra conta, use a AWS CLI ou um SDK da AWS.
Crie um perfil do IAM na conta A com acesso ao sistema de arquivos
Crie um perfil do IAM para os usuários do seu servidor. Para a política do IAM do perfil, use a seguinte declaração 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"
}
]
}
Adicione uma política no sistema de arquivos para a conta B que dê permissão ao perfil do IAM da conta 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"
}
Crie um usuário do servidor Transfer Family com o perfil do IAM na conta A
Execute o seguinte comando create-user da AWS CLI para criar um usuário 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"
O comando retorna a ID do servidor e o nome de usuário.
Exemplo de saída:
{
"ServerId": "MY_SERVER_ID",
"UserName": "MY_SERVER_USER_NAME"
}
Verifique se o usuário do servidor Transfer Family na conta A consegue acessar o sistema de arquivos na conta B
Conclua as etapas a seguir:
-
Conecte-se ao seu servidor como o usuário que você criou. É possível executar o seguinte comando sftp OpenSSH para se conectar:
sftp -i myserveruser MY_SERVER_USER_NAME@MY_SERVER_ID.server.transfer.us-east-1.amazonaws.com
-
Liste o diretório inicial do bucket. Se você usa o OpenSSH, execute o comando ls:
ls
Se o comando retornar o diretório inicial, o usuário do servidor terá acesso entre contas ao sistema de arquivos do Amazon EFS.
Informações relacionadas
Crie um servidor compatível com SFTP
Criar políticas de sistema de arquivos
Como configurar meu servidor do AWS Transfer Family para usar um bucket do Amazon S3 que está em outra conta da AWS?
Configurando o acesso entre contas para Transfer Family