View a markdown version of this page

Mengontrol kepemilikan objek dan menonaktifkan ACL untuk bucket Anda - Amazon Simple Storage Service

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

Mengontrol kepemilikan objek dan menonaktifkan ACL untuk bucket Anda

Kepemilikan Objek S3 adalah pengaturan tingkat bucket Amazon S3 yang dapat Anda gunakan untuk mengontrol kepemilikan objek yang diunggah ke bucket Anda dan untuk menonaktifkan atau mengaktifkan daftar kontrol akses (ACL). Secara default, Kepemilikan Objek disetel ke pengaturan diberlakukan pemilik Bucket dan semua ACL dinonaktifkan. Ketika ACL dinonaktifkan, pemilik bucket memiliki semua objek di bucket dan mengelola akses ke data secara eksklusif menggunakan kebijakan manajemen akses.

Mayoritas kasus penggunaan modern di Amazon S3 tidak lagi memerlukan penggunaan ACL, dan kami menyarankan agar Anda tetap menonaktifkan ACL kecuali dalam keadaan di mana Anda harus mengontrol akses untuk setiap objek satu per satu. Dengan ACL dinonaktifkan, Anda dapat menggunakan kebijakan untuk mengontrol akses ke setiap objek di bucket dengan lebih mudah, terlepas dari siapa yang mengunggah objek di bucket Anda.

Kepemilikan Objek memiliki tiga pengaturan yang dapat Anda gunakan untuk mengontrol kepemilikan objek yang diunggah ke bucket Anda, dan untuk menonaktifkan atau mengaktifkan ACL:

ACL dinonaktifkan
  • Pemilik bucket yang diberlakukan (default)–ACL dinonaktifkan, dan pemilik bucket secara otomatis memilikinya, serta mendapatkan kontrol penuh atas setiap objek di dalam bucket. ACL tidak lagi memengaruhi izin terhadap data di bucket S3. Bucket tersebut menggunakan kebijakan untuk menentukan kontrol akses.

ACL diaktifkan
  • Pemilik bucket yang dipilih—Pemilik bucket memiliki dan diberikan kendali penuh atas objek baru yang ditulis akun lain ke bucket dengan ACL bucket-owner-full-control yang dibatasi.

  • Penulis objek– Akun AWS yang mengunggah objek memiliki objek tersebut, mempunyai kontrol penuh atas objek tersebut, dan dapat memberikan akses kepada pengguna lain melalui ACL.

Untuk sebagian besar kasus penggunaan modern di S3, sebaiknya Anda menonaktifkan ACL dengan menerapkan pengaturan yang diberlakukan pemilik Bucket dan menggunakan kebijakan bucket Anda untuk berbagi data dengan pengguna di luar akun Anda sesuai kebutuhan. Pendekatan ini menyederhanakan manajemen izin. Anda dapat menonaktifkan ACL pada bucket yang baru dibuat dan yang sudah ada. Untuk bucket yang baru dibuat, ACL dinonaktifkan secara default. Dalam kasus bucket yang sudah ada yang sudah memiliki objek di dalamnya, setelah Anda menonaktifkan ACL, ACL objek dan bucket tidak lagi menjadi bagian dari evaluasi akses, dan akses diberikan atau ditolak berdasarkan kebijakan. Untuk bucket yang ada, Anda dapat mengaktifkan kembali ACL kapan saja setelah menonaktifkannya, dan bucket dan ACL objek yang sudah ada sebelumnya dipulihkan.

Sebelum menonaktifkan ACL, sebaiknya tinjau kebijakan bucket untuk memastikan kebijakan tersebut mencakup semua cara yang ingin Anda berikan akses ke bucket di luar akun Anda. Setelah menonaktifkan ACL, bucket Anda hanya menerima PUT permintaan yang tidak menentukan ACL atau PUT permintaan dengan ACL kontrol penuh pemilik bucket, misalnya, ACL bucket-owner-full-control kalengan atau bentuk setara ACL ini yang dinyatakan dalam XHTML. Aplikasi yang ada yang mendukung ACL kontrol penuh pemilik bucket tidak akan berdampak. PUTpermintaan yang berisi ACL lain (misalnya, hibah khusus untuk tertentu Akun AWS) gagal dan mengembalikan 400 kesalahan dengan kode kesalahan. AccessControlListNotSupported

Sebaliknya, bucket dengan pengaturan pilihan pemilik Bucket terus menerima dan menghormati ACL bucket dan objek. Dengan pengaturan ini, objek baru yang ditulis dengan ACL terekam bucket-owner-full-control secara otomatis dimiliki oleh pemilik bucket daripada penulis objek. Semua perilaku ACL lainnya tetap sama. Agar semua operasi PUT Amazon S3 menyertakan ACL bucket-owner-full-control yang terekam, Anda dapat menambahkan kebijakan bucket yang hanya mengizinkan unggahan objek menggunakan ACL ini.

