全部产品
Search
文档中心

Object Storage Service:Blokir akses publik

更新时间:Nov 09, 2025

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.

    Catatan
    • Elemen 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 FC

Berdasarkan 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, dan oss:DeletePublicAccessBlock.

    • Tingkat bucket: oss:PutBucketPublicAccessBlock, oss:GetBucketPublicAccessBlock, dan oss:DeleteBucketPublicAccessBlock.

    • Tingkat titik akses: oss:PutAccessPointPublicAccessBlock, oss:GetAccessPointPublicAccessBlock, dan oss:DeleteAccessPointPublicAccessBlock.

    • Tingkat Titik Akses Objek FC: oss:PutAccessPointConfigForObjectProcess, oss:GetAccessPointConfigForObjectProcess, dan oss: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

Aktifkan Blokir Akses Publik di tingkat akun

  1. Masuk ke Konsol OSS.

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

  3. Di halaman Block Public Access, aktifkan Blokir Akses Publik dan ikuti petunjuk di layar.

Aktifkan Blokir Akses Publik untuk bucket

  1. Masuk ke Konsol OSS.

  2. Di panel navigasi di sebelah kiri, klik Buckets. Di halaman Bucket, temukan dan klik bucket yang diinginkan.

  3. Di panel navigasi di sebelah kiri, pilih Permission Control > Block Public Access.

  4. Di tab Block Public Access, aktifkan Blokir Akses Publik dan ikuti petunjuk di layar.

Aktifkan Blokir Akses Publik untuk titik akses

  1. Masuk ke Konsol OSS.

  2. Di panel navigasi di sebelah kiri, klik Access Points, lalu klik titik akses tujuan.

  3. Di bagian Basic Information, aktifkan Blokir Akses Publik dan ikuti petunjuk di layar.

Aktifkan Blokir Akses Publik untuk Titik Akses Objek FC

  1. Masuk ke Konsol OSS.

  2. Di panel navigasi di sebelah kiri, klik Object FC Access Points, lalu klik Titik Akses Objek FC tujuan.

  3. Di bagian Basic Information, aktifkan Blokir Akses Publik dan ikuti petunjuk di layar.

Gunakan antarmuka baris perintah ossutil

Anda dapat menggunakan antarmuka baris perintah ossutil (CLI) untuk menyetel Blokir Akses Publik. Untuk informasi lebih lanjut tentang cara menginstal ossutil, lihat Instal ossutil.

  • Perintah berikut mengaktifkan Blokir Akses Publik di tingkat akun.

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

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

  • Perintah berikut mengaktifkan Blokir Akses Publik untuk bucket examplebucket.

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

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

  • Perintah berikut mengaktifkan Blokir Akses Publik 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 tentang perintah ini, lihat put-access-point-public-access-block.

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.

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.