У меня есть вопрос о написании IAM политики на AWS S3, который частично ответили здесь, в этом славном посту Джим Шарф:Предотвратить пользователь, даже зная о других пользователях (папки) на AWS S3
Принимая сообщение от Jim в качестве отправной точки, я пытаюсь добиться того, чтобы пользователь не получал , зная о существовании других пользователей, имеющих доступ к одному и тому же ведру при использовании консоли S3. Решение Джима, а также другие, которые я нашел, ограничивают доступ данного пользователя к содержимому внутри папки. Но ни одно из решений не позволяет пользователю «u» выполнять то, что я называю «частичным листингом», т. Е. Даже не отображать папки, содержимое которых не разрешено «u».
Следующая запись также очень похожа на мой вопрос:
Но в отличие от установки в таком посте, мне нужно напоминать структуру файловой системы, которая имеет «промежуточную» домашнюю папку между имя ведра и папки для конкретного пользователя (как в пост Джима):
mybucket/дома/user1
mybucket/дома/user2
Что я сделал до сих пор выглядят следующим образом:
- Создан единое ведро, а также ряд «папки» внутри него
- Создан число пользователей, которые я сгруппированный вместе группа. Каждый пользователь имеет соответствующую папку внутри ведра с тем же именем
Setup СИА политики, которые я прилагаю к группе следующим образом:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowUsersToSeeBucketListInTheConsole", "Action": ["s3:ListAllMyBuckets", "s3:GetBucketLocation"], "Effect": "Allow", "Resource": ["arn:aws:s3:::*"] }, { "Sid": "AllowRootAndHomeListingOfMyBucket", "Action": ["s3:ListBucket"], "Effect": "Allow", "Resource": ["arn:aws:s3:::mybucket"], "Condition":{"StringEquals":{"s3:prefix":["","home/"],"s3:delimiter":["/"]}} }, { "Sid": "AllowListingOfUserFolder", "Action": ["s3:ListBucket"], "Effect": "Allow", "Resource": ["arn:aws:s3:::mybucket"], "Condition":{"StringLike":{"s3:prefix":["home/${aws:username/*"]}} } ] }
Я понимаю, что Sid «AllowRootAndHomeListingOfMyBucket» выше разрешает «ListBucket», когда префикс «home /». Это фактически позволяет любому пользователю «u» в группе перечислить весь набор папок «f» внутри «домашней» папки, независимо от того, будет ли «u» иметь доступ к данному элементу «f» или нет. То, что я не знаю, есть ли какое-либо разумно разработанное правило «Запретить», которое ограничило бы даже перечисление тех папок, содержимое «u» не разрешено видеть.
По словам Боба Кинни это было невозможно еще в 2013 году:
IAM Policy to list specific folders inside a S3 bucket for an user
Однако я не уверен, что если что-то эволюционировали в то же время. Любое предложение очень ценится.
спасибо.