Семейство AWS SFTP Transfer — политики сеансов
Я настроил SFTP-сервер AWS с настраиваемым поставщиком идентификаторов шлюза API. Пользователь создается как SFTP/имя пользователя в диспетчере секретов со следующими парами ключей и значений —
Password: <passwordvalue>
Role: <roleARN> // roleARN policy is as follows
HomeDirectory: /<s3bucketname>/<username>
Политика roleARN выглядит следующим образом :
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AllowUserToSeeBucketContents",
"Effect": "Allow",
"Action": [
"s3:ListBucket",
"s3:ListAllMyBuckets",
"s3:ListBucketVersions",
"s3:GetBucketLocation"
],
"Resource": "arn:aws:s3:::<s3bucketname>"
},
{
"Sid": "AllUserReadAccessInUserFolder",
"Effect": "Allow",
"Action": [
"s3:ListBucket",
"s3:GetObject"
],
"Resource": [
"arn:aws:s3:::<s3bucketname>/<username>/*"
]
},
{
"Sid": "AllUserFullAccessForToFolders",
"Effect": "Allow",
"Action": [
"s3:PutObject",
"s3:GetObject",
"s3:DeleteObject"
],
"Resource": [
"arn:aws:s3:::<s3bucketname>/<username>/To/*"
]
},
{
"Sid": "AllUserReadAccessForFromFolders",
"Effect": "Allow",
"Action": [
"s3:GetObject"
],
"Resource": [
"arn:aws:s3:::<s3bucketname>/<username>/From/*"
]
},
{
"Sid": "DenyUserFromDeletingStandardFolders",
"Action": [
"s3:DeleteObject"
],
"Effect": "Deny",
"Resource": [
"arn:aws:s3:::<s3bucketname>/<username>/To/",
"arn:aws:s3:::<s3bucketname>/<username>/From/"
]
}
]
}
С текущей политикой у меня есть правильные разрешения для определенного пользователя, и разрешения/доступ работают, как и ожидалось, но проблема заключается в жестко запрограммированном пользователе в политике.
Теперь мне нужно создать еще одного пользователя для SFTP в диспетчере секретов, и я ожидал использовать ту же роль IAM, что и для первого пользователя. Я обнаружил, что этого можно достичь с помощью политик сеанса ( https://docs.aws.amazon.com/transfer/latest/userguide/users-policies.html ), что я могу использовать одну и ту же роль/политику для нескольких пользователей sftp в диспетчере секретов. . Но мне трудно заставить его работать.
Когда я заменяю в политике - s3bucketname на ${transfer:HomeBucket} и связанные значения, как указано в ссылке политик сеанса выше, - я ожидал, что это сработает, но я продолжал сталкиваться с проблемами отказа в доступе при попытке перечислить s3 содержимое корзины через SFTP-клиент.
Может кто-нибудь помочь мне понять, что мне здесь не хватает, любая помощь очень ценится.
1 ответ
Узнал, что мне нужно использоватьHomeDirectoryDetails
вместоHomeDirectory
логический каталог — https://aws.amazon.com/blogs/storage/simplify-your-aws-sftp-structure-with-chroot-and-logical-directories/
Спасибо.