#python #amazon-s3 #aws-lambda #amazon-iam
#python #amazon-s3 #aws-lambda #amazon-iam
Вопрос:
Я загружаю файл на s3, используя следующий код:
s3.meta.client.upload_file(file_location, bucket_name, key,ExtraArgs={'ACL': 'public-read'})
Когда я использую ACL: общедоступное чтение, мой код возвращается со следующей ошибкой, что у меня нет разрешения на это.
"errorMessage": "Failed to upload test.xlsx: An error occurred (AccessDenied) when calling the PutObject operation: Access Denied"
"errorType": "S3UploadFailedError"
Ниже приведена политика IAM, привязанная к моему пользователю.
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "VisualEditor0",
"Effect": "Allow",
"Action": "s3:*",
"Resource": "*"
}
]
}
Комментарии:
1. Вы пытались также предоставить доступ к PutObjectAcl? Сообщения об ошибках AWS в некотором роде бесполезны.
2. @JohnnesSouza Я новичок в AWS, поэтому я не знаком с тем, что это такое.
3. Я думаю, что у вашего корзины может быть настроено неправильное разрешение. В прошлом у меня была такая же проблема, пришлось установить ее общедоступной, чтобы я мог загружать некоторый контент. Проверьте здесь для получения дополнительной информации.
Ответ №1:
Amazon S3 блокирует общедоступный доступ, предотвращая применение любых настроек, которые разрешают общедоступный доступ к данным в сегментах S3. Прямо сейчас операция ACL запрещена.
Пожалуйста, включите настройки «Блокировать общедоступный доступ к корзинам и объектам, предоставленным через новые списки управления доступом (ACL)» из Разрешений >> Блокировать общедоступный доступ