Untuk melihat pengaturan Kepemilikan Objek yang diterapkan ke bucket, Anda dapat menggunakan metrik Lensa Penyimpanan Amazon S3. Lensa Penyimpanan S3 adalah fitur analisis penyimpanan cloud yang dapat Anda gunakan untuk mendapatkan visibilitas seluruh organisasi ke dalam penggunaan dan aktivitas penyimpanan objek. Untuk informasi lebih lanjut, lihat Menggunakan Lensa Penyimpanan S3 untuk menemukan pengaturan Kepemilikan Objek.

catatan

Untuk informasi selengkapnya tentang menggunakan kelas penyimpanan Amazon S3 Express One Zone dengan bucket direktori, lihat S3 Express One Zone dan Bekerja dengan bucket direktori.

Pengaturan Kepemilikan Objek

Tabel ini menunjukkan dampak yang dimiliki setiap pengaturan Kepemilikan Objek pada ACL, objek, kepemilikan objek, dan unggahan objek.

Pengaturan Berlaku untuk Efek pada kepemilikan objek Efek pada ACL Unggahan diterima
Pemilik bucket diberlakukan (default) Semua objek baru dan yang sudah ada Pemilik bucket memiliki setiap objek.

ACL dinonaktifkan dan tidak lagi memengaruhi izin akses ke bucket Anda. Permintaan untuk mengatur atau memperbarui ACL gagal. Namun, permintaan untuk membaca ACL didukung.

Pemilik bucket memiliki kepemilikan dan kontrol penuh.

Penulis objek tidak lagi memiliki kepemilikan dan kontrol penuh.

Unggahan dengan pemilik bucket mengontrol penuh ACL atau unggahan yang tidak menentukan ACL
bucket lebih disukai pemilik bucket Objek baru Jika unggahan objek menyertakan ACL bucket-owner-full-control terekam, pemilik bucket memiliki objek tersebut.

Objek yang diunggah dengan ACL lain dimiliki oleh akun penulisan.

ACL dapat diperbarui dan dapat memberikan izin.

Jika unggahan objek menyertakan ACL bucket-owner-full-control terekam, pemilik bucket memiliki akses kontrol penuh, dan penulis objek tidak lagi memiliki akses kontrol penuh.

Semua unggahan
Penulis objek Objek baru Penulis objek memiliki objek.

ACL dapat diperbarui, dan dapat memberikan izin.

Penulis objek memiliki akses kontrol penuh.

Semua unggahan

Perubahan diperkenalkan dengan menonaktifkan ACL

Ketika pengaturan yang diberlakukan pemilik Bucket untuk Kepemilikan Objek diterapkan, ACL dinonaktifkan dan Anda secara otomatis memiliki dan mengambil kendali penuh atas setiap objek di bucket tanpa mengambil tindakan tambahan apa pun. Pemilik bucket diberlakukan adalah pengaturan default untuk semua bucket yang baru dibuat. Setelah pengaturan diberlakukan pemilik Bucket diterapkan, Anda akan melihat tiga perubahan:

Diagram yang menunjukkan apa yang terjadi ketika Anda menerapkan pengaturan diberlakukan pemilik Bucket untuk menonaktifkan ACL.

Jika Anda menggunakan Pembuatan Penentuan Versi S3, pemilik bucket memiliki dan memiliki kontrol penuh atas semua versi objek di bucket Anda. Menerapkan pengaturan yang diberlakukan pemilik Bucket tidak akan menambahkan versi baru objek.

Objek baru dapat diunggah ke bucket Anda hanya jika mereka menggunakan ACL kontrol penuh pemilik bucket atau tidak menentukan ACL. Unggahan objek gagal jika mereka menentukan ACL lainnya. Untuk informasi selengkapnya, lihat Pemecahan Masalah.

Karena contoh operasi PutObject berikut menggunakan AWS Command Line Interface (AWS CLI) menyertakan ACL bucket-owner-full-control terekam, objek dapat diunggah ke bucket dengan ACL yang dinonaktifkan.

aws s3api put-object --bucket amzn-s3-demo-bucket --key key-name --body path-to-file --acl bucket-owner-full-control

Karena operasi PutObject berikut tidak menentukan ACL, operasi ini juga berhasil untuk bucket dengan ACL yang dinonaktifkan.

aws s3api put-object --bucket amzn-s3-demo-bucket --key key-name --body path-to-file
catatan

Jika orang lain Akun AWS memerlukan akses ke objek setelah mengunggah, Anda harus memberikan izin tambahan ke akun tersebut melalui kebijakan bucket. Untuk informasi selengkapnya, lihat Panduan yang menggunakan kebijakan untuk mengelola akses ke sumber daya Amazon S3.

Re-enabling ACL

