я пытаюсь настроить политику только PutObject в ведре по следующим образом:Aws S3 Только PutObject Политика
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Stmt####",
"Effect": "Allow",
"Action": [
"s3:PutObject",
"s3:PutObjectAcl",
"s3:PutObjectVersionAcl"
],
"Resource": [
"arn:aws:s3:::my-bucket/*"
]
}
]
}
Однако, когда я пытаюсь загрузить файл думал AWS SDK
я получаю 403 ответа от AWS , Я абсолютно уверен, что использую правильный ключ доступа пользователя IAM, к которому прилагается эта политика.
Кто-нибудь знает, почему AWS3 жалуется на эту политику, если это не так?
Edit:
После нескольких часов испытаний, я наткнулся на странное поведение, которое я хотел бы объяснить.
Если я добавлю s3:ListBucket
к вышеуказанной политике, он просто отлично работает. Без него он вернет 403. Почему amazon заставляет меня ставить ListBucket действие, когда я не хочу его иметь?
Благодаря
Огромное спасибо @aalimovs, я стараюсь сочетать партии, и я пришел к кресту, чтобы, если я не ставлю 'ListBucket' ** Action ** на политику, которую он дал 403, если я добавлю, что он успешно загружает файл, знаете ли вы, почему это происходит? – Fabrizio
Можете ли вы показать, как именно вы загружаете файл? – aalimovs
Спасибо за вашу поддержку, я загружаю файлы через ** файловую систему ** библиотеку PHP https://github.com/thephpleague/flysystem и используя адаптер Aws3: https://github.com/thephpleague/flysystem- aws-s3-v3, Функция загрузки: https://github.com/thephpleague/flysystem-aws-s3-v3/blob/master/src/AwsS3Adapter.php#L495 – Fabrizio