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 Objek S3, daftar kontrol akses (ACLs) dinonaktifkan dan Anda, sebagai pemilik bucket, secara otomatis memiliki semua objek di bucket Anda. ACLs 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 bucket ACLs 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, akan ACLs dinonaktifkan. Permintaan untuk mengatur ACLs atau memperbarui ACLs gagal dengan 400 kesalahan dan mengembalikan kode AccessControlListNotSupportedkesalahan. Permintaan untuk membaca ACLs masih didukung. Permintaan untuk membaca ACLs selalu menampilkan respons yang menunjukkan kontrol penuh untuk pemilik bucket. Dalam PUT operasi Anda, Anda harus menentukan kontrol penuh pemilik bucket ACLs atau tidak menentukan ACL. Jika tidak, operasi PUT Anda gagal.

Contoh put-object AWS CLI perintah berikut termasuk ACL public-read kalengan.

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

Jika bucket menggunakan setelan yang diberlakukan pemilik Bucket untuk menonaktifkan ACLs, operasi ini gagal, dan pengunggah menerima pesan galat berikut:

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

InvalidBucketAclWithObjectOwnership

Jika Anda ingin menerapkan pengaturan yang diberlakukan pemilik Bucket untuk menonaktifkan ACLs, 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 diberlakukan pemilik Bucket dan menentukan ACL bucket yang menyediakan akses ke eksternal Akun AWS, permintaan Anda gagal dengan 400 kesalahan dan mengembalikan kode kesalahan. InvalidBucketAclWithObjectOwnership 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 ACLs.

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" } ] }

put-bucket-ownership-controls AWS CLI Perintah contoh berikut menerapkan setelan diberlakukan 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 ACLs disetel dengan ObjectOwnership BucketOwnerEnforced pengaturan