Block Public Access mencegah akses anonim ke resource OSS Anda. Aktifkan fitur ini di tingkat akun, bucket, titik akses, atau Object FC Access Point untuk mengabaikan izin publik yang telah ditetapkan dalam kebijakan bucket dan ACL serta memblokir penambahan izin publik baru.
Periksa akses publik dalam kebijakan bucket dan ACL
Tinjau kebijakan bucket dan ACL (bucket ACL dan object ACL) untuk menentukan apakah objek OSS dapat diakses secara publik. Jika terdapat izin yang memberikan akses publik, aktifkan Block Public Access.
Kebijakan bucket
(Direkomendasikan) Panggil operasi GetBucketPolicyStatus
Panggil operasi GetBucketPolicyStatus untuk memeriksa apakah kebijakan bucket memberikan akses publik.
-
Jika IsPublic bernilai true, kebijakan bucket memberikan akses publik.
-
Jika IsPublic bernilai false, kebijakan bucket tidak memberikan akses publik.
Untuk informasi selengkapnya, lihat GetBucketPolicyStatus.
Tinjau manual pengaturan kebijakan bucket
Kondisi dan contoh untuk akses non-publik
-
Pernyataan kebijakan bucket bersifat non-publik jika elemen Principal atau Condition-nya memenuhi salah satu kriteria berikut.
Catatan-
Elemen Action dan Resource tidak memengaruhi evaluasi akses publik.
-
Jika elemen Effect bernilai Deny, kebijakan tersebut tidak memberikan akses publik.
Elemen
Field
Nilai
Principal
N/A
Menentukan satu atau beberapa nilai tetap tanpa wildcard asterisk (*).
Condition
acs:SourceVpcId
Menentukan satu atau beberapa nilai tetap tanpa wildcard asterisk (*).
acs:SourceVpc
Menentukan satu atau beberapa nilai tetap tanpa wildcard asterisk (*).
acs:AccessId
Menentukan satu atau beberapa nilai tetap tanpa wildcard asterisk (*).
acs:SourceVpcIp
Untuk alamat IPv4, mask harus lebih besar dari atau sama dengan 8.
Untuk alamat IPv6, mask harus lebih besar dari atau sama dengan 32.
acs:SourceIp
Untuk alamat IPv4, mask harus lebih besar dari atau sama dengan 8.
Untuk alamat IPv6, mask harus lebih besar dari atau sama dengan 32.
-
-
Contoh kebijakan bucket berikut memberikan akses non-publik:
{ "Version":"1", "Statement":[ { "Action":[ "oss:GetObject", "oss:GetObjectAcl", "oss:GetObjectVersion", "oss:GetObjectVersionAcl" ], "Effect":"Allow", "Principal":[ "20214760404935xxxx" ], "Resource":[ "acs:oss:*:174649585760xxxx:examplebucket/hangzhou/2020/*", "acs:oss:*:174649585760xxxx:examplebucket/shanghai/2015/*" ] }, { "Action":[ "oss:ListObjects", "oss:ListObjectVersions" ], "Condition":{ "StringLike":{ "oss:Prefix":[ "hangzhou/2020/*", "shanghai/2015/*" ] } }, "Effect":"Allow", "Principal":[ "20214760404935xxxx" ], "Resource":[ "acs:oss:*:174649585760xxxx:examplebucket" ] } ] }
Kondisi dan contoh untuk akses publik
Kebijakan bucket memberikan akses publik jika tidak memenuhi kriteria akses non-publik. Contohnya:
-
Contoh 1
{ "Version": "1", "Statement": [ { "Effect": "Allow", "Action": "oss:GetObject", "Principal": "*", "Resource": "acs:oss:*:17464958576xxxx:examplebucket/*" } ] } -
Contoh 2
Jika kebijakan bucket berisi pernyataan akses publik yang mengizinkan akses dari semua virtual private cloud (VPC) dan pernyataan akses non-publik untuk pengguna tertentu, kebijakan tersebut memberikan akses publik.
{ "Version": "1", "Statement": [ { "Effect": "Allow", "Action": "oss:GetObject", "Principal": "*", "Resource": "acs:oss:*:17464958576xxxx:examplebucket/*", "Condition": { "StringLike": { "acs:SourceVpc": [ "vpc-*" ] } } }, { "Effect": "Allow", "Action": "oss:*", "Principal": "27464958576xxxx", "Resource": "*" } ] }
ACL
-
Jika bucket ACL atau object ACL bernilai public-read atau public-read-write, akses publik diizinkan.
-
Jika bucket ACL dan object ACL keduanya bernilai private, akses publik ditolak.
Prioritas Block Public Access di berbagai tingkatan
Anda dapat mengaktifkan Block Public Access di tingkat akun, bucket, titik akses, dan Object FC Access Point. Saat pengaturan dikonfigurasi di beberapa tingkat, OSS menerapkan urutan prioritas berikut:
Account > Bucket > Access point > Object FC Access Point
Pengaturan di tingkat yang lebih tinggi mengesampingkan pengaturan yang bertentangan di tingkat yang lebih rendah. Sebagai contoh, mengaktifkan Block Public Access di tingkat akun akan memblokir akses publik untuk semua bucket, titik akses, dan Object FC Access Point, terlepas dari pengaturan masing-masing.
-
Untuk mengizinkan akses publik ke bucket, nonaktifkan Block Public Access di tingkat global dan untuk bucket tersebut.
-
Untuk mengizinkan akses publik melalui titik akses, nonaktifkan Block Public Access di tingkat akun, bucket terkait, dan titik akses tersebut.
-
Untuk mengizinkan akses publik melalui Object FC Access Point, nonaktifkan Block Public Access di tingkat akun, bucket, titik akses terkait, dan Object FC Access Point tersebut.
Catatan penggunaan
-
RAM user harus memiliki izin berikut untuk mengelola Block Public Access:
-
Di tingkat akun:
oss:PutPublicAccessBlock,oss:GetPublicAccessBlock, danoss:DeletePublicAccessBlock -
Untuk bucket individual:
oss:PutBucketPublicAccessBlock,oss:GetBucketPublicAccessBlock, danoss:DeleteBucketPublicAccessBlock -
Untuk titik akses individual:
oss:PutAccessPointPublicAccessBlock,oss:GetAccessPointPublicAccessBlock, danoss:DeleteAccessPointPublicAccessBlock -
Untuk Object FC Access Point individual:
oss:PutAccessPointConfigForObjectProcess,oss:GetAccessPointConfigForObjectProcess, danoss:DeleteAccessPointForObjectProcess
-
-
Saat Block Public Access diaktifkan, izin akses publik yang ada diabaikan dan izin akses publik baru tidak dapat dikonfigurasi. Setelah Anda menonaktifkannya, izin yang ada kembali berlaku dan izin baru dapat dikonfigurasi.
-
Jika kebijakan bucket mengizinkan semua pengguna untuk mengelola titik akses, pengguna dapat mengubah status Block Public Access titik akses tersebut melalui nama domain tingkat tiga bucket, meskipun Block Public Access diaktifkan untuk titik akses tersebut. Konfigurasi titik akses tidak berlaku untuk permintaan yang dilakukan melalui subdomain bucket.
-
Untuk replikasi lintas wilayah (CRR) dan replikasi wilayah yang sama (SRR), object ACL dipertahankan selama replikasi terlepas dari pengaturan pemblokiran akses publik. Jika Block Public Access diaktifkan pada bucket tujuan, objek yang direplikasi tidak dapat diakses secara publik meskipun ACL-nya bernilai public-read atau public-read-write.
Metode
Gunakan Konsol OSS
Gunakan ossutil
Operasi API terkait
Anda dapat memanggil RESTful API secara langsung. Perhitungan signature harus disertakan dalam kode Anda.
-
Lihat PutPublicAccessBlock untuk memblokir akses publik di tingkat akun.
-
Lihat PutBucketPublicAccessBlock untuk memblokir akses publik untuk bucket.
-
Lihat PutAccessPointPublicAccessBlock untuk memblokir akses publik untuk titik akses.
-
Lihat PutAccessPointConfigForObjectProcess untuk memblokir akses publik untuk Object FC Access Point.
Topik terkait
Untuk mengontrol akses tingkat objek dalam bucket, gabungkan Block Public Access dengan kebijakan bucket dan object ACL.