У меня проблема с написанием политики AWS, чтобы предоставить пользователю доступ на чтение / запись к одной корзине. Основываясь на примерах, которые я нашел в Интернете, это выглядит довольно просто:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:ListBucket"
],
"Resource": [
"arn:aws:s3:::my-bucket"
]
},
{
"Effect": "Allow",
"Action": [
"s3:PutObject",
"s3:PutObjectAcl",
"s3:GetObject",
"s3:GetObjectAcl",
"s3:DeleteObject"
],
"Resource": [
"arn:aws:s3:::my-bucket/*"
]
}
]
}
Однако редактор политики возвращает ошибку Предоставленный документ политики не соответствует требованиям указанного типа политики.
Комментарий в редакторе политики также гласит:
Чтобы разрешить действия, включите операторы в формате «Эффект»: «Разрешить». Все остальные действия неявно запрещены.
Чтобы явно запретить действия, включите операторы в формате «Эффект»: «Запретить». Только операторы Deny могут включать ресурсы и условия.
Этот комментарий противоречит каждому найденному мною примеру. Я не могу себе представить, как эффективно написать политику, в которой эффект «разрешить» используется глобально, без указания ресурса, а затем «запретить» является гранулированным и указывает на ресурсы, на которые он влияет.