Block Public Access mencegah akses anonim ke resource OSS di tingkat akun, bucket, titik akses, atau Object FC Access Point. Saat diaktifkan, izin publik yang sudah ada akan diabaikan dan izin baru tidak dapat dibuat.
Periksa akses publik dalam kebijakan bucket dan ACL
Tinjau kebijakan bucket dan ACL untuk memeriksa apakah objek dapat diakses secara publik. Jika terdapat pengaturan yang memberikan akses publik, aktifkan Block Public Access.
Kebijakan bucket
(Direkomendasikan) Panggil operasi GetBucketPolicyStatus
Panggil 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 secara 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.
CatatanElemen 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 tanda bintang (*).
Condition
acs:SourceVpcId
Menentukan satu atau beberapa nilai tetap tanpa wildcard tanda bintang (*).
acs:SourceVpc
Menentukan satu atau beberapa nilai tetap tanpa wildcard tanda bintang (*).
acs:AccessId
Menentukan satu atau beberapa nilai tetap tanpa wildcard tanda bintang (*).
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 yang mengizinkan akses dari semua VPC sekaligus pernyataan 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 ACL bucket atau ACL objek bernilai public-read atau public-read-write, akses publik diizinkan.
Jika ACL bucket dan ACL objek keduanya private, akses publik ditolak.
Prioritas Blokir Akses Publik
Block Public Access berlaku di tingkat akun, bucket, titik akses, dan Object FC Access Point. Saat diatur di beberapa tingkat, OSS mengikuti prioritas berikut:
Account > Bucket > Access point > Object FC Access PointPengaturan di tingkat yang lebih tinggi mengesampingkan pengaturan di tingkat yang lebih rendah. Sebagai contoh, 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 bucket.
Untuk mengizinkan akses publik melalui titik akses, nonaktifkan Block Public Access di tingkat akun, bucket, dan titik akses.
Untuk mengizinkan akses publik melalui Object FC Access Point, nonaktifkan Block Public Access di tingkat akun, bucket, titik akses, dan Object FC Access Point.
Catatan penggunaan
RAM user harus memiliki izin berikut untuk mengelola Block Public Access:
Di tingkat akun:
oss:PutPublicAccessBlock,oss:GetPublicAccessBlock, danoss:DeletePublicAccessBlockUntuk bucket individual:
oss:PutBucketPublicAccessBlock,oss:GetBucketPublicAccessBlock, danoss:DeleteBucketPublicAccessBlockUntuk titik akses individual:
oss:PutAccessPointPublicAccessBlock,oss:GetAccessPointPublicAccessBlock, danoss:DeleteAccessPointPublicAccessBlockUntuk Object FC Access Point individual:
oss:PutAccessPointConfigForObjectProcess,oss:GetAccessPointConfigForObjectProcess, danoss:DeleteAccessPointForObjectProcess
Saat diaktifkan, izin akses publik yang sudah ada diabaikan dan izin baru tidak dapat dikonfigurasi. Saat dinonaktifkan, izin yang sudah ada dilanjutkan dan izin baru dapat dikonfigurasi.
Jika kebijakan bucket mengizinkan semua pengguna untuk mengelola titik akses, pengguna dapat mengubah status Block Public Access-nya melalui subdomain bucket, bahkan saat Block Public Access diaktifkan untuk titik akses tersebut. Pengaturan titik akses tidak berlaku untuk permintaan melalui subdomain bucket.
Selama replikasi lintas wilayah (CRR) dan replikasi wilayah yang sama (SRR), ACL objek dipertahankan terlepas dari pengaturan Block Public Access. 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
Panggil RESTful API secara langsung dengan perhitungan signature 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 di tingkat objek dalam bucket, kombinasikan Block Public Access dengan kebijakan bucket dan ACL objek.