Saya mengikuti contoh di http://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_examples.html#iam-policy-example-s3 untuk cara memberikan akses pengguna hanya ke satu keranjang.
Saya kemudian menguji konfigurasi menggunakan plugin W3 Total Cache Wordpress. Tes gagal.
Saya juga mencoba mereproduksi masalah menggunakan
aws s3 cp --acl=public-read --cache-control='max-age=604800, public' ./test.txt s3://my-bucket/
dan itu gagal dengan
upload failed: ./test.txt to s3://my-bucket/test.txt A client error (AccessDenied) occurred when calling the PutObject operation: Access Denied
Mengapa saya tidak dapat mengunggah ke keranjang saya?
Saya mengalami masalah serupa. Saya tidak menggunakan barang ACL, jadi saya tidak perlu
s3:PutObjectAcl
.Dalam kasus saya, saya melakukan (dalam Serverless Framework YML):
Dari pada:
Yang menambahkan a
/*
ke akhir ARN keranjang.Semoga ini membantu.
sumber
Saya hanya membenturkan kepala ke dinding hanya mencoba agar unggahan S3 berfungsi dengan file besar. Awalnya kesalahan saya adalah:
Kemudian saya mencoba menyalin file yang lebih kecil dan mendapatkan:
Saya dapat mencantumkan objek dengan baik, tetapi saya tidak dapat melakukan apa pun meskipun saya memiliki
s3:*
izin dalam kebijakan Peran saya. Saya akhirnya mengubah kebijakan menjadi ini:Sekarang saya dapat mengunggah file apa pun. Ganti
my-bucket
dengan nama keranjang Anda. Saya harap ini membantu orang lain yang mengalami ini.sumber
"Resource": "*"
.Jika ini membantu orang lain, dalam kasus saya, saya menggunakan CMK (berfungsi dengan baik menggunakan kunci default aws / s3)
Saya harus masuk ke definisi kunci enkripsi saya di IAM dan menambahkan pengguna terprogram yang masuk ke boto3 ke daftar pengguna yang "dapat menggunakan kunci ini untuk mengenkripsi dan mendekripsi data dari dalam aplikasi dan saat menggunakan layanan AWS yang terintegrasi dengan KMS".
sumber
Saya mengalami masalah serupa saat mengunggah ke bucket S3 yang dilindungi dengan enkripsi KWS. Saya memiliki kebijakan minimal yang memungkinkan penambahan objek di bawah kunci s3 tertentu.
Saya perlu menambahkan izin KMS berikut ke kebijakan saya untuk mengizinkan peran meletakkan objek di keranjang. (Mungkin sedikit lebih dari yang diwajibkan)
sumber
aws/s3
kunci terkelola default ke kebijakan IAM yang dilampirkan ke peran (bukan dalam kebijakan KMS), dan berfungsi dengan baik. Satu-satunya tindakan yang saya butuhkan terhadap KMS Arns adalah:kms:Encrypt
,kms:Decrypt
,kms:ReEncrypt*
,kms:GenerateDataKey*
,kms:DescribeKey
. Kemudian hanya izin S3 standar.Saya mendapatkan pesan kesalahan yang sama untuk kesalahan yang saya buat: Pastikan Anda menggunakan s3 uri yang benar seperti:
s3://my-bucket-name/
(Jika nama-ember-saya ada di root aws s3 Anda jelas)
Saya bersikeras karena saat menyalin menempelkan ember s3 dari browser Anda, Anda mendapatkan sesuatu seperti
https://s3.console.aws.amazon.com/s3/buckets/my-bucket-name/?region=my-aws-regiontab=overview
Jadi saya membuat kesalahan untuk menggunakan
s3://buckets/my-bucket-name
yang menimbulkan:An error occurred (AccessDenied) when calling the PutObject operation: Access Denied
sumber
Bagi saya, saya menggunakan kunci autentikasi yang kedaluwarsa. Menghasilkan yang baru dan booming.
sumber
Mirip dengan satu posting di atas, (kecuali saya menggunakan kredensial admin) untuk mendapatkan unggahan S3 agar berfungsi dengan file 50 juta besar.
Awalnya kesalahan saya adalah:
Saya mengganti multipart_threshold menjadi di atas 50M
dan saya mendapat:
Saya memeriksa setelan akses publik bucket dan semuanya diizinkan. Jadi saya menemukan bahwa akses publik dapat diblokir di tingkat akun untuk semua bucket S3 :
sumber
Jika Anda telah menyetel akses publik untuk bucket dan jika masih tidak berfungsi, edit kebijakan bucket dan tempel berikut ini:
sumber
Jika Anda telah menentukan kunci KMS yang dikelola pelanggan Anda sendiri untuk enkripsi S3, Anda juga perlu memberikan tanda
--server-side-encryption aws:kms
, misalnya:aws s3api put-object --bucket bucket --key objectKey --body /path/to/file --server-side-encryption aws:kms
Jika Anda tidak menambahkan bendera
--server-side-encryption aws:kms
, cli akan menampilkanAccessDenied
kesalahansumber
Saya dapat menyelesaikan masalah dengan memberikan akses s3 lengkap ke Lambda dari kebijakan. Buat peran baru untuk Lambda dan lampirkan kebijakan dengan Akses S3 lengkap padanya.
Semoga ini bisa membantu.
sumber
Saya mengalami masalah yang sama. Keranjang saya bersifat pribadi dan memiliki enkripsi KMS. Saya dapat menyelesaikan masalah ini dengan memasukkan izin KMS tambahan ke dalam peran tersebut. Daftar berikut adalah sekumpulan peran minimum yang diperlukan.
Referensi: https://aws.amazon.com/premiumsupport/knowledge-center/s3-large-file-encryption-kms-key/
sumber