Menonaktifkan ACL untuk semua bucket baru dan menegakkan Kepemilikan Objek - Amazon Simple Storage Service

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

Menonaktifkan ACL untuk semua bucket baru dan menegakkan Kepemilikan Objek

Kami sarankan Anda menonaktifkan ACL di bucket Amazon S3. Anda dapat melakukannya dengan menerapkan pengaturan yang diberlakukan pemilik Bucket untuk Kepemilikan S3 Object. Ketika Anda menerapkan pengaturan ini, ACL dinonaktifkan dan Anda secara otomatis memiliki dan memiliki kontrol penuh atas semua objek di bucket Anda. Untuk mewajibkan semua bucket baru dibuat dengan ACL dinonaktifkan, gunakan kebijakan AWS Identity and Access Management (IAM) atau kebijakan kontrol AWS Organizations layanan (SCP), seperti yang dijelaskan di bagian berikutnya.

Untuk menerapkan kepemilikan objek untuk objek baru tanpa menonaktifkan ACL, Anda dapat menerapkan pengaturan pilihan pemilik Bucket. Saat menerapkan pengaturan ini, kami sangat menyarankan agar Anda memperbarui kebijakan bucket untuk bucket-owner-full-control mewajibkan ACL yang terekam untuk semua permintaan PUT ke bucket Anda. Pastikan Anda juga memperbarui klien Anda untuk mengirim ACL terekam bucket-owner-full-control ke bucket Anda dari akun lain.

Menonaktifkan ACL untuk semua bucket baru (pemilik bucket diberlakukan)

Contoh berikut kebijakan IAM menolak izin s3:CreateBucket untuk pengguna atau peran IAM tertentu kecuali pengaturan yang diberlakukan pemilik Bucket diterapkan untuk Kepemilikan Objek. Pasangan kunci-nilai di dalam blok Condition menentukan s3:x-amz-object-ownership sebagai kunci, dan pengaturan BucketOwnerEnforced sebagai nilainya. Dengan kata lain, pengguna IAM hanya dapat membuat bucket jika mereka menyetel pengaturan yang diberlakukan pemilik Bucket untuk Kepemilikan Objek dan menonaktifkan ACL. Anda juga dapat menggunakan kebijakan ini sebagai SCP batas untuk organisasi Anda. AWS

{ "Version": "2012-10-17", "Statement": [ { "Sid": "RequireBucketOwnerFullControl", "Action": "s3:CreateBucket", "Effect": "Deny", "Resource": "*", "Condition": { "StringNotEquals": { "s3:x-amz-object-ownership": "BucketOwnerEnforced" } } } ] }

Memerlukan ACL bucket-owner-full-control kalengan untuk operasi Amazon PUT S3 (lebih disukai pemilik ember)

Dengan pengaturan pilihan pemilik Bucket untuk Kepemilikan Objek, Anda, sebagai pemilik bucket, memiliki dan memiliki kendali penuh atas objek baru yang ditulis akun lain ke bucket Anda dengan ACL terekam bucket-owner-full-control. Namun, jika akun lain menulis objek ke bucket Anda tanpa ACL terekambucket-owner-full-control, penulis objek mempertahankan akses kontrol penuh. Anda, sebagai pemilik bucket, dapat menerapkan kebijakan bucket yang mengizinkan penulisan hanya jika mereka menentukan ACL terekam bucket-owner-full-control.

catatan

Jika ACL dinonaktifkan dengan pengaturan yang diberlakukan pemilik Bucket, Anda, sebagai pemilik bucket, secara otomatis memiliki dan memiliki kendali penuh atas semua objek di bucket Anda. Anda tidak perlu menggunakan bagian ini untuk memperbarui kebijakan bucket guna menegakkan kepemilikan objek bagi pemilik bucket.

Kebijakan bucket berikut ini menentukan akun tersebut 111122223333 dapat unggah objek ke DOC-EXAMPLE-BUCKET hanya ketika objek ACL diatur ke bucket-owner-full-control. Pastikan untuk mengganti 111122223333 dengan akun Anda, dan DOC-EXAMPLE-BUCKET dengan nama bucket Anda.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "Only allow writes to my bucket with bucket owner full control", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::111122223333:user/ExampleUser" ] }, "Action": [ "s3:PutObject" ], "Resource": "arn:aws:s3:::DOC-EXAMPLE-BUCKET/*", "Condition": { "StringEquals": { "s3:x-amz-acl": "bucket-owner-full-control" } } } ] }

Berikut ini adalah contoh operasi penyalinan yang menyertakan bucket-owner-full-control ACL terekam dengan menggunakan AWS Command Line Interface (AWS CLI).

aws s3 cp file.txt s3://DOC-EXAMPLE-BUCKET --acl bucket-owner-full-control

Setelah kebijakan bucket diberlakukan, jika klien tidak menyertakan ACL terekam bucket-owner-full-control, maka operasi akan gagal, dan pengunggah menerima kesalahan berikut:

Terjadi kesalahan (AccessDenied) saat memanggil PutObject operasi: Akses Ditolak.

catatan

Jika klien perlu mengakses objek setelah mengunggah, maka Anda harus memberikan izin tambahan untuk akun pengunggah. Untuk informasi tentang bagaimana memberikan akun akses ke sumber daya Anda, lihat Panduan yang menggunakan kebijakan untuk mengelola akses ke sumber daya Amazon S3.