Я последовал примеру http://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_examples.html#iam-policy-example-s3, чтобы предоставить пользователю доступ только к одной корзине.
Затем я протестировал конфигурацию с помощью плагина W3 Total Cache Wordpress. Тест не удался.
Я также попытался воспроизвести проблему, используя
aws s3 cp --acl=public-read --cache-control='max-age=604800, public' ./test.txt s3://my-bucket/
и это не удалось с
upload failed: ./test.txt to s3://my-bucket/test.txt A client error (AccessDenied) occurred when calling the PutObject operation: Access Denied
Почему я не могу загрузить в корзину?
У меня была аналогичная проблема. Я не использовал ACL, поэтому мне это не понадобилось
s3:PutObjectAcl
.В моем случае я делал (в Serverless Framework YML):
Вместо того:
Что добавляет
/*
в конец корзины ARN.Надеюсь это поможет.
источник
Я просто бился головой о стену, просто пытаясь заставить загрузку S3 работать с большими файлами. Изначально моя ошибка была:
Затем я попытался скопировать файл меньшего размера и получил:
Я мог нормально перечислять объекты, но больше ничего не мог делать, хотя у меня были
s3:*
разрешения в моей политике ролей. В итоге я переработал политику так:Теперь я могу загрузить любой файл. Замените
my-bucket
своим именем корзины. Я надеюсь, что это поможет кому-то еще, кто переживает это.источник
"Resource": "*"
.Если это поможет кому-то еще, в моем случае я использовал CMK (он отлично работал с ключом aws / s3 по умолчанию)
Мне пришлось войти в свое определение ключа шифрования в IAM и добавить программного пользователя, вошедшего в boto3, в список пользователей, которые «могут использовать этот ключ для шифрования и дешифрования данных из приложений и при использовании сервисов AWS, интегрированных с KMS».
источник
У меня была аналогичная проблема с загрузкой в корзину S3, защищенную шифрованием KWS. У меня есть минимальная политика, которая позволяет добавлять объекты под определенным ключом s3.
Мне нужно было добавить следующие разрешения KMS в мою политику, чтобы позволить роли помещать объекты в корзину. (Может быть немного больше, чем требуется)
источник
aws/s3
ключа по умолчанию в политику IAM, прикрепленную к роли (не в политике KMS), и она работает хорошо. Единственные действия , которые я должен был против KMS ВРНС были:kms:Encrypt
,kms:Decrypt
,kms:ReEncrypt*
,kms:GenerateDataKey*
,kms:DescribeKey
. Тогда просто стандартные разрешения S3.У меня было такое же сообщение об ошибке, которое я сделал: убедитесь, что вы используете правильный s3 uri, например:
s3://my-bucket-name/
(Если my-bucket-name явно находится в корне вашего aws s3)
Я настаиваю на этом, потому что при копировании и вставке корзины s3 из вашего браузера вы получаете что-то вроде
https://s3.console.aws.amazon.com/s3/buckets/my-bucket-name/?region=my-aws-regiontab=overview
Таким образом, я совершил ошибку, использовав
s3://buckets/my-bucket-name
какие рейзы:An error occurred (AccessDenied) when calling the PutObject operation: Access Denied
источник
Если вы установили общий доступ для сегмента, но он по-прежнему не работает, отредактируйте политику бакера и вставьте следующее:
источник
Для меня я использовал просроченные ключи авторизации. Сгенерировали новые и бум.
источник
Подобно одному сообщению выше (за исключением того, что я использовал учетные данные администратора), чтобы загрузить S3 для работы с большим 50-мегабайтным файлом.
Изначально моя ошибка была:
Я переключил multipart_threshold на значение выше 50M
и я получил:
Я проверил настройки общего доступа к корзине, и все было разрешено. Итак, я обнаружил, что общий доступ может быть заблокирован на уровне учетной записи для всех сегментов S3 :
источник
Если вы указали собственный ключ KMS, управляемый клиентом, для шифрования S3, вам также необходимо указать флаг
--server-side-encryption aws:kms
, например:aws s3api put-object --bucket bucket --key objectKey --body /path/to/file --server-side-encryption aws:kms
Если вы не добавите флаг,
--server-side-encryption aws:kms
cli отобразитAccessDenied
ошибкуисточник
Мне удалось решить проблему, предоставив полный доступ s3 к Lambda из политик. Создайте новую роль для Lambda и прикрепите к ней политику с полным доступом S3.
Надеюсь, это поможет.
источник
Я столкнулся с той же проблемой. Моя корзина была частной и имела шифрование KMS. Мне удалось решить эту проблему, добавив в роль дополнительные разрешения KMS. Следующий список представляет собой минимальный необходимый набор ролей.
Ссылка: https://aws.amazon.com/premiumsupport/knowledge-center/s3-large-file-encryption-kms-key/
источник