All Products
Search
Document Center

Object Storage Service:Blokir akses publik

Last Updated:Aug 15, 2026

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 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 lebih lanjut, lihat GetBucketPolicyStatus.

Tinjau pengaturan kebijakan bucket secara manual

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 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. Contoh:

  • 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 Block Public Access

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 Point

Pengaturan 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

  • Pengguna RAM harus memiliki izin berikut untuk mengelola Block Public Access:

    • Di tingkat akun: oss:PutPublicAccessBlock, oss:GetPublicAccessBlock, dan oss:DeletePublicAccessBlock

    • Untuk bucket individual: oss:PutBucketPublicAccessBlock, oss:GetBucketPublicAccessBlock, dan oss:DeleteBucketPublicAccessBlock

    • Untuk titik akses individual: oss:PutAccessPointPublicAccessBlock, oss:GetAccessPointPublicAccessBlock, dan oss:DeleteAccessPointPublicAccessBlock

    • Untuk Object FC Access Point individual: oss:PutAccessPointConfigForObjectProcess, oss:GetAccessPointConfigForObjectProcess, dan oss:DeleteAccessPointForObjectProcess

  • Saat diaktifkan, izin akses publik yang sudah ada diabaikan dan izin baru tidak dapat dikonfigurasi. Saat dinonaktifkan, izin yang sudah ada diberlakukan kembali dan izin baru dapat dikonfigurasi.

  • Jika kebijakan bucket mengizinkan semua pengguna mengelola titik akses, pengguna dapat mengubah status Block Public Access-nya melalui subdomain bucket, meskipun 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

Aktifkan Block Public Access di tingkat global

  1. Login ke Konsol OSS.

  2. Di panel navigasi kiri, pilih Data Service > Block Public Access.

  3. Di halaman Block Public Access, aktifkan Block Public Access dan ikuti instruksi di layar.

Secara default, Block Public Access untuk seluruh OSS dinonaktifkan (BlockPublicAccess=false), artinya akses publik diizinkan hingga Anda mengaktifkannya. Anda dapat memanggil operasi GetPublicAccessBlock untuk memeriksa status saat ini, dan memanggil PutPublicAccessBlock atau menggunakan sakelar konsol seperti dijelaskan pada langkah-langkah sebelumnya untuk mengaktifkannya.

Jika Anda menggunakan operasi EnrollAccount Cloud Governance Center untuk membuat akun anggota bertipe ResourceAccount, akun tersebut tidak dapat login langsung ke Konsol OSS untuk menyelesaikan langkah-langkah di atas. Entri login dan pergantian role untuk akun tersebut dinonaktifkan, dan pemanggilan AssumeRole untuk role AliyunRDAdminAccessRole juga gagal dengan error EntityNotExist.Role. Untuk mengaktifkan Block Public Access untuk seluruh OSS pada jenis akun anggota ini, buat terlebih dahulu role RAM untuk akun anggota tersebut, peroleh kredensial sementara dengan memanggil AssumeRole menggunakan role tersebut, lalu gunakan kredensial tersebut untuk memanggil operasi PutPublicAccessBlock.

Baseline akun Cloud Governance Center tidak menyertakan Block Public Access OSS sebagai item konfigurasi, sehingga tidak diaktifkan secara otomatis saat akun anggota didaftarkan. Anda harus mengaktifkan Block Public Access secara terpisah untuk setiap akun anggota, baik melalui konsol maupun dengan memanggil PutPublicAccessBlock. Untuk akun anggota yang tidak dapat login langsung ke konsol, gunakan metode role RAM dan AssumeRole seperti dijelaskan di atas.

Aktifkan Block Public Access untuk bucket

  1. Login ke Konsol OSS.

  2. Di panel navigasi kiri, klik Buckets. Di halaman yang muncul, klik nama bucket target.

  3. Di pohon navigasi kiri, pilih Permission Control > Block Public Access.

  4. Di tab Block Public Access, aktifkan Block Public Access dan ikuti instruksi di layar.

Aktifkan Block Public Access untuk titik akses

  1. Login ke Konsol OSS.

  2. Di panel navigasi kiri, klik Access Points. Klik titik akses target.

  3. Di bagian Basic Information, klik Enable di samping Block Public Access dan ikuti instruksi di layar.

Aktifkan Block Public Access untuk Object FC Access Point

  1. Login ke Konsol OSS.

  2. Di panel navigasi kiri, klik Object FC Access Points. Klik Object FC Access Point target.

  3. Di bagian Basic Information, klik Enable di samping Block Public Access dan ikuti instruksi di layar.

Gunakan ossutil

