Anda dapat memberikan akses publik ke sumber daya Object Storage Service (OSS) dengan mengonfigurasi kebijakan bucket dan daftar kontrol akses (ACL). Namun, akses publik tidak memerlukan izin khusus atau verifikasi identitas, yang meningkatkan risiko pelanggaran data dan lalu lintas internet keluar yang tidak diinginkan. Untuk mengurangi risiko ini, OSS memungkinkan Anda mengaktifkan Blokir Akses Publik di tingkat akun, bucket, titik akses, atau Titik Akses Objek FC. Saat diaktifkan, fitur ini mengabaikan izin publik yang ada dan mencegah pemberian izin publik baru, membantu memastikan keamanan data.
Tentukan apakah sumber daya dapat diakses secara publik
Anda dapat meninjau kebijakan bucket dan daftar kontrol akses (ACL), termasuk ACL bucket dan ACL objek, untuk menentukan apakah sumber daya OSS dapat diakses secara publik. Jika ada pengaturan yang memberikan akses publik, sumber daya Anda berisiko dan Anda harus mengaktifkan Blokir Akses Publik.
Kebijakan bucket
(Direkomendasikan) Panggil Operasi API
Anda dapat memanggil operasi GetBucketPolicyStatus untuk memeriksa apakah kebijakan bucket saat ini memberikan akses publik.
Jika bidang respons IsPublic disetel ke true, kebijakan bucket saat ini memberikan akses publik.
Jika bidang respons IsPublic disetel ke false, kebijakan bucket saat ini tidak memberikan akses publik atau tidak ada kebijakan bucket yang disetel.
Untuk informasi lebih lanjut, lihat GetBucketPolicyStatus.
Pemeriksaan manual
Kondisi dan contoh untuk akses non-publik
Pernyataan dalam kebijakan bucket dianggap non-publik jika elemen Principal atau Condition memenuhi salah satu kondisi berikut.
CatatanElemen Action dan Resource tidak digunakan sebagai kondisi untuk menentukan apakah akses bersifat publik.
Jika Effect dalam kebijakan bucket adalah Deny, pernyataan tersebut dianggap non-publik.
Elemen
Bidang
Nilai
Principal
Tidak tersedia
Menentukan satu atau lebih bidang statis. Nilainya tidak boleh berisi karakter wildcard asterisk (*).
Condition
acs:SourceVpcId
Menentukan satu atau lebih bidang statis. Nilainya tidak boleh berisi karakter wildcard asterisk (*).
acs:SourceVpc
Menentukan satu atau lebih bidang statis. Nilainya tidak boleh berisi karakter wildcard asterisk (*).
acs:AccessId
Menentukan satu atau lebih bidang statis. Nilainya tidak boleh berisi karakter wildcard asterisk (*).
acs:SourceVpcIp
Jika merupakan Alamat IPv4, mask harus 8 atau lebih besar.
Jika merupakan Alamat IPv6, mask harus 32 atau lebih besar.
acs:SourceIp
Jika merupakan Alamat IPv4, mask harus 8 atau lebih besar.
Jika merupakan Alamat IPv6, mask harus 32 atau lebih besar.
Contoh 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
Jika kebijakan bucket tidak memenuhi kondisi untuk akses non-publik, maka dianggap memberikan akses publik. Berikut adalah beberapa contohnya:
Contoh 1
{ "Version": "1", "Statement": [ { "Effect": "Allow", "Action": "oss:GetObject", "Principal": "*", "Resource": "acs:oss:*:17464958576xxxx:examplebucket/*" } ] }Contoh 2
Jika suatu kebijakan berisi pernyataan yang memberikan akses publik (mengizinkan akses dari semua VPC) dan akses non-publik (mengizinkan akses hanya dari pengguna tertentu), kebijakan tersebut tetap dianggap 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 disetel ke baca-publik atau baca-tulis-publik, akses publik diizinkan.
Jika baik ACL bucket maupun ACL objek disetel ke privat, akses publik tidak diizinkan.
Prioritas pengaturan Blokir Akses Publik di berbagai tingkat
OSS mendukung pengaktifan Blokir Akses Publik di tingkat akun, bucket, titik akses, dan Titik Akses Objek FC. Jika pengaturan Blokir Akses Publik tidak konsisten di seluruh tingkat ini, OSS menggunakan prioritas berikut untuk menentukan izin akses yang efektif.
Akun > Bucket > Titik akses > Titik Akses Objek FCBerdasarkan prioritas ini, pengaturan Blokir Akses Publik di tingkat yang lebih tinggi menentukan apakah akses publik diizinkan di tingkat yang lebih rendah. Jika Blokir Akses Publik diaktifkan di tingkat akun, akses publik tidak diizinkan untuk bucket, titik akses, atau Titik Akses Objek FC apa pun.
Untuk mengizinkan akses publik ke bucket, nonaktifkan Blokir Akses Publik di tingkat akun dan untuk bucket tersebut.
Untuk mengizinkan akses publik ke titik akses, nonaktifkan Blokir Akses Publik di tingkat akun, untuk bucket yang terkait dengan titik akses, dan untuk titik akses tersebut.
Untuk mengizinkan akses publik ke Titik Akses Objek FC, nonaktifkan Blokir Akses Publik di tingkat akun, untuk titik akses yang terkait dengan Titik Akses Objek FC, untuk bucket yang terkait dengan titik akses, dan untuk Titik Akses Objek FC tersebut.
Catatan penggunaan
Pengguna Resource Access Management (RAM) memerlukan izin berikut untuk memblokir akses publik:
Tingkat akun:
oss:PutPublicAccessBlock,oss:GetPublicAccessBlock, danoss:DeletePublicAccessBlock.Tingkat bucket:
oss:PutBucketPublicAccessBlock,oss:GetBucketPublicAccessBlock, danoss:DeleteBucketPublicAccessBlock.Tingkat titik akses:
oss:PutAccessPointPublicAccessBlock,oss:GetAccessPointPublicAccessBlock, danoss:DeleteAccessPointPublicAccessBlock.Tingkat Titik Akses Objek FC:
oss:PutAccessPointConfigForObjectProcess,oss:GetAccessPointConfigForObjectProcess, danoss:DeleteAccessPointForObjectProcess.
Saat Blokir Akses Publik diaktifkan, izin akses publik yang ada diabaikan dan izin akses publik baru tidak dapat dibuat. Saat Blokir Akses Publik dinonaktifkan, izin yang ada mulai berlaku dan Anda dapat membuat izin akses publik baru.
Jika kebijakan bucket disetel untuk mengizinkan siapa saja memanggil operasi API manajemen untuk titik akses, pengguna masih dapat mengubah pengaturan Blokir Akses Publiknya menggunakan nama domain tingkat tiga bucket, meskipun Blokir Akses Publik diaktifkan untuk titik akses. Hal ini karena permintaan yang dibuat menggunakan nama domain tingkat tiga bucket tidak terpengaruh oleh konfigurasi titik akses.
Untuk replikasi lintas wilayah (CRR) atau replikasi wilayah yang sama (SRR), ACL objek dipertahankan setelah replikasi, terlepas dari apakah Blokir Akses Publik diaktifkan untuk bucket sumber dan tujuan. Jika Blokir Akses Publik diaktifkan untuk bucket tujuan, objek yang direplikasi ke dalamnya tidak dapat diakses secara publik, meskipun ACL-nya adalah baca-publik atau baca-tulis-publik.
Metode
Gunakan Konsol OSS
Gunakan antarmuka baris perintah ossutil
Operasi API terkait
Jika program Anda memiliki persyaratan penyesuaian tinggi, Anda dapat langsung membuat permintaan REST API. Untuk melakukannya, Anda harus secara manual menulis kode untuk menghitung tanda tangan.
Untuk informasi lebih lanjut tentang operasi API untuk Blokir Akses Publik di tingkat akun, lihat PutPublicAccessBlock.
Untuk informasi lebih lanjut tentang operasi API untuk Blokir Akses Publik untuk bucket, lihat PutBucketPublicAccessBlock.
Untuk informasi lebih lanjut tentang operasi API untuk Blokir Akses Publik untuk titik akses, lihat PutAccessPointPublicAccessBlock.
Untuk informasi lebih lanjut tentang operasi API untuk Blokir Akses Publik untuk Titik Akses Objek FC, lihat PutAccessPointConfigForObjectProcess.
Referensi
Blokir Akses Publik memungkinkan Anda mengelola izin secara terpusat di tingkat akun dan untuk bucket individu, titik akses, dan Titik Akses Objek FC. Untuk kontrol yang lebih rinci atas sumber daya dalam bucket atau objek individu, Anda dapat menggunakan kebijakan bucket dan ACL objek.