Melakukan blok akses publik ke penyimpanan Amazon S3 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.

Melakukan blok akses publik ke penyimpanan Amazon S3 Anda

Fitur Blokir Akses Publik Amazon S3 menyediakan pengaturan untuk titik akses, bucket, dan akun untuk membantu Anda mengelola akses publik ke sumber daya Amazon S3. Secara bawaan, bucket baru, titik akses, dan objek baru tidak mengizinkan akses publik. Namun, pengguna dapat memodifikasi kebijakan bucket, kebijakan titik akses, atau izin objek untuk memungkinkan akses publik. Pengaturan S3 Blokir Akses Publik menolak kebijakan-kebijakan dan izin tersebut sehingga Anda dapat membatasi akses publik ke sumber daya.

Dengan S3 Blokir Akses Publik, administrator akun dan pemilik bucket dapat dengan mudah menyiapkan kontrol terpusat untuk membatasi akses publik ke sumber daya Amazon S3 mereka yang diberlakukan terlepas dari bagaimana sumber daya tersebut dibuat.

Untuk petunjuk tentang mengonfigurasi akses blok publik, lihat Mengonfigurasi blokir akses publik.

Saat Amazon S3 menerima permintaan untuk mengakses bucket atau objek, itu akan menentukan apakah akun dari bucket atau pemilik bucket menerapkan blokir akses publik. Jika permintaan tersebut dibuat melalui titik akses, maka Amazon S3 juga memeriksa pengaturan blokir akses publik untuk titik akses tersebut. Jika ada pengaturan blokir akses publik yang sudah ada yang melarang akses yang diminta tersebut, maka Amazon S3 akan menolak permintaan tersebut.

Blokir Akses Publik Amazon S3 menyediakan empat pengaturan. Pengaturan ini bersifat independen dan dapat digunakan dalam kombinasi apa pun. Setiap pengaturan dapat diterapkan ke titik akses, bucket, atau seluruh Akun AWS. Jika pengaturan blokir akses publik untuk titik akses, bucket, atau akun berbeda, maka Amazon S3 akan menerapkan kombinasi yang paling ketat dari pengaturan titik akses, bucket, dan akun.

Ketika Amazon S3 mengevaluasi apakah suatu operasi dilarang oleh pengaturan blokir akses publik, itu akan menolak permintaan apa pun yang melanggar titik akses, bucket, atau pengaturan akun.

penting

Akses publik diberikan kepada bucket dan objek melalui daftar kontrol akses (ACL), kebijakan titik akses, kebijakan bucket, atau semuanya. Untuk membantu memastikan bahwa semua titik akses Amazon S3, bucket, dan objek Anda diblokir akses publiknya, kami menyarankan Anda untuk mengaktifkan keempat pengaturan guna memblokir akses publik untuk akun Anda. Pengaturan ini memblokir akses publik untuk semua bucket dan titik akses saat ini dan mendatang.

Sebelum menerapkan pengaturan ini, verifikasi bahwa aplikasi Anda akan bekerja dengan baik tanpa akses publik. Jika Anda memerlukan beberapa tingkat akses publik ke bucket atau objek Anda—misalnya, untuk menjadi host situs web statis seperti yang dijelaskan di Hosting situs web statis menggunakan Amazon S3—Anda dapat menyesuaikan pengaturan individual agar sesuai dengan kasus penggunaan penyimpanan Anda.

Mengaktifkan Blokir Akses Publik membantu melindungi sumber daya Anda dengan mencegah akses publik diberikan melalui kebijakan sumber daya atau daftar kontrol akses (ACL) yang langsung dilampirkan ke sumber daya S3. Selain mengaktifkan Blokir Akses Publik, periksa kebijakan berikut dengan cermat untuk mengonfirmasi bahwa kebijakan tersebut tidak memberikan akses publik:

  • Kebijakan berbasis identitas yang dilampirkan pada AWS prinsipal terkait (misalnya, peran IAM)

  • Kebijakan berbasis sumber daya yang dilampirkan pada AWS sumber daya terkait (misalnya, kunci (KMS AWS Key Management Service ))

