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-controlyang 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 |
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:
-
Semua ACL bucket dan ACL objek dinonaktifkan, yang memberikan akses penuh kepada Anda, sebagai pemilik bucket. Saat Anda melakukan permintaan ACL baca pada bucket atau objek Anda, Anda akan melihat bahwa akses penuh hanya diberikan kepada pemilik bucket.
-
Anda, sebagai pemilik bucket, secara otomatis memiliki dan memiliki kendali penuh atas setiap objek di bucket Anda.
-
ACL tidak lagi memengaruhi izin akses ke bucket Anda. Akibatnya, kontrol akses untuk data Anda didasarkan pada kebijakan, seperti kebijakan berbasis identitas AWS Identity and Access Management (IAM), kebijakan bucket Amazon S3, kebijakantitik akhir VPC, dan kebijakankontrol layanan Organizations (SCP) atau kebijakan kontrol sumber daya (RCP).
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 --bucketamzn-s3-demo-bucket--keykey-name--bodypath-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 --bucketamzn-s3-demo-bucket--keykey-name--bodypath-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.