Две политики, есть одна «Запретить», я не могу выполнять какие-либо операции с корзиной, но я все еще могу перечислять и просматривать объекты корзины. Зачем? Спасибо
Политика корзины S3
{
"Sid": "S3DenyAccess",
"Effect": "Deny",
"Principal": "*",
"Action": "*",
"Resource": "arn:aws:s3:::<YOURBUCKETHERE>/*"
}
Политика пользователя IAM
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AllowConsoleAccess",
"Action": [
"s3:ListAllMyBuckets",
"s3:GetBucketLocation"
],
"Effect": "Allow",
"Resource": [
"arn:aws:s3:::*"
]
}
]
}
Логика оценки политики AWS было бы полезно прочитать. Короче говоря, явное отрицание побеждает. Но здесь это не актуально.
Я
Ваша политика пользователя IAM гласит: «Этот пользователь может перечислить все сегменты, чтобы получить их местоположения».
Политика ведра
Политика вашей корзины для одной конкретной корзины гласит: «Явно запрещайте кому-либо делать что-либо, чтобы возразить внутри ведро "." / * "в конце ресурса означает, что политика применяется" внутри корзины ", тогда как если вы их опускаете, это означает, что политика применяется к самому ведру.
Комбинированный
Таким образом, ваши комбинированные политики говорят, что все пользователи могут перечислять сегменты и получать их местоположения, но не могут ничего делать с объектами внутри контейнера. Я удивлен, что вы можете перечислять объекты в ведре и просматривать объекты ведра. Я подозреваю, что здесь играет роль другая политика, потому что отказ AWS по умолчанию говорит, что он не должен вам ничего показывать.
Другие мнения
Если кто-то может заметить что-то, что я пропустил, укажите это :)
Попробуйте изменить Ресурс в Политика ведра чтобы включить как ведро, так и ведро с объектами:
"Resource": [
"arn:aws:s3:::<YOURBUCKETHERE>",
"arn:aws:s3:::<YOURBUCKETHERE>/*"
]
Надеюсь, это поможет :)