首先,我在 S3 中创建了一个简单的存储桶。
之后,我在 AWS SFTP 传输服务中创建了一个服务器https://aws.amazon.com/sftp/。
然后,我出于测试目的在 AWS SFTP 内部创建了一个新用户,并附加了具有AdministratorAccess
策略的角色。
最后,我尝试使用 sftp 终端命令进行连接。连接成功。但是当我在服务器上时,我无法执行任何 sftp 命令。例如:
sftp> dir
Couldn't read directory: Failure
为什么我无法在服务器上执行任何 SFTP 命令?
答案1
我也遇到了这个问题。请参考文章这里了解详情。
但最有可能的是角色设置错误。请注意,您不仅要设置具有 S3 存储桶访问权限的角色。例如像这样
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:ListAllMyBuckets",
"s3:GetBucketLocation"
],
"Resource": "*"
},
{
"Effect": "Allow",
"Action": "s3:ListBucket",
"Resource": "arn:aws:s3:::data-transfer-inbound"
},
{
"Effect": "Allow",
"Action": "s3:*",
"Resource": "arn:aws:s3:::data-transfer-inbound/jeff/*"
}
]
}
您还必须为该角色设置受信任的实体(委托人)。在这种情况下,委托人应该是transfer.amazonaws.com
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Service": "transfer.amazonaws.com"
},
"Action": "sts:AssumeRole"
}
]
}
您可以将上述内容放在角色的“信任关系”选项卡中。