Политика IAM, не позволяющая мне загружать на S3

#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)» из Разрешений >> Блокировать общедоступный доступ

введите описание изображения здесь