Две политики, получил одну "Запретить", я не должен иметь возможности выполнять какие-либо операции с контейнером, но я все еще могу перечислять и просматривать объекты контейнера. Почему? Спасибо
Политика 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:::*"
]
}
]
}
решение1
Попробуйте изменитьРесурсвПолитика ведрачтобы включить как само ведро, так и ведро с объектами:
"Resource": [
"arn:aws:s3:::<YOURBUCKETHERE>",
"arn:aws:s3:::<YOURBUCKETHERE>/*"
]
Надеюсь, это поможет :)
решение2
Логика оценки политики AWSбыло бы полезно почитать. Короче говоря, явное отрицание побеждает. Хотя здесь это не актуально.
Я
Ваша политика пользователя IAM гласит: «Этот пользователь может вывести список всех контейнеров и получить их местоположения».
Политика ведра
Ваша политика для одного конкретного контейнера гласит: «явно запретить кому-либо совершать какие-либо действия, направленные на возражениевнутриконтейнера». Символ «/*» в конце ресурса означает, что политика применяется «внутри контейнера», тогда как если вы его опустите, это будет означать, что политика применяется к самому контейнеру.
Комбинированный
Итак, ваши объединенные политики говорят, что все пользователи могут перечислять бакеты и получать местоположения бакетов, но не могут ничего делать с объектами внутри бакета. Я удивлен, что вы можете перечислять объекты в бакете и просматривать объекты бакета. Я подозреваю, что здесь играет роль другая политика, потому что запрет AWS по умолчанию говорит, что он не должен вам ничего показывать.
Другие мнения
Если кто-то заметил что-то, что я упустил, пожалуйста, укажите на это :)