Я пытаюсь настроить политику для моего нового красивого контейнера с именем files.mybucket.com, в котором говорится:
- Каждый может читать мои объекты
- Только некоторые Пользователи IAM могут делать все остальное.
Вот то, что я пробовал до сих пор:
"Statement": [
{
"Sid": "getAll",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": [
"arn:aws:s3:::files.mybucket.com",
"arn:aws:s3:::files.mybucket.com/*"
]
},
{
"Sid": "writeSome",
"Effect": "Allow",
"Principal": {
"AWS": [
"arn:aws:iam::111111111111:user/John",
"arn:aws:iam::111111111111:user/Dave"
]
},
"Action": "s3:*",
"Resource": [
"arn:aws:s3:::files.mybucket.com",
"arn:aws:s3:::files.mybucket.com/*"
]
}
]
Кажется, что вышеупомянутое не имеет никакого эффекта: даже если я удаляю принцип "Джон" из заявления я все еще могу загружать вещи с его помощью через консоль и Cloudberry Explorer.
"Statement": [
{
"Sid": "getAll",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": [
"arn:aws:s3:::files.mybucket.com",
"arn:aws:s3:::files.mybucket.com/*"
]
},
{
"Sid": "writeSome",
"Effect": "Deny",
"NotPrincipal": {
"AWS": [
"arn:aws:iam::111111111111:user/John",
"arn:aws:iam::111111111111:user/Dave"
]
},
"Action": "s3:*",
"Resource": [
"arn:aws:s3:::files.mybucket.com",
"arn:aws:s3:::files.mybucket.com/*"
]
}
]
Это выглядит многообещающе, так как не дает пользователям писать (если я удаляю Джона, я больше не могу писать с ним НО это также блокирует получение запросов от неаутентифицированных людей (и я хочу, чтобы они могли видеть контент).
Итак, вопрос: как разрешить людям получать мои файлы И держать всех, кроме Джона и Дейва писать на ведре?
Это сводит меня с ума. Я ценю помощь.