catatan
  • Anda dapat mengaktifkan pengaturan blokir akses publik hanya untuk titik akses, bucket, dan Akun AWS. Amazon S3 tidak mendukung pengaturan blokir akses publik secara per-objek.

  • Saat Anda menerapkan pengaturan blokir akses publik ke akun, pengaturan berlaku untuk semua Wilayah AWS secara global. Pengaturan tersebut mungkin tidak berlaku di semua Wilayah secara langsung atau bersamaan, tetapi pada akhirnya akan menyebar ke semua Wilayah.

Pengaturan blokir akses publik

S3 Blokir Akses Publik menyediakan empat pengaturan. Anda dapat menerapkan pengaturan ini dalam kombinasi apa pun ke titik akses individu, bucket, atau seluruh Akun AWS. Jika Anda menerapkan pengaturan tersebut ke sebuah akun, pengaturan tersebut akan berlaku untuk semua bucket dan titik akses yang dimiliki oleh akun tersebut. Demikian pula, jika Anda menerapkan pengaturan tersebut pada bucket, maka pengaturan tersebut berlaku untuk semua titik akses yang terkait dengan bucket tersebut.

Tabel berikut berisi pengaturan-pengaturan yang tersedia.

Nama Deskripsi
BlockPublicAcls

Mengatur opsi ini menjadi TRUE akan menyebabkan perilaku berikut ini:

  • Panggilan acl PUT bucket dan acl PUT Objek tidak berfungsi jika daftar kontrol akses (ACL) yang ditentukan bersifat publik.

  • Panggilan PUT Objek dianggap gagal jika permintaan mencakup ACL publik.

  • Jika pengaturan ini diterapkan ke akun, maka panggilan PUT bucket gagal jika permintaan menyertakan ACL publik.

Saat pengaturan ini disetel keTRUE, operasi yang ditentukan gagal (baik dilakukan melalui REST API AWS CLI, atau AWS SDK). Namun demikian, kebijakan dan ACL yang sudah ada untuk bucket dan objek tidak dimodifikasi. Pengaturan ini mengaktifkan Anda untuk melindungi dari akses publik sekaligus mengizinkan Anda untuk mengaudit, menyempurnakan, atau sebaliknya mengubah kebijakan dan ACL yang sudah ada untuk bucket dan objek Anda.

catatan

Titik akses tidak memiliki ACL yang memiliki asosiasi dengannya. Jika Anda menerapkan pengaturan ini ke titik akses, maka pengaturan bertindak sebagai jalur ke bucket yang mendasarinya. Jika titik akses mengaktifkan pengaturan ini, maka permintaan yang dibuat melalui titik akses tersebut akan tetap berfungsi seolah-olah bucket yang mendasari akan mengaktifkan pengaturan ini, terlepas dari apakah bucket benar-benar mengaktifkan pengaturan tersebut atau tidak.

IgnorePublicAcls

Mengatur opsi ini menjadi TRUE akan menyebabkan Amazon S3 mengabaikan semua ACL publik di bucket dan setiap objek yang dimuatnya. Pengaturan ini mengaktifkan Anda untuk dengan aman melakukan blokir akses publik yang diberikan oleh ACL sekaligus masih mengizinkan panggilan PUT Objek yang menyertakan ACL publik (berbeda dengan BlockPublicAcls, yang menolak panggilan PUT Objek yang menyertakan ACL publik). Pengaktifan pengaturan ini tidak memengaruhi ketahanan dari ACL yang ada dan tidak mencegah ACL publik baru diatur.

catatan

