Политика IAM для отображения определенных папок внутри корзины S3 для пользователя
У меня внизу ключи под ведромdemo.for.customers
demo.for.customers/customer1/
demo.for.customers/customer2/
Теперь у меня есть 2 клиента, а именноcustomer1 а такжеcustomer2, Это то, что я хочу:
Предоставить им доступ толькоdemo.for.customers ведро.клиент1 должен иметь доступ толькоdemo.for.customers/customer1/
и customer2 должен иметь возможность только доступа.demo.for.customers/customer2/
И я могу добиться этого с помощью приведенной ниже политики (я создаю политику для каждого клиента. Поэтому я вставляю политику только для customer1 ниже.) Я определил эту политику в IAM, а не в S3.
{
"Version":"2012-10-17",
"Statement": [
{
"Action": ["s3:ListAllMyBuckets", "s3:GetBucketLocation"],
"Effect": "Allow",
"Resource": ["arn:aws:s3:::*"]
},
{
"Action": ["s3:ListBucket"],
"Effect": "Allow",
"Resource": ["arn:aws:s3:::demo.for.customers"],
"Condition":{"StringEquals":{"s3:prefix":["","customer1/"],"s3:delimiter":["/"]}}
},
{
"Effect": "Allow",
"Action": ["s3:*"],
"Resource": ["arn:aws:s3:::demo.for.customers/customer1/*"]
}
]
}
Проблема:
Customer1 может видеть все мое ведро, хотя он можетТ доступ к любому из них. Я неЯ не хочу этого. Он должен видеть толькоdemo.for.customersКлиент1 может видетьdemo.for.customers/customer2
а также, хотя он можетт доступ к нему. Это очень неприемлемо, так как я неЯ не хочу, чтобы он даже видел, какие другие папки с клиентами у меня есть под этим ведром.ВОПРОСЫ:
После долгих поисков я узнал, что нет никакого способасписок конкретных ведер, Это правда?Тем не менее, я должен найти способсписок только определенных папок внутри ведра для данного пользователя. Как это сделать?Благодарю.