Anda dapat mengaktifkan kembali ACL dengan mengubah dari pengaturan diberlakukan pemilik Bucket ke pengaturan Kepemilikan Objek lain kapan saja. Jika Anda menggunakan ACL objek untuk manajemen izin sebelum menerapkan pengaturan diberlakukan pemilik Bucket dan Anda tidak memigrasikan izin ACL objek ini ke kebijakan bucket, setelah Anda mengaktifkan kembali ACL, izin ini akan dipulihkan. Selain itu, objek yang ditulis ke bucket saat pengaturan yang diberlakukan pemilik Bucket diterapkan masih dimiliki oleh pemilik bucket.

Misalnya, jika Anda mengubah dari pengaturan yang diberlakukan pemilik Bucket kembali ke pengaturan Object writer, Anda, sebagai pemilik bucket, tidak lagi memiliki dan memiliki kontrol penuh atas objek yang sebelumnya dimiliki oleh orang lain Akun AWS. Sebaliknya, akun pengunggahan kembali memiliki objek-objek ini. Objek yang dimiliki oleh akun lain menggunakan ACL untuk izin, sehingga Anda tidak dapat menggunakan kebijakan untuk memberikan izin ke objek tersebut. Namun, Anda, sebagai pemilik bucket, masih memiliki objek apa pun yang ditulis ke bucket saat pengaturan yang diberlakukan oleh pemilik Bucket diterapkan. Objek ini tidak dimiliki oleh penulis objek, bahkan jika Anda mengaktifkan kembali ACL.

Untuk petunjuk tentang mengaktifkan dan mengelola ACL menggunakan, ( AWS Command Line Interface CLI) Konsol Manajemen AWS, REST API, atau AWS SDK, lihat. Mengonfigurasi ACL

Prasyarat untuk menonaktifkan ACL

Sebelum Anda menonaktifkan ACL untuk bucket yang ada, selesaikan prasyarat berikut.

Izin Kepemilikan Objek

Untuk menerapkan, memperbarui, atau menghapus pengaturan Kepemilikan Objek untuk bucket, Anda memerlukan izin s3:PutBucketOwnershipControls tersebut. Untuk mengembalikan pengaturan Kepemilikan Objek untuk bucket, Anda memerlukan izin s3:GetBucketOwnershipControls. Untuk informasi selengkapnya, lihat Mengatur Kepemilikan Objek saat membuat bucket dan Melihat pengaturan Kepemilikan Objek untuk bucket S3.

Menonaktifkan ACL untuk semua bucket baru

Secara default, semua bucket baru dibuat dengan pengaturan diberlakukan pemilik Bucket diterapkan dan ACL dinonaktifkan. Kami merekomendasikan agar ACL dinonaktifkan. Sebagai aturan umum, kami menyarankan penggunaan kebijakan berbasis sumber daya S3 (kebijakan bucket dan kebijakan titik akses) atau kebijakan IAM untuk kontrol akses, bukan ACL. Kebijakan adalah opsi kontrol akses yang disederhanakan dan lebih fleksibel. Dengan kebijakan bucket dan kebijakan titik akses, Anda dapat menentukan aturan yang berlaku secara luas di semua permintaan ke sumber daya Amazon S3 Anda.

Replikasi dan Kepemilikan Object

Bila Anda menggunakan replikasi S3 dan bucket sumber dan tujuan dimiliki oleh berbeda Akun AWS, Anda dapat menonaktifkan ACL (dengan pengaturan yang diberlakukan pemilik Bucket untuk Kepemilikan Objek) untuk mengubah kepemilikan replika ke bucket yang memiliki tujuan. Akun AWS Pengaturan ini meniru perilaku override pemilik yang ada tanpa memerlukan izin s3:ObjectOwnerOverrideToBucketOwner. Semua objek yang direplikasi ke bucket tujuan dengan pengaturan yang diberlakukan pemilik Bucket dimiliki oleh pemilik bucket tujuan. Untuk informasi selengkapnya tentang opsi penggantian pemilik untuk konfigurasi replikasi, lihat Mengubah pemilik replika.

Mengatur Kepemilikan Objek

Anda dapat menerapkan setelan Kepemilikan Objek dengan menggunakan konsol Amazon S3, AWS SDK AWS CLI, Amazon S3 REST API, atau. AWS CloudFormation API REST dan AWS CLI perintah berikut mendukung Kepemilikan Objek:

API REST AWS CLI Deskripsi
PutBucketOwnershipControls put-bucket-ownership-controls Membuat atau memodifikasi pengaturan Kepemilikan Objek untuk bucket S3 yang ada.
CreateBucket create-bucket Membuat bucket menggunakan header permintaan x-amz-object-ownership untuk menentukan pengaturan Kepemilikan Objek.
GetBucketOwnershipControls get-bucket-ownership-controls Mengambil pengaturan Kepemilikan Objek untuk bucket Amazon S3.
DeleteBucketOwnershipControls delete-bucket-ownership-controls Menghapus pengaturan Kepemilikan Objek untuk bucket Amazon S3.

Untuk informasi tentang menerapkan dan bekerja dengan pengaturan Kepemilikan Objek, lihat topik-topik berikut.