Titik akses tidak memiliki ACL yang memiliki asosiasi dengannya. Jika Anda menerapkan pengaturan ini ke titik akses, maka pengaturan bertindak sebagai jalur ke bucket yang mendasarinya. Jika titik akses mengaktifkan pengaturan ini, maka permintaan yang dibuat melalui titik akses tersebut akan tetap berfungsi seolah-olah bucket yang mendasari akan mengaktifkan pengaturan ini, terlepas dari apakah bucket benar-benar mengaktifkan pengaturan tersebut atau tidak.

BlockPublicPolicy

Pengaturan opsi ini ke bucket TRUE menyebabkan Amazon S3 menolak panggilan ke kebijakan PUT Bucket jika kebijakan bucket yang ditentukan mengizinkan akses publik. Pengaturan opsi TRUE ini menjadi bucket juga akan menyebabkan Amazon S3 menolak panggilan ke kebijakan PUT titik akses untuk semua titik akses akun bucket yang sama jika kebijakan yang ditentukan mengizinkan akses publik.

Mengatur opsi ini untuk titik akses TRUE akan menyebabkan Amazon S3 menolak panggilan ke kebijakan PUT titik akses dan kebijakan PUT Bucket yang dibuat melalui titik akses tersebut jika kebijakan yang ditentukan (baik untuk titik akses atau bucket yang mendasari) memungkinkan akses publik.

Anda dapat menggunakan pengaturan ini untuk memungkinkan pengguna mengelola kebijakan titik akses dan bucket tanpa mengizinkan mereka membagikan bucket atau objek yang dimuatnya secara publik. Mengaktifkan pengaturan ini tidak memengaruhi kebijakan titik akses atau bucket yang sudah ada.

penting

Untuk menggunakan pengaturan ini secara efektif, kami menyarankan Anda menerapkannya di level akun. Kebijakan bucket dapat memungkinkan pengguna untuk mengubah pengaturan blokir akses publik bucket. Oleh karena itu, pengguna yang memiliki izin untuk mengubah kebijakan bucket dapat memasukkan kebijakan yang memungkinkan mereka menonaktifkan pengaturan blokir akses publik untuk bucket tersebut. Jika pengaturan ini diaktifkan untuk seluruh akun, bukannya untuk bucket tertentu, Amazon S3 memblokir kebijakan publik bahkan jika pengguna mengubah kebijakan bucket untuk menonaktifkan pengaturan ini.

RestrictPublicBuckets

Menyetel opsi ini untuk TRUE membatasi akses ke titik akses atau bucket dengan kebijakan publik hanya untuk prinsipal AWS layanan dan pengguna resmi dalam akun pemilik bucket dan akun pemilik jalur akses. Pengaturan ini memblokir semua akses lintas akun ke titik akses atau bucket (kecuali oleh prinsipal AWS layanan), sambil tetap memungkinkan pengguna di dalam akun untuk mengelola titik akses atau bucket.

Mengaktifkan pengaturan ini tidak memengaruhi kebijakan titik akses atau bucket yang sudah ada, kecuali bahwa Amazon S3 memblokir akses publik dan akses lintas akun yang berasal dari setiap titik akses publik atau kebijakan bucket, termasuk delegasi non-publik ke akun tertentu.

penting
  • Panggilan ke GET bucket dan GET Object selalu mengembalikan izin efektif yang ada untuk bucket atau objek yang ditentukan. Sebagai contoh, anggaplah sebuah bucket memiliki ACL yang memberikan akses publik, tetapi bucket tersebut juga mengaktifkan pengaturan IgnorePublicAcls. Dalam hal ini, acl GET bucket menghasilkan ACL yang mencerminkan izin akses yang diterapkan Amazon S3, bukannya ACL aktual yang terkait dengan bucket.

  • Melakukan blok pengaturan akses publik tidak mengubah kebijakan atau ACL yang ada. Oleh karena itu, menghapus pengaturan blokir akses publik akan menyebabkan bucket atau objek yang memiliki kebijakan publik atau ACL dapat diakses oleh publik lagi.

