连接到 AWS SFTP 传输服务器时无法执行命令

连接到 AWS SFTP 传输服务器时无法执行命令

首先,我在 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"
    }
  ]
}

您可以将上述内容放在角色的“信任关系”选项卡中。

相关内容