Panduan kebijakan akses - Amazon Simple Storage Service

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

Panduan kebijakan akses

Amazon S3 mendukung kebijakan berbasis sumber daya dan kebijakan pengguna untuk mengelola akses ke sumber daya Amazon S3 Anda. Untuk informasi selengkapnya, lihat Mengelola akses ke sumber daya. Kebijakan berbasis sumber daya mencakup kebijakan, daftar kontrol akses (ACL) bucket, dan ACL objek. Bagian ini menjelaskan skenario spesifik untuk menggunakan kebijakan akses berbasis sumber daya untuk mengelola akses ke sumber daya Amazon S3 Anda.

Kapan harus menggunakan kebijakan akses berbasis ACL ( ACL bucket dan objek)

Baik bucket maupun objek memiliki ACL terkait yang dapat Anda gunakan untuk memberikan izin.

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

Mayoritas kasus penggunaan modern di Amazon S3 tidak lagi memerlukan penggunaan ACL. Kami menyarankan agar ACL dinonaktifkan, kecuali dalam keadaan yang tidak biasa ketika Anda perlu mengontrol akses untuk setiap objek secara individual. Dengan ACL dinonaktifkan, Anda dapat menggunakan kebijakan untuk mengontrol akses ke semua objek di bucket, terlepas dari siapa yang mengunggah objek ke bucket Anda. Untuk informasi selengkapnya, lihat Mengontrol kepemilikan objek dan menonaktifkan ACL untuk bucket Anda.

penting

Jika bucket Anda menggunakan pengaturan yang diberlakukan pemilik bucket untuk Kepemilikan Objek S3, Anda harus menggunakan kebijakan untuk memberikan akses ke bucket Anda, serta objek di dalamnya. Dengan mengaktifkan pengaturan yang diberlakukan pemilik Bucket, permintaan untuk mengatur daftar kontrol akses (ACL) atau memperbarui ACL akan gagal dan mengembalikan kode kesalahan AccessControlListNotSupported. Permintaan untuk membaca ACL masih didukung.

Kapan menggunakan ACL objek

Berikut ini adalah skenario saat Anda menggunakan ACLs objek untuk mengelola izin-izin.

Objek tidak dimiliki oleh pemilik bucket

ACL objek adalah satu-satunya cara untuk mengelola akses ke objek yang tidak dimiliki oleh pemilik bucket. Sebuah Akun AWS yang memiliki bucket dapat memberikan Akun AWS izin lain untuk mengunggah objek. Pemilik bucket tidak memiliki objek-objek tersebut. Akun AWS Yang menciptakan objek harus memberikan izin menggunakan ACL objek.

catatan

Pemilik bucket tidak dapat memberikan izin pada objek yang tidak dimilikinya. Contohnya, kebijakan bucket yang memberikan izin objek hanya berlaku untuk objek yang dimiliki oleh pemilik bucket. Namun, pemilik bucket, yang membayar tagihan, dapat menulis kebijakan bucket untuk menolak akses ke objek apa pun di dalam bucket, terlepas dari siapa pemilik objek tersebut. Pemilik bucket juga dapat menghapus objek apa pun dalam bucket.

Anda perlu mengelola izin pada tingkat objek

Misalkan izin bervariasi menurut objek dan Anda perlu mengelola izin di tingkat objek. Anda dapat tulis pernyataan kebijakan tunggal pemberian izin membaca Akun AWS pada jutaan objek dengan prefiks nama kunci yang spesifik. Misalnya, pemberian izin baca pada objek yang dimulai dengan prefiks nama kunci logs. Namun, jika izin akses Anda berbeda berdasarkan objek, pemberian izin kepada masing-masing objek dengan menggunakan kebijakan bucket tidak dapat dilakukan. Selain itu, ukuran kebijakan bucket dibatasi hingga 20 KB.

Dalam hal ini, Anda mungkin menemukan bahwa menggunakan ACL objek adalah alternatif yang sesuai. Meskipun demikian, ACL objek juga terbatas pada maksimum 100 pemberian. Untuk informasi selengkapnya, lihat Gambaran umum daftar kontrol akses (ACL).

Objek ACLs mengendalikan hanya objek tingkat izin

Terdapat kebijakan bucket tunggal untuk seluruh bucket, tetapi ACL objek ditentukan per objek.

Sebuah Akun AWS yang memiliki bucket dapat memberikan Akun AWS izin lain untuk mengelola kebijakan akses. Melakukan hal itu memungkinkan akun itu mengubah apa pun dalam kebijakan. Untuk mengelola izin dengan lebih baik, Anda dapat memilih untuk tidak memberikan izin secara luas, dan sebagai gantinya, Anda hanya memberikan akun lain READ-ACP dan WRITE-ACP izin pada sebagian objek. Hal ini akan membatasi akun untuk mengelola izin hanya pada objek tertentu dengan memperbarui masing-masing ACL objek.

Jika Anda ingin menggunakan ACL untuk mengelola izin di tingkat objek dan Anda juga ingin memiliki objek baru yang ditulis ke bucket, Anda dapat menerapkan pengaturan pilihan pemilik bucket untuk Kepemilikan Objek. Ember dengan pengaturan pilihan pemilik bucket terus menerima dan menghormati ACL bucket dan objek. Dengan pengaturan ini, objek baru yang ditulis dengan ACL bucket-owner-full-control terekam akan secara otomatis dimiliki oleh pemilik bucket daripada penulis objek. Semua perilaku ACL lainnya tetap sama. Untuk mewajibkan semua operasi PUT Amazon S3 untuk menyertakan ACL yang bucket-owner-full-control terekam, Anda dapat menambahkan kebijakan bucket yang hanya mengizinkan pengunggahan objek menggunakan ACL ini.

Alternatif untuk menggunakan ACL

Selain ACL objek, ada cara lain yang dapat dilakukan pemilik objek untuk mengelola izin objek:

  • Jika Akun AWS yang memiliki objek juga memiliki bucket, ia dapat menulis kebijakan bucket untuk mengelola izin objek.

  • Jika Akun AWS yang memiliki objek ingin memberikan izin kepada pengguna di akunnya, itu dapat menggunakan kebijakan pengguna.

  • Jika Anda, sebagai pemilik bucket, ingin memiliki secara otomatis dan memiliki kontrol penuh atas setiap objek di bucket Anda, Anda dapat menerapkan pengaturan yang diberlakukan pemilik bucket untuk Kepemilikan Objek untuk menonaktifkan ACL. Akibatnya, kontrol akses untuk data Anda didasarkan pada kebijakan. Untuk informasi selengkapnya, lihat Mengontrol kepemilikan objek dan menonaktifkan ACL untuk bucket Anda.

Kapan menggunakan ACL bucket

Satu-satunya kasus penggunaan yang disarankan untuk bucket ACL adalah memberikan izin kepada tertentu Layanan AWS seperti akun Amazon CloudFront awslogsdelivery. Saat Anda membuat atau memperbarui distribusi dan mengaktifkan CloudFront pencatatan, CloudFront perbarui bucket ACL untuk memberikan FULL_CONTROL izin awslogsdelivery akun untuk menulis log ke bucket Anda. Untuk informasi selengkapnya, lihat Izin yang diperlukan untuk mengonfigurasi pencatatan standar dan mengakses file log Anda di Panduan CloudFront Pengembang Amazon. Jika bucket yang menyimpan log menggunakan pengaturan yang diberlakukan pemilik bucket untuk Kepemilikan Objek S3 untuk menonaktifkan ACL, CloudFront tidak dapat menulis log ke bucket. Untuk informasi selengkapnya, lihat Mengontrol kepemilikan objek dan menonaktifkan ACL untuk bucket Anda.

Kapan harus menggunakan kebijakan bucket

Jika pemilik bucket ingin memberikan izin kepada pengguna di akunnya, ia dapat menggunakan kebijakan bucket atau kebijakan pengguna. Akun AWS Akan tetapi, dalam skenario berikut, Anda harus menggunakan kebijakan bucket.

Anda ingin mengelola izin lintas-akun untuk semua izin Amazon S3

Anda dapat menggunakan ACL untuk memberikan izin lintas akun ke akun lain. Tapi ACL mendukung hanya satu set terbatas izin, dan ini tidak termasuk semua izin Amazon S3. Untuk informasi selengkapnya, lihat Izin apa yang dapat saya berikan? Misalnya, Anda tidak dapat memberikan izin pada sub-sumber daya bucket. Untuk informasi selengkapnya, lihat Manajemen identitas dan akses untuk Amazon S3.

Kedua bucket dan pengguna kebijakan mendukung pemberian izin untuk semua operasi Amazon S3. (Untuk informasi selengkapnya, lihat Tindakan kebijakan Amazon S3.) Namun, kebijakan pengguna adalah untuk mengelola izin bagi pengguna di akun Anda. Untuk izin lintas akun yang diberikan untuk Akun AWS lain atau pengguna di akun lain, maka Anda harus menggunakan kebijakan bucket.

Kapan harus menggunakan kebijakan pengguna

Secara umum, Anda dapat menggunakan kebijakan pengguna atau kebijakan bucket untuk mengelola izin. Anda dapat memilih untuk mengelola izin dengan membuat pengguna dan mengelola izin untuk masing-masing pengguna dengan melampirkan kebijakan kepada pengguna (atau grup pengguna). Atau, Anda mungkin menemukan bahwa kebijakan berbasis sumber daya, seperti kebijakan bucket, bekerja lebih baik untuk skenario Anda.

Dengan AWS Identity and Access Management (IAM) Anda dapat membuat beberapa pengguna di dalam Anda Akun AWS dan mengelola izin mereka melalui kebijakan pengguna. Pengguna IAM harus memiliki izin dari akun induk yang dimilikinya, dan dari Akun AWS yang memiliki sumber daya yang ingin diakses pengguna. Izin dapat diberikan seperti berikut ini:

  • Izin dari akun induk – Akun induk dapat memberikan izin kepada penggunanya dengan melampirkan kebijakan pengguna.

  • Izin dari pemilik sumber daya – Pemilik sumber daya dapat memberikan izin baik kepada pengguna IAM (menggunakan kebijakan bucket) atau akun induk (dengan menggunakan kebijakan bucket, ACL bucket, atau ACL objek).

Hal ini mirip dengan anak yang ingin bermain dengan mainan milik orang lain. Untuk memainkan mainan tersebut, anak itu harus mendapatkan izin dari orang tua dan izin dari pemilik mainannya.

Untuk informasi selengkapnya, lihat Kebijakan bucket dan Kebijakan Pengguna.

Delegasi izin

Jika Akun AWS memiliki sumber daya, ia dapat memberikan izin tersebut kepada yang lain. Akun AWS Akun tersebut kemudian dapat mendelegasikan izin-izin tersebut, atau sebagian izin, kepada pengguna dalam akun. Ini disebut sebagai delegasi izin. Namun demikian, akun yang menerima izin dari akun lain tidak dapat mendelegasikan izin secara lintas akun ke Akun AWS lain.

Kami menyarankan Anda untuk terlebih dahulu meninjau semua topik pendahuluan yang menjelaskan cara mengelola akses ke sumber daya Amazon S3 Anda dan pedoman-pedoman terkait. Untuk informasi selengkapnya, lihat Manajemen identitas dan akses untuk Amazon S3. Kemudian, Anda dapat menggunakan topik-topik berikut untuk mendapatkan informasi lebih lanjut mengenai opsi kebijakan akses kustom.