View a markdown version of this page

Pemecahan Masalah - Amazon Simple Storage Service

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Pemecahan Masalah

Saat Anda menerapkan pengaturan yang diberlakukan pemilik Bucket untuk Kepemilikan S3 Object, daftar kontrol akses (ACL) dinonaktifkan dan Anda, sebagai pemilik bucket, secara otomatis memiliki semua objek di bucket Anda. ACL tidak lagi memengaruhi izin untuk objek di bucket Anda. Anda dapat menggunakan kebijakan untuk memberikan izin. Semua permintaan PUT S3 harus menentukan ACL terekam bucket-owner-full-control atau tidak menentukan ACL sama sekali, atau permintaan ini akan gagal. Untuk informasi selengkapnya, lihat Mengontrol kepemilikan objek dan menonaktifkan ACL untuk bucket Anda.

Jika ACL yang tidak valid ditentukan atau izin ACL bucket memberikan akses di luar Akun AWS Anda, Anda mungkin melihat respons kesalahan berikut.

AccessControlListNotSupported

Setelah Anda menerapkan pengaturan diberlakukan pemilik Bucket untuk Kepemilikan Objek, ACL akan dinonaktifkan. Permintaan untuk menyetel ACL atau memperbarui ACL gagal dengan 400 kesalahan dan mengembalikan kode AccessControlListNotSupported kesalahan. Permintaan untuk membaca ACL masih didukung. Permintaan untuk membaca ACL selalu menampilkan respons yang menunjukkan kontrol penuh untuk pemilik bucket. Dalam operasi PUT Anda, Anda harus menentukan ACL kontrol penuh pemilik bucket atau tidak menentukan ACL. Jika tidak, operasi PUT Anda gagal.

Per put-object AWS CLI intah contoh berikut mencakup ACL yang sudah di public-read kalengkan.

aws s3api put-object --bucket amzn-s3-demo-bucket --key object-key-name --body doc-example-body --acl public-read

Jika bucket menggunakan pengaturan yang diberlakukan pemilik bucket untuk menonaktifkan ACL, maka operasi ini gagal, dan pengunggah menerima pesan galat berikut:

Terjadi kesalahan (AccessControlListNotSupported) saat memanggil PutObject operasi: Bucket tidak mengizinkan ACL

InvalidBucketAclWithObjectOwnership

Jika Anda ingin menerapkan pengaturan yang diberlakukan pemilik Bucket untuk menonaktifkan ACL, ACL bucket Anda harus memberikan kontrol penuh hanya kepada pemilik bucket. Bucket ACL Anda tidak dapat memberikan akses ke grup eksternal Akun AWS atau grup lainnya. Misalnya, jika CreateBucket permintaan Anda menetapkan pemilik Bucket yang dipaksakan dan menentukan bucket ACL yang menyediakan akses ke eksternal Akun AWS, permintaan Anda gagal dengan 400 kesalahan dan mengembalikan kode InvalidBucketAclWithObjectOwnership kesalahan. Demikian pula, jika permintaan PutBucketOwnershipControls Anda menetapkan pemilik Bucket yang diberlakukan pada bucket yang memiliki bucket ACL yang memberikan izin kepada orang lain, permintaan tersebut gagal.

contoh: Bucket ACL yang ada memberikan akses baca publik

Misalnya, jika ACL bucket yang ada memberikan akses baca publik, Anda tidak dapat menerapkan pengaturan yang diberlakukan pemilik Bucket untuk Kepemilikan Objek hingga Anda memigrasikan izin ACL ini ke kebijakan bucket dan mengatur ulang ACL bucket Anda ke ACL pribadi default. Untuk informasi selengkapnya, lihat Prasyarat untuk menonaktifkan ACL.

Contoh bucket ACL ini memberikan akses baca publik:

{ "Owner": { "ID": "852b113e7a2f25102679df27bb0ae12b3f85be6BucketOwnerCanonicalUserID" }, "Grants": [ { "Grantee": { "ID": "852b113e7a2f25102679df27bb0ae12b3f85be6BucketOwnerCanonicalUserID", "Type": "CanonicalUser" }, "Permission": "FULL_CONTROL" }, { "Grantee": { "Type": "Group", "URI": "http://acs.amazonaws.com/groups/global/AllUsers" }, "Permission": "READ" } ] }

Per put-bucket-ownership-controls AWS CLI intah contoh berikut menerapkan pengaturan yang dipaksakan pemilik Bucket untuk Kepemilikan Objek:

aws s3api put-bucket-ownership-controls --bucket amzn-s3-demo-bucket --ownership-controls Rules=[{ObjectOwnership=BucketOwnerEnforced}]

Karena bucket ACL memberikan akses baca publik, permintaan gagal dan mengembalikan kode kesalahan berikut:

Terjadi kesalahan (InvalidBucketAclWithObjectOwnership) saat memanggil PutBucketOwnershipControls operasi: Bucket tidak dapat mengatur ACL dengan set ObjectOwnership elan BucketOwnerEnforced