Прежде всего, я создал простую корзину в S3.
После этого я создал сервер в сервисе AWS SFTP Transfer. https://aws.amazon.com/sftp/.
Затем я создал нового пользователя внутри AWS SFTP для тестовых целей и прикрепил к нему роль с AdministratorAccess
политика к нему.
Наконец, я попытался подключиться с помощью команды терминала sftp. Он успешно подключается. Но когда я нахожусь на сервере, я не могу выполнять ни одну из команд sftp. Например:
sftp> dir
Couldn't read directory: Failure
Почему я не могу выполнить ни одну команду SFTP на сервере?
Я тоже столкнулся с этим. Пожалуйста, обратитесь к статье Вот для подробностей.
Но скорее всего это неправильная установка роли. Имейте в виду, что вам нужно не только настроить роль с доступом к корзине 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"
}
]
}
В роли вы можете поместить вышеуказанное на вкладке «Доверительные отношения».