Семейство 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/

Спасибо.

Другие вопросы по тегам