У меня есть ведро S3, которое имеет такую структуру:
top_level_name
sub_level_1
sub_level_2
sub_level_3
Я хотел бы сделать общий запрет на все действия в top_level_name
(чтобы исключить политики IAM, которые в противном случае имели бы доступ к этому сегменту), и выборочно разрешить определенным пользователям доступ к их соответствующим sub_levels
. Первоначально я думал, что политика может выглядеть примерно так:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "DenyTopLevel",
"Action": [
"s3:*"
],
"Effect": "Deny",
"Resource": "arn:aws:s3:::test-bucket/top_level_name/*",
"Principal": "*"
},
{
"Sid": "AllowSubLevel1",
"Action": [
"s3:PutObject"
],
"Effect": "Allow",
"Resource": "arn:aws:s3:::test-bucket/top_level_name/sub_level_1/*",
"Principal": {
"AWS": [
"arn:aws:iam::12345:user/my_user_account"
]
}
}
]
}
При исполнении похоже, что Разрешить не может заменить Запрет. Есть ли способ, которым я могу переписать свою политику корзины для реализации этого шаблона?