2
У меня есть ниже клавиш под ковшом demo.for.customersIAM политики в список конкретных папок внутри S3 ведра для пользователя
demo.for.customers/customer1/
demo.for.customers/customer2/
Теперь у меня есть 2 клиентов, а именно customer1 и customer2 , Это то, что я хочу:
- Даруй им доступ только demo.for.customers ведро.
- customer1 должен иметь доступ только
demo.for.customers/customer1/
, а customer2 должен иметь доступ толькоdemo.for.customers/customer2/
.
И я могу достичь этого с помощью нижеприведенной политики (я создаю политику для каждого клиента, поэтому я вставляю ее только для клиента1 ниже). Я определил эту политику в 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
- Customer1 также может видеть
demo.for.customers/customer2
, хотя он не может получить к нему доступ. Это очень неприемлемо, так как я не хочу, чтобы он даже видел, какие другие папки для клиентов у меня под этим ведром.
ВОПРОСЫ:
- После этого много прибегая к помощи, я узнал, что нет никакого способа список конкретных ведер. Это правда?
- Однако я должен найти способ перечислить только определенные папки внутри ведра для данного пользователя. Как это сделать?
Спасибо.
+1 для вашего времени. Я использую 'aws s3 ls s3: // demo.for.customers' и' aws s3api list-objects -bucket demo.for.customers' команды для моего тестирования. Кроме того, я также проверяю консоль и запускаю простой рубиновый скрипт, который использует AWS ruby SDK. Я ожидаю, что мой клиент получит консольный доступ, и поэтому я очень обеспокоен ** перечислением ** папок внутри ведра. Я не хочу, чтобы какой-либо клиент так даже ** смотрел ** какие другие папки находятся в ковше. – slayedbylucifer
Есть ли конкретная причина, по которой вашим пользователям нужен доступ в консоль? Это немного осложняет ситуацию. –
Да. Мои клиенты будут загружать вспомогательные данные в S3. И они не люди с техническими навыками. Следовательно, я не хочу, чтобы они столкнулись с проблемами использования S3 API для того, чтобы сделать то же самое. Фактически, они просто хотят получить данные для меня самым простым способом. – slayedbylucifer