Gunakan ossutil untuk mengaktifkan Block Public Access. Untuk menginstal ossutil, lihat Install ossutil.

  • Aktifkan Block Public Access di tingkat akun:

    ossutil api put-public-access-block --public-access-block-configuration "{\"BlockPublicAccess\":\"true\"}"

    Untuk informasi lebih lanjut, lihat put-public-access-block.

  • Aktifkan Block Public Access untuk examplebucket:

    ossutil api put-bucket-public-access-block --bucket examplebucket --public-access-block-configuration "{\"BlockPublicAccess\":\"true\"}"

    Untuk informasi lebih lanjut, lihat put-bucket-public-access-block.

  • Aktifkan Block Public Access untuk titik akses ap-01:

    ossutil api put-access-point-public-access-block --bucket examplebucket --access-point-name ap-01 --public-access-block-configuration "{\"BlockPublicAccess\":\"true\"}"

    Untuk informasi lebih lanjut, lihat put-access-point-public-access-block.

Operasi API terkait

Panggil RESTful API secara langsung dengan perhitungan tanda tangan dalam kode Anda.

Dampak dan panduan migrasi

Jika Anda mengubah ACL bucket dari public-read menjadi private lalu mengaktifkan Block Public Access, permintaan URL anonim ke objek dalam bucket akan mengembalikan respons 403 Forbidden. Bisnis apa pun yang bergantung pada akses anonim akan terganggu. Contoh tanggapan error khas adalah sebagai berikut:

AccessDenied
You have no right to access this object because of bucket acl.

Untuk memulihkan akses tanpa membuka bucket untuk baca publik, gunakan salah satu metode berikut alih-alih akses anonim:

  • Signed URL: Memberikan akses sementara untuk periode waktu tertentu. Gunakan metode ini untuk skenario akses jangka pendek atau satu kali.

  • Kebijakan bucket: Memberikan akses jangka panjang ke akun, alamat IP, atau referrer tertentu. Gunakan metode ini ketika Anda perlu memberi otorisasi kepada sekumpulan pemanggil tetap yang diketahui secara berkelanjutan.

Sebelum menerapkan perubahan ini ke bucket produksi, verifikasi metode akses baru di bucket uji, dan lakukan perubahan tersebut selama jam sepi untuk memastikan bisnis Anda tidak terganggu sebelum diluncurkan sepenuhnya.

FAQ

Apa artinya jika saya tidak dapat membuat kebijakan bucket karena Block Public Access diaktifkan?

Jika Block Public Access diaktifkan untuk bucket, kebijakan bucket yang memberikan akses publik (misalnya, yang menetapkan Principal ke *) akan ditolak. Permintaan gagal dengan error HTTP 403 dan pesan error Put public bucket policy is not allowed. Untuk membuat kebijakan bucket yang memberikan akses publik, nonaktifkan terlebih dahulu Block Public Access untuk bucket tersebut. Setelah Block Public Access dinonaktifkan, Anda dapat membuat kebijakan bucket tersebut.

Bagaimana cara menonaktifkan Block Public Access?

Prosedur berikut menggunakan tingkat bucket sebagai contoh:

  1. Login ke Konsol OSS.

  2. Di panel navigasi kiri, klik Buckets. Di halaman yang muncul, klik nama bucket target.

  3. Di pohon navigasi kiri, pilih Permission Control > Block Public Access.

  4. Di tab Block Public Access, nonaktifkan Block Public Access.

  5. Di kotak dialog konfirmasi yang muncul, masukkan frasa konfirmasi yang ditampilkan di dialog tersebut, lalu klik OK.

Setelah Anda menonaktifkan Block Public Access, izin akses publik yang sudah ada kembali berlaku. Untuk bucket yang ACL-nya bernilai public-read, pengguna anonim dapat kembali mengakses objek dalam bucket tersebut.

Apakah ada risiko keamanan setelah saya menonaktifkan Block Public Access?

Setelah Anda menonaktifkan Block Public Access, semua izin ACL bucket dan kebijakan bucket yang sebelumnya diabaikan langsung berlaku. Sebelum menonaktifkan Block Public Access, pastikan hal berikut:

  • ACL bucket diatur ke private.

  • ACL objek diatur ke private.

  • Kebijakan bucket tidak memberikan akses publik yang tidak diinginkan.

Topik terkait

Untuk mengontrol akses tingkat objek dalam bucket, kombinasikan Block Public Access dengan kebijakan bucket dan ACL objek.

Monitoring dan Peringatan

Perubahan status Block Public Access merupakan operasi manajemen dan tidak dicatat dalam log akses real-time. Gunakan pelacakan event ActionTrail atau polling API untuk memantau perubahan status dan mengonfigurasi peringatan.

Pelacakan event ActionTrail (direkomendasikan)

  1. Di Konsol ActionTrail, buat trail. Atur tipe event ke management events, dan kirimkan event ke Simple Log Service (SLS).

  2. Di halaman event alerting, buat aturan peringatan dan atur nama event ke PutBucketPublicAccessBlock dan DeleteBucketPublicAccessBlock.

  3. Pemberitahuan peringatan dipicu ketika status Block Public Access dimodifikasi.

Polling API

Panggil operasi GetPublicAccessBlock untuk memperoleh status konfigurasi Block Public Access di tingkat akun. Laporkan hasilnya sebagai metrik kustom ke Cloud Monitor, dan konfigurasikan aturan peringatan berbasis ambang batas.