После настройки SFTP-сервера AWS (общедоступные, управляемые пользователями службы) мой пользователь не может получить доступ к домашней папке на SFTP-сервере AWS.
Я настроил SFTP-сервер AWS, выполнив следующие действия. эти инструкции ( здесь ).
Я создал роль + политику, следуя этим инструкциям ( здесь ).
Я настроил корзину S3 с каталогом "Home", который соответствует выбранному имени пользователя( здесь ). Я также отключил блокировку всего публичного доступа.
Я настроил SFTP-сервер с соответствующими артефактами:
- S3 bucket + Домашний каталог
- Пользователь
- Роль + политика
Но кое-что из политики «роль +», которую я настроил для пользователя SFTP, не дает пользователю доступ к его папке / хранилищу S3. Т.е. политика IAM не применяет ожидаемые разрешения к домашнему каталогу пользователя SFTP. Это ошибка, которую я получаю от sftp ( A ).
Проверка того, что пользователь SFTP также дает мне правильную роль, домашний каталог и политику ( B ).
Чего здесь не хватает, что даст пользователю SFTP только егодомашний каталог?
A
λ sftp -i my_key_pair my-user@sftp.my.domain
Enter passphrase for key 'my_key_pair':
Connected to my-user@sftp.my.domain.
sftp>
sftp> ls
remote readdir("/s3-bucket/my-home-dir"): Permission denied
sftp>
sftp> put foobar.txt input/
Uploading foobar.txt to /s3-bucket/my-home-dir/input/
remote open("/s3-bucket/my-home-dir/input/"): Permission denied
sftp>
B
λ AWS_ACCESS_KEY_ID=FOO \
AWS_SECRET_ACCESS_KEY=BAR \
aws --region us-east-2 transfer describe-user --server-id my-server --user-name my-user
{
"ServerId": "my-server",
"User": {
"UserName": "my-user",
"Tags": [],
"SshPublicKeys": [
{
...
}
],
"Role": "arn:aws:iam::123456789:role/my-role",
"HomeDirectory": "/s3-bucket/my-home-dir/",
"Policy":
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AllowListingOfUserFolder",
"Action": [
"s3:ListBucket"
],
"Effect": "Allow",
"Resource": [
"arn:aws:s3:::${transfer:HomeBucket}"
],
"Condition": {
"StringLike": {
"s3:prefix": [
"${transfer:HomeFolder}/*",
"${transfer:HomeFolder}"
]
}
}
},
{
"Sid": "HomeDirObjectAccess",
"Effect": "Allow",
"Action": [
"s3:PutObject",
"s3:GetObject",
"s3:DeleteObjectVersion",
"s3:DeleteObject",
"s3:GetObjectVersion",
"s3:GetObjectACL",
"s3:PutObjectACL"
],
"Resource": "arn:aws:s3:::${transfer:HomeDirectory}*"
}
]
}
,
"Arn": "arn:aws:transfer:us-east-2:12345687:user/my-server/my-user"
}
}