Melakukan operasi akses publik blok pada titik akses

Untuk melakukan memblokir operasi akses publik pada titik akses, gunakan AWS CLI layanan inis3control.

penting

Perhatikan bahwa saat ini tidak memungkinkan untuk mengubah pengaturan blokir akses publik milik titik akses setelah membuat titik akses. Dengan demikian, satu-satunya cara untuk menentukan pengaturan blokir akses publik untuk titik akses adalah dengan menyertakannya saat membuat titik akses.

Arti “publik”

ACLs

Amazon S3 menganggap ACL bucket atau objek bersifat publik jika memberikan izin kepada anggota dari AllUsers atau grup AuthenticatedUsers yang telah ditentukan sebelumnya. Untuk informasi lebih lanjut tentang grup yang telah ditentukan sebelumnya, lihat Grup Amazon S3 yang sudah ditentukan sebelumnya.

Kebijakan bucket

Saat mengevaluasi kebijakan bucket, Amazon S3 memulai dengan mengasumsikan bahwa kebijakan tersebut bersifat publik. Itu kemudian mengevaluasi kebijakan tersebut untuk menentukan apakah kebijakan tersebut memenuhi syarat sebagai non-publik. Agar dianggap non-publik, suatu kebijakan bucket harus memberikan akses hanya ke nilai-nilai tetap (nilai yang tidak mengandung wildcard atau Variabel AWS Identity and Access Management Kebijakan) untuk satu atau lebih berikut ini:

  • AWS Prinsipal, pengguna, peran, atau prinsipal layanan (mis.aws:PrincipalOrgID)

  • Satu set Perutean Antar-Domain Tanpa Kelas (CIDRs), menggunakan aws:SourceIp. Untuk informasi lebih lanjut tentang CIDR, lihat RFC 4632 di situs web Editor RFC.

    catatan

    Kebijakan bucket yang memberikan akses yang dikondisikan pada kunci kondisi aws:SourceIp dengan rentang IP yang sangat luas (misalnya, 0.0.0.0/1) dievaluasi sebagai “publik.” Ini termasuk nilai yang lebih luas dari /8 untuk IPv4 dan /32 untuk IPv6 (tidak termasuk rentang pribadi RFC1918). Blokir akses publik akan menolak kebijakan “publik” ini dan mencegah akses lintas akun ke bucket yang sudah menggunakan kebijakan “publik: ini.

  • aws:SourceArn

  • aws:SourceVpc

  • aws:SourceVpce

  • aws:SourceOwner

  • aws:SourceAccount

  • s3:x-amz-server-side-encryption-aws-kms-key-id

  • aws:userid, di luar dari pola "AROLEID:*"

  • s3:DataAccessPointArn

    catatan

    Ketika digunakan dalam kebijakan bucket, nilai ini dapat memuat wildcard untuk nama titik akses tanpa mengubah kebijakan publik, selama id akunnya tetap sama. Misalnya, memungkinkan akses ke arn:aws:s3:us-west-2:123456789012:accesspoint/* akan mengizinkan akses ke setiap titik akses yang terkait dengan akun 123456789012 di Wilayah us-west-2, tanpa membuat kebijakan bucket menjadi publik. Perhatikan bahwa perilaku ini berbeda untuk kebijakan titik akses. Untuk informasi selengkapnya, lihat Titik Akses.

  • s3:DataAccessPointAccount

Untuk informasi lebih lanjut tentang kebijakan bucket, lihat Kebijakan bucket untuk Amazon S3.

contoh : Kebijakan bucket publik

Menurut aturan ini, contoh kebijakan-kebijakan berikut ini dianggap publik.

{ "Principal": "*", "Resource": "*", "Action": "s3:PutObject", "Effect": "Allow" }
{ "Principal": "*", "Resource": "*", "Action": "s3:PutObject", "Effect": "Allow", "Condition": { "StringLike": {"aws:SourceVpc": "vpc-*"}} }

Anda dapat membuat kebijakan-kebijakan ini non-publik dengan memasukkan kunci kondisi yang tercantum sebelumnya, dengan menggunakan nilai tetap. Misalnya, Anda dapat membuat kebijakan terakhir sebelumnya menjadi non-publik dengan mengatur aws:SourceVpc dengan nilai tetap, seperti berikut ini.

{ "Principal": "*", "Resource": "*", "Action": "s3:PutObject", "Effect": "Allow", "Condition": {"StringEquals": {"aws:SourceVpc": "vpc-91237329"}} }

Cara Amazon S3 mengevaluasi kebijakan bucket yang berisi pemberian akses publik dan non-publik

Contoh ini menunjukkan bagaimana Amazon S3 mengevaluasi kebijakan bucket yang berisi pemberian akses, baik publik maupun non-publik.

Anggaplah bucket memiliki kebijakan yang memberikan akses ke serangkaian pengguna utama tetap. Berdasarkan peraturan yang dijelaskan sebelumnya, kebijakan ini tidak boleh dibuat menjadi publik. Dengan demikian, jika Anda mengaktifkan pengaturan RestrictPublicBuckets, maka kebijakan tetap berlaku sebagaimana yang tertulis, karena RestrictPublicBuckets hanya berlaku untuk bucket yang memiliki kebijakan publik. Namun, jika Anda menambahkan pernyataan publik pada kebijakan tersebut, RestrictPublicBuckets berpengaruh pada bucket. Ini hanya memungkinkan kepala AWS layanan dan pengguna resmi akun pemilik bucket untuk mengakses bucket.

Sebagai contoh, anggaplah bahwa sebuah bucket yang dimiliki "Akun-1" memiliki kebijakan yang memuat hal-hal berikut:

  1. Pernyataan yang memberikan akses ke AWS CloudTrail (yang merupakan prinsipal AWS layanan)

  2. Pernyataan yang memberikan akses ke akun “Akun-2”

  3. Pernyataan yang memberikan akses ke publik, misalnya dengan menentukan "Principal": "*" tanpa membatasi Condition

Kebijakan ini memenuhi kualifikasi sebagai kebijakan bersifat publik karena pernyataan ketiga. Dengan kebijakan ini diberlakukan dan RestrictPublicBuckets diaktifkan, Amazon S3 mengizinkan akses hanya dengan. CloudTrail Meskipun pernyataan 2 tidak bersifat publik, Amazon S3 nonaktifkan akses oleh "Akun-2." Hal ini karena pernyataan 3 menjadikan kebijakan tersebut bersifat publik, sehingga RestrictPublicBuckets berlaku. Oleh karena itu, Amazon S3 menonaktifkan akses lintas akun, meskipun kebijakan tersebut mendelegasikan akses ke akun tertentu, yakni “Akun-2.” Tetapi jika Anda menghapus pernyataan 3 dari kebijakan tersebut, maka kebijakan tersebut tidak akan memenuhi syarat sebagai kebijakan bersifat publik, dan RestrictPublicBuckets tidak lagi berlaku. Dengan demikian, “Akun-2” mendapatkan kembali akses ke bucket, bahkan jika Anda membiarkan RestrictPublicBuckets tetap aktif.

Titik Akses

Amazon S3 mengevaluasi pengaturan blokir akses publik dengan sedikit berbeda untuk titik akses dibandingkan dengan bucket. Aturan yang diterapkan Amazon S3 untuk menentukan kapan kebijakan titik akses publik biasanya sama dengan titik akses untuk bucket, kecuali dalam situasi berikut:

  • Titik akses yang memiliki asal jaringan VPC selalu dianggap sebagai non-publik, terlepas dari konten kebijakan titik aksesnya.

  • Kebijakan titik akses yang memberikan akses ke serangkaian titik akses dengan menggunakan s3:DataAccessPointArn dianggap bersifat publik. Perhatikan bahwa perilaku ini berbeda dengan perilaku untuk kebijakan bucket. Misalnya, kebijakan bucket yang memberikan akses ke nilai s3:DataAccessPointArn yang sesuai dengan arn:aws:s3:us-west-2:123456789012:accesspoint/* tidak dianggap publik. Namun demikian, pernyataan yang sama dalam kebijakan titik akses akan menjadikan titik akses tersebut menjadi publik.

Menggunakan IAM Access Analyzer untuk S3 untuk meninjau bucket publik

Anda dapat menggunakan Penganalisis Akses untuk S3 untuk meninjau bucket dengan ACL bucket, kebijakan bucket, atau kebijakan titik akses yang memberikan akses publik. IAM Access Analyzer for S3 memberi tahu Anda tentang bucket yang dikonfigurasi untuk memungkinkan akses ke siapa pun di internet atau lainnya Akun AWS, termasuk Akun AWS di luar organisasi Anda. Untuk setiap bucket publik atau bucket bersama, Anda akan menerima temuan yang melaporkan sumber dan tingkat akses publik atau akses bersama.

Pada Penganalisis Akses untuk S3, Anda dapat memblokir semua akses publik ke bucket dengan sekali klik. Anda juga dapat menelusuri pengaturan izin tingkat bucket untuk mengonfigurasi tingkat akses granular. Untuk kasus penggunaan tertentu dan terverifikasi yang memerlukan akses publik atau akses bersama, Anda dapat menyatakan dan mencatat maksud Anda untuk bucket agar tetap sebagai bucket dengan akses publik atau akses bersama dengan mengarsipkan temuan untuk bucket tersebut.

Dalam peristiwa langka, Penganalisis Akses untuk S3 mungkin tidak melaporkan temuan untuk bucket, yang berdasarkan evaluasi blokir akses publik Amazon S3 dilaporkan sebagai publik. Hal ini terjadi karena blokir akses publik Amazon S3 meninjau kebijakan-kebijakan untuk tindakan saat ini dan setiap tindakan potensial yang mungkin ditambahkan di masa depan, yang menyebabkan bucket menjadi bersifat publik. Di sisi lain, IAM Access Analyzer untuk S3 hanya menganalisis tindakan saat ini yang ditentukan untuk layanan Amazon S3 dalam evaluasi status akses.

Untuk informasi selengkapnya tentang IAM Access Analyzer untuk Amazon S3, lihat Meninjau akses bucket menggunakan IAM Access Analyzer untuk S3.

Izin

Untuk menggunakan fitur-fitur yang dimiliki Blokir Akses Publik Amazon S3, Anda harus memiliki izin-izin berikut.

Operasi Izin yang diperlukan
Status kebijakan bucket GET s3:GetBucketPolicyStatus
Pengaturan Blokir Akses Publik bucket GET s3:GetBucketPublicAccessBlock
Pengaturan Blokir Akses Publik bucket PUT s3:PutBucketPublicAccessBlock
Pengaturan Blokir Akses Publik bucket DELETE s3:PutBucketPublicAccessBlock
Pengaturan Blokir Akses Publik akun GET s3:GetAccountPublicAccessBlock
Pengaturan Blokir Akses Publik akun PUT s3:PutAccountPublicAccessBlock
Pengaturan Blokir Akses Publik akun DELETE s3:PutAccountPublicAccessBlock
Pengaturan Blokir Akses Publik titik akses PUT s3:CreateAccessPoint
catatan

Operasi DELETE memerlukan izin yang sama dengan operasi PUT. Tidak ada izin terpisah untuk operasi DELETE.

Mengonfigurasi blokir akses publik

Untuk informasi selengkapnya tentang mengonfigurasi blokir akses publik untuk bucket Amazon S3 Anda Akun AWS dan Anda, lihat topik berikut.