Я пытаюсь следовать следующему руководству: https://docs.aws.amazon.com/AmazonS3/latest/user-guide/add-bucket-policy.html, но возникла неизвестная ошибка Отсутствует обязательное поле основного поля:
Json:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "VisualEditor0",
"Effect": "Allow",
"Action": [
"s3:PutObject",
"s3:GetObject",
"s3:DeleteObject",
"s3:ListObjectsV2",
"s3:ListObjects"
],
"Resource": "arn:aws:s3:::awesome-proj/*"
},
{
"Sid": "VisualEditor1",
"Effect": "Allow",
"Action": "s3:GetBucketLocation",
"Resource": "arn:aws:s3:::awesome-proj"
}
]
}
Я создал политику, но результат тот же:
Я обновил значения Resource
и Principal
-:
{
"Id": "Policy1608869326556",
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Stmt1608869322454",
"Action": [
"s3:GetObject",
"s3:ListBucket",
"s3:PutObject"
],
"Effect": "Allow",
"Resource": "arn:aws:s3:::awesome-proj/*",
"Principal": "*"
}
]
}
В результате у меня появляется ошибка Действие не применяется ни к одному ресурсу (ам) в заявлении.
Как правильно создать политику s3-bucket?
Не существует такой вещи, как ec2-user
для политик сегментов. Чего ты хочешь добиться? Доступ к сегменту из экземпляра ec2? — person Valentyn Hruzytskyi schedule 25.12.2020
Что будет, если развернуть ответ API? — person Valentyn Hruzytskyi schedule 25.12.2020
Ответное сообщение API @JohnRotenstein: действие не применяется к каким-либо ресурсам в заявлении — person Valentyn Hruzytskyi schedule 25.12.2020
@Marcin Мне нужно сохранить файлы от пользователя ec2 в ведро — person Valentyn Hruzytskyi schedule 25.12.2020
Как говорится в сообщении об ошибке, в вашей политике отсутствует
Principal
. То есть в политике не указано, кто получает разрешения.Как вы показали, политика будет работать, когда она присоединена к пользователю IAM (поскольку Принципал автоматически является Пользователем IAM, к которому он присоединен), но при предоставлении Политики сегмента должен быть указан Принципал.
Если вы использовали Генератор политик, есть поле, где вы можете указать Принципала. Если вы хотите, чтобы эти разрешения были у кого-либо, вы можете указать
*
в качестве участника. Однако я бы не рекомендовал это, поскольку политика предоставляет разрешения на загрузку / скачивание / удаление.Спасибо. Но я сформировал политику сейчас и получил тот же результат. См. Обновленный ответ — person Valentyn Hruzytskyi; 25.12.2020
Эта политика удовлетворит ваши требования:
Несколько замечаний:
awesome-proj
) И на его содержимое (awesome-proj/*
), потому что некоторые действия применяются к сегменту, а некоторые — к объектам внутри контейнера.s3:ListObjectsV2
— оно фактически используетs3:ListBucket
.*
) разрешение на использование действий, что очень плохо для безопасности!. Вы никогда не должны позволять никому помещать / удалять объекты в ведре. Вместо этого предоставляйте разрешения пользователям IAM непосредственно в IAM вместо использования политики сегмента. При предоставлении разрешений определенным людям используйте IAM вместо политики сегмента.да, потому что проблема в названии ресурса
это должно быть
"Resource": "arn:aws:s3:::jatinbuckek101/*"
. вам не хватает/*
, что означает любой объект внутри ведра.а также способ, которым вы упомянули своего принципала, проверьте, как ссылаться на директор.
так выглядит моя политика (здесь xxxxx означает числа, которые будут отличаться для вашего варианта использования), используя генератор политики, вместо того, чтобы редактировать вручную, используйте генератор политики, чтобы исключить риск ошибок.
Нет, это не помогает — я обновил ответ — person Valentyn Hruzytskyi; 25.12.2020
именно вы можете просто попробовать сделать это с помощью генератора политик, а не вручную, а также вместо изображения опубликуйте свою политику и проверьте основной формат имени по предоставленной мной ссылке. — person Valentyn Hruzytskyi; 25.12.2020
просто чтобы убедиться, что политика работает, замените своего принципала на это пока
"Principal": "*"
. — person Valentyn Hruzytskyi; 25.12.2020Да, я сделал все таким образом — я генерировал политику, а не редактировал вручную. Ваш пример тоже не помог — person Valentyn Hruzytskyi; 25.12.2020
Я обновил ответ — person Valentyn Hruzytskyi; 25.12.2020
В вашей обновленной политике есть несоответствие {}, в конце концов}} (// это лишнее, попробуйте удалить это)]} — person Valentyn Hruzytskyi; 25.12.2020
Я обновлен — то же самое — person Valentyn Hruzytskyi; 25.12.2020