Mengatur izin untuk akses situs web - Amazon Simple Storage Service

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

Mengatur izin untuk akses situs web

Saat Anda mengonfigurasikan bucket sebagai situs web statis, jika Anda ingin situs web Anda bersifat publik, Anda dapat memberikan akses baca publik. Agar bucket dapat dibaca publik, Anda harus menonaktifkan pengaturan akses publik untuk bucket dan menulis kebijakan bucket yang memberi akses baca publik. Jika bucket berisi objek yang tidak dimiliki oleh pemilik bucket, Anda mungkin juga perlu menambahkan object access control list (ACL) yang memberikan akses baca kepada semua orang.

Jika Anda tidak ingin menonaktifkan blokir pengaturan akses publik untuk bucket Anda tetapi Anda masih ingin situs web Anda menjadi publik, Anda dapat membuat CloudFront distribusi Amazon untuk melayani situs web statis Anda. Untuk informasi selengkapnya, lihat Mempercepat situs web Anda dengan Amazon CloudFront atau Menggunakan CloudFront distribusi Amazon untuk menayangkan situs web statis di Panduan Pengembang Amazon Route 53.

catatan

Di titik akhir situs web, jika pengguna meminta objek yang tidak ada, Amazon S3 HTTP mengembalikan kode respons. 404 (Not Found) Jika objek ada tetapi Anda belum memberikan izin baca di atasnya, titik akhir situs web mengembalikan kode HTTP 403 (Access Denied) respons. Pengguna dapat menggunakan kode respons untuk menyimpulkan apakah objek tertentu ada. Jika Anda tidak menginginkan perilaku ini, Anda tidak boleh mengaktifkan dukungan situs web untuk bucket Anda.

Langkat 1: Edit pengaturan Blokir Akses Publik S3

Jika Anda ingin mengonfigurasi bucket yang ada sebagai situs web statis yang memiliki akses publik, Anda harus mengedit pengaturan Blokir Akses Publik untuk bucket tersebut. Anda mungkin juga perlu mengedit pengaturan Blokir Akses Publik tingkat akun Anda. Amazon S3 menerapkan kombinasi paling ketat dari pengaturan akses publik tingkat bucket dan tingkat akun.

Misalnya, jika Anda mengizinkan akses publik untuk bucket tetapi memblokir semua akses publik di tingkat akun, Amazon S3 akan terus memblokir akses publik ke bucket. Dalam skenario ini, Anda harus mengedit pengaturan Blokir Akses Publik tingkat bucket dan tingkat akun Anda. Untuk informasi selengkapnya, lihat Melakukan blok akses publik ke penyimpanan Amazon S3 Anda.

Secara default, Amazon S3 memblokir akses publik ke akun dan bucket Anda. Jika Anda ingin menggunakan bucket untuk menghosting situs web statis, Anda dapat menggunakan langkah-langkah ini untuk mengedit pengaturan blokir akses publik Anda.

Awas

Sebelum Anda menyelesaikan langkah-langkah ini, tinjau Melakukan blok akses publik ke penyimpanan Amazon S3 Anda untuk memastikan bahwa Anda memahami dan menerima risiko yang terkait dengan mengizinkan akses publik. Saat Anda mematikan pengaturan blokir akses publik untuk membuat bucket Anda menjadi publik, siapa pun di internet dapat mengakses bucket Anda. Kami sarankan agar Anda memblokir semua akses publik ke bucket Anda.

  1. Buka konsol Amazon S3 di. https://console.aws.amazon.com/s3/

  2. Pilih nama bucket yang telah Anda konfigurasikan sebagai situs web statis.

  3. Pilih Izin.

  4. Di bagian bawah Blokir akses publik (pengaturan bucket), pilih Edit.

  5. Kosongkan Blokir semua akses publik, lalu pilih Simpan perubahan.

    Konsol Amazon S3, menampilkan pengaturan bucket akses publik blok.

    Amazon S3 mematikan pengaturan Blokir Akses Publik untuk bucket Anda. Untuk membuat situs web statis publik, Anda mungkin juga harus mengedit pengaturan Blokir Akses Publik untuk akun Anda sebelum menambahkan kebijakan bucket. Jika pengaturan Blokir Akses Publik untuk akun Anda saat ini diaktifkan, Anda akan melihat catatan di bawah Blokir akses publik (pengaturan bucket).

Langkah 2: Menambahkan kebijakan bucket

Untuk membuat objek dalam bucket Anda dapat dibaca publik, Anda harus menulis kebijakan bucket yang memberikan setiap orang izin s3:GetObject.

Setelah Anda mengedit pengaturan Blokir Akses Publik S3, Anda dapat menambahkan kebijakan bucket untuk memberikan akses baca publik ke bucket Anda. Saat Anda memberikan akses baca publik, siapa pun di internet dapat mengakses bucket Anda.

penting

Kebijakan berikut ini hanya merupakan contoh, dan memungkinkan akses penuh ke konten bucket Anda. Sebelum melanjutkan langkah ini, tinjau Bagaimana saya dapat mengamankan file dalam bucket Amazon S3 saya? untuk memastikan bahwa Anda telah memahami praktik terbaik untuk mengamankan file dalam bucket S3, dan risiko yang terlibat dalam pemberian akses publik.

  1. Di bagian bawah Bucket, pilih nama bucket Anda.

  2. Pilih Izin.

  3. Di Bawah Kebijakan bucket, pilih Edit.

  4. Untuk memberikan akses baca bagi publik untuk situs web Anda, salin kebijakan kelompok berikut, dan tempelkan di Editor kebijakan bucket.

    { "Version": "2012-10-17", "Statement": [ { "Sid": "PublicReadGetObject", "Effect": "Allow", "Principal": "*", "Action": [ "s3:GetObject" ], "Resource": [ "arn:aws:s3:::Bucket-Name/*" ] } ] }
  5. Perbarui Resource dengan nama kelompok Anda.

    Dalam contoh kebijakan bucket sebelumnya, Bucket-Name adalah placeholder untuk nama bucket. Untuk menggunakan kebijakan bucket ini dengan bucket Anda sendiri, Anda harus memperbarui nama ini agar sesuai dengan nama bucket Anda.

  6. Pilih Simpan perubahan.

    Pesan akan muncul, yang menunjukkan bahwa kebijakan bucket telah berhasil ditambahkan.

    Jika Anda melihat kesalahan yang mengatakan Policy has invalid resource, konfirmasikan bahwa nama bucket dalam kebijakan bucket tersebut sesuai dengan nama bucket Anda. Untuk informasi tentang menambahkan kebijakan bucket, lihat Bagaimana cara menambahkan kebijakan S3 bucket?

    Jika Anda mendapatkan pesan kesalahan dan tidak dapat menyimpan kebijakan bucket, periksa pengaturan akun dan bucket Blokir Akses Publik untuk mengonfirmasi bahwa Anda mengizinkan akses publik ke bucket.

Daftar kontrol akses objek

Anda dapat menggunakan kebijakan bucket untuk memberikan izin baca publik kepada objek Anda. Namun, kebijakan bucket hanya berlaku untuk objek yang dimiliki oleh pemilik bucket. Jika bucket berisi objek yang tidak dimiliki oleh pemilik bucket, pemilik bucket harus menggunakan object access control list (ACL) untuk memberikan READ izin publik pada objek tersebut.

S3 Object Ownership adalah setelan tingkat ember Amazon S3 yang dapat Anda gunakan untuk mengontrol kepemilikan objek yang diunggah ke bucket dan untuk menonaktifkan atau mengaktifkan. ACLs Secara default, Kepemilikan Objek disetel ke setelan diberlakukan pemilik Bucket, dan semuanya ACLs dinonaktifkan. Ketika ACLs dinonaktifkan, pemilik bucket memiliki semua objek di bucket dan mengelola akses ke mereka secara eksklusif dengan menggunakan kebijakan manajemen akses.

Mayoritas kasus penggunaan modern di Amazon S3 tidak lagi memerlukan penggunaan. ACLs Kami menyarankan agar Anda tetap ACLs dinonaktifkan, kecuali dalam keadaan yang tidak biasa di mana Anda perlu mengontrol akses untuk setiap objek secara individual. Dengan ACLs 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 bucket ACLs 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 pengaturan yang diberlakukan pemilik Bucket diaktifkan, permintaan untuk menyetel daftar kontrol akses (ACLs) atau pembaruan ACLs gagal dan mengembalikan kode AccessControlListNotSupported kesalahan. Permintaan untuk membaca ACLs masih didukung.

Untuk membuat objek dapat dibaca publik menggunakanACL, berikan READ izin kepada AllUsers grup, seperti yang ditunjukkan pada elemen hibah berikut. Tambahkan elemen hibah ini ke objekACL. Untuk informasi tentang mengelolaACLs, lihatDaftar kontrol akses (ACL) ikhtisar.

<Grant> <Grantee xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="Group"> <URI>http://acs.amazonaws.com/groups/global/AllUsers</URI> </Grantee> <Permission>READ</Permission> </Grant>