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 mengatur ACL atau memperbarui ACL gagal dengan 400 kesalahan dan mengembalikan kode AccessControlListNotSupportedkesalahan. 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.

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

aws s3api put-object --bucket DOC-EXAMPLE-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 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 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" } ] }

put-bucket-ownership-controls AWS CLI Perintah contoh berikut menerapkan setelan diberlakukan pemilik Bucket untuk Kepemilikan Objek:

aws s3api put-bucket-ownership-controls --bucket DOC-EXAMPLE-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 ObjectOwnership pengaturan BucketOwnerEnforced