All Products
Search
Document Center

Object Storage Service:Bucket Policy

Last Updated:Aug 08, 2026

Bucket policy adalah kebijakan otorisasi berbasis resource yang dilampirkan ke sebuah bucket. Gunakan bucket policy untuk memberikan akses lintas akun, mengaktifkan akses anonim, atau membatasi akses berdasarkan alamat IP atau VPC.

Cara kerja

Bucket policy menggunakan model berbasis resource: kebijakan ini dilampirkan ke bucket dan menentukan principal mana yang dapat melakukan action tertentu pada resource tertentu di bawah kondisi tertentu.

Ketika permintaan masuk, OSS mengevaluasi semua kebijakan yang relevan, termasuk bucket policy dan kebijakan RAM. Evaluasi mengikuti prinsip deny-first: setiap aturan Deny eksplisit akan memblokir permintaan terlepas dari aturan Allow. Jika tidak ada aturan yang cocok, permintaan ditolak secara default.

Bucket policy memiliki aturan khusus untuk pemilik bucket:

  • Jika principal diatur ke karakter wildcard (*) dan kebijakan tidak mencakup kondisi, kebijakan tersebut hanya berlaku untuk pengguna selain pemilik bucket.

  • Jika principal diatur ke karakter wildcard (*) dan kebijakan mencakup kondisi, kebijakan tersebut berlaku untuk semua pengguna, termasuk pemilik bucket dan pengguna anonim. Aturan Deny dapat membuat seluruh bucket tidak dapat diakses. Aturan Allow dapat membuka data Anda kepada pengguna anonim.

Jika beberapa pernyataan berlaku untuk pengguna yang sama, izin efektif merupakan gabungan (union) dari semua pernyataan tersebut, mengikuti prinsip deny-first.

Penting
  • Kunci kondisi acs:SourceIp hanya mencocokkan alamat IP sumber dari permintaan dan tidak membedakan apakah alamat IP tersebut berasal dari jaringan publik atau VPC. Artinya, jika Anda hanya menggunakan acs:SourceIp untuk membatasi akses, permintaan dari VPC lain yang menggunakan rentang alamat IP yang sama juga diizinkan, sehingga menimbulkan risiko akses tidak sah. Oleh karena itu, saat mengonfigurasi Bucket Policy, jika Anda menentukan acs:SourceIp, Anda juga harus menentukan acs:SourceVpc untuk secara eksplisit mengidentifikasi sumber jaringan permintaan.

  • Batasan ini hanya berlaku untuk Bucket Policy baru. Bucket Policy yang sudah ada tidak terpengaruh. Namun, memodifikasi Bucket Policy yang sudah ada dianggap sebagai pengajuan baru dan tunduk pada batasan ini.

Mengonfigurasi Kebijakan bucket

OSS menyediakan dua metode konfigurasi: grafis dan sintaks.

  • Metode grafis: Antarmuka berbasis formulir untuk skenario otorisasi umum.

  • Metode sintaks: Editor berbasis JSON yang mendukung semua fitur kebijakan dan kombinasi kondisi kompleks. Setelah Anda menambahkan atau memodifikasi bucket policy menggunakan metode sintaks, entri kebijakan yang sesuai akan ditampilkan secara sinkron di tampilan grafis. Kebijakan yang dikonfigurasi dengan kedua metode saling terhubung dan tetap sinkron satu sama lain. Bidang Resource dalam kebijakan menentukan cakupan resource tempat otorisasi diterapkan.

Metode grafis

  1. Buka daftar Buckets dan klik bucket target.

  2. Di panel navigasi sebelah kiri, klik Permission Control > Bucket Policy.

  3. Pilih Add in GUI, lalu klik Authorize.

    Parameter

    Deskripsi

    Applied To

    Pilih apakah akan memberikan izin pada Whole Bucket atau pada Specific Resources.

    Resource Paths

    • Jika Anda mengatur Applied To ke Whole Bucket, Resource Paths diatur ke bucket-name/*.

    • Jika Anda mengatur Applied To ke Specific Resources, masukkan direktori atau objek yang ingin Anda otorisasi. Anda dapat menambahkan beberapa entri.

    Authorized User

    Tentukan principal yang akan diberi izin.

    • All Accounts (*): Memberikan izin kepada siapa saja, termasuk pengguna anonim.

    • RAM User: Pilih pengguna RAM yang termasuk dalam Akun Alibaba Cloud saat ini.

      Akun yang login harus merupakan Akun Alibaba Cloud (akun root) atau pengguna RAM dengan izin manajemen bucket dan izin ListUsers di RAM. Jika tidak, daftar pengguna RAM tidak akan terlihat.

    • Other Accounts: Masukkan UID akun atau pengguna RAM lain yang ingin Anda otorisasi, atau pengguna sementara dengan kredensial yang dimulai dengan arn:sts, seperti arn:sts::1798************:assumed-role/role-name/session-name. Anda dapat mengotorisasi beberapa pengguna. Masukkan satu pengguna per baris.

      Jika izin diberikan kepada peran RAM, peran tersebut tidak dapat mengakses resource dari konsol OSS. Gunakan ossutil, SDK, atau API sebagai gantinya.

    Authorized Operation

    • Simple Settings: Pilih kombinasi umum operasi yang diizinkan. Opsi meliputi Read-Only (excluding ListObject), Read-Only (including ListObject), Read/Write, Full Access, dan Deny Access.

    • Advanced Settings: Sesuaikan Effect (Allow atau Reject) dan Operation.

    Condition (Opsional)

    Tentukan kondisi di mana kebijakan berlaku.

    • Access Method: Opsi meliputi HTTPS dan HTTP. Setelah Anda memilih opsi, kebijakan hanya berlaku untuk permintaan akses yang menggunakan metode yang dipilih.

    • IP =: Masukkan daftar alamat IP. Jika Anda memilih opsi ini, kebijakan hanya berlaku untuk permintaan akses dari alamat IP yang ditentukan.

    • IP ≠: Masukkan daftar alamat IP. Jika Anda memilih opsi ini, kebijakan hanya berlaku untuk permintaan akses yang bukan berasal dari alamat IP yang ditentukan.

    • VPC =: Pilih VPC yang termasuk dalam akun saat ini atau masukkan VPC milik akun lain. Jika Anda memilih opsi ini, kebijakan hanya berlaku untuk permintaan akses dari VPC yang ditentukan.

    • VPC ≠: Pilih VPC yang termasuk dalam akun saat ini atau masukkan VPC milik akun lain. Jika Anda memilih opsi ini, kebijakan hanya berlaku untuk permintaan akses yang bukan berasal dari VPC yang ditentukan.

    Saat Anda mengonfigurasi beberapa kondisi, semua kondisi harus terpenuhi (hubungan AND).

  4. Setelah memastikan konfigurasi sudah benar, klik OK untuk menerapkan Bucket Policy.

Metode sintaks

  1. Buka daftar Buckets dan klik bucket target.

  2. Di panel navigasi sebelah kiri, klik Permission Control > Bucket Policy.

  3. Pilih Add by Syntax, lalu klik Edit. Di editor, masukkan kebijakan otorisasi dalam format JSON.

    Contoh kebijakan: Tolak pengguna 20214760404935xxxx dari semua operasi pada example-bucket jika permintaan akses tidak berasal dari VPC vpc-t4nlw426y44rd3iq4xxxx.

    {
        "Version": "1",
        "Statement": [
            {
                "Sid": "DenyNonVpcAccess",
                "Effect": "Deny",
                "Action": "oss:*",
                "Principal": [
                    "20214760404935xxxx"
                ],
                "Resource": [
                    "acs:oss:*:174649585760xxxx:example-bucket",
                    "acs:oss:*:174649585760xxxx:example-bucket/*"
                ],
                "Condition": {
                    "StringNotEquals": {
                        "acs:SourceVpc": "vpc-t4nlw426y44rd3iq4xxxx"
                    }
                }
            }
        ]
    }

    Kebijakan otorisasi lengkap mencakup Version dan Statement.

    • Version: Versi kebijakan akses. Nilainya tetap 1 dan tidak dapat diubah.

    • Statement: Badan utama kebijakan. Berisi satu atau lebih aturan spesifik. Setiap aturan mendukung Sid opsional, serta mencakup Effect, Action, Principal, Resource, dan Condition.

      Elemen kebijakan

      Deskripsi

      Makna dalam contoh

      Sid (opsional)

      ID Pernyataan. Pengenal unik yang mudah dibaca untuk setiap pernyataan dalam kebijakan. Membantu diferensiasi, manajemen, dan audit, serta tidak memengaruhi izin itu sendiri.

      Mengidentifikasi pernyataan tolak sebagai DenyNonVpcAccess.

      Effect

      Efek kebijakan. Nilai yang valid adalah Allow dan Deny.

      Menolak permintaan.

      Action

      Tindakan spesifik yang dilakukan pada resource. Karakter wildcard * didukung.

      Menolak semua tindakan OSS (oss:*).

      Principal

      Pengguna, akun, atau peran yang menjadi sasaran kebijakan.

      Menetapkan bidang Principal ke daftar kosong (<code class="inline-code___1opEe" data-tag="code" id="396b0553f4p34">Principal:[]) sama dengan menetapkannya untuk semua akun (<code class="inline-code___1opEe" data-tag="code" id="86478af1e5pzx">Principal:["*"]).

      Kebijakan hanya berlaku untuk pengguna RAM 20214760404935xxxx.

      Resource

      Resource yang menjadi sasaran kebijakan.

      Kebijakan berlaku untuk bucket example-bucket itu sendiri dan semua objek di dalamnya.

      Condition

      Kondisi di mana kebijakan berlaku.

      Saat Anda mengonfigurasi beberapa kondisi, semua kondisi harus terpenuhi (hubungan AND).

      Kebijakan Deny ini hanya berlaku ketika VPC sumber permintaan bukan vpc-t4nlw426y44rd3iq4xxxx.

      Referensi lengkap elemen kebijakan: Sintaks dan elemen otorisasi.

  4. Setelah memastikan kebijakan otorisasi sudah benar, klik Save dan ikuti instruksi di layar.

Metode sintaks memungkinkan Anda menentukan satu atau beberapa tindakan individual (misalnya, oss:DeleteObject), sehingga cakupan izin yang dihasilkan bisa lebih sempit daripada Full Access (setara dengan oss:*) di bawah Simple Settings pada metode grafis. Advanced Settings pada metode grafis juga memungkinkan Anda menentukan tindakan individual, mencapai tingkat granularitas yang sama dengan metode sintaks. Untuk izin yang sesuai dengan setiap tindakan, lihat referensi API OSS.

Konfigurasikan kebijakan bucket vektor

Bucket vektor hanya mendukung metode sintaks untuk konfigurasi bucket policy.

  1. Buka daftar Vector Buckets dan klik bucket vektor target.

  2. Di panel navigasi sebelah kiri, klik Permission Control > Bucket Policy.

  3. Klik Edit. Di editor, masukkan kebijakan otorisasi dalam format JSON.

    Contoh kebijakan: Berikan izin kepada pengguna 20816353761158**** untuk membaca dan menulis data vektor pada tabel indeks indextest di vector-bucket-example.

    {
      "Version": "1",
      "Statement": [{
        "Effect": "Allow",
        "Action": [
          "oss:PutVectors",
          "oss:GetVectors"
        ],
        "Principal": [
          "20816353761158****"
        ],
        "Resource": [
          "acs:ossvector:*:*:vector-bucket-example/indextest"
        ]
      }]
    }

    Kebijakan otorisasi lengkap mencakup Version dan Statement.

    • Version: Versi kebijakan akses. Nilainya tetap 1 dan tidak dapat diubah.

    • Statement: Badan utama kebijakan. Berisi satu atau lebih aturan spesifik. Setiap aturan mencakup Effect, Action, Principal, Resource, dan Condition.

      Elemen kebijakan

      Deskripsi

      Makna dalam contoh

      Effect

      Efek kebijakan. Nilai yang valid adalah Allow dan Deny.

      Mengizinkan permintaan.

      Action

      Tindakan spesifik yang dilakukan pada resource. Karakter wildcard * didukung.

      Membaca dan menulis data vektor.

      Principal

      Pengguna, akun, atau peran yang menjadi sasaran kebijakan.

      Menyetel bidang Principal ke daftar kosong (<code class="inline-code___1opEe" data-init-id="396b0553f4p34" data-tag="code" id="38fd39c90a131">Principal:[]) sama dengan menyetelnya untuk semua akun (<code class="inline-code___1opEe" data-init-id="86478af1e5pzx" data-tag="code" id="da174b022cl89">Principal:["*"]).

      Kebijakan hanya berlaku untuk pengguna RAM 20816353761158****.

      Resource

      Resource yang menjadi sasaran kebijakan.

      Kebijakan berlaku untuk tabel indeks indextest di bucket vector-bucket-example.

      Condition

      Kondisi di mana kebijakan berlaku.

      Saat Anda mengonfigurasi beberapa kondisi, semua kondisi harus terpenuhi (hubungan AND).

      Tidak ada.

      Referensi lengkap elemen kebijakan: Sintaks dan elemen otorisasi.

  4. Setelah memastikan kebijakan otorisasi sudah benar, klik Save dan ikuti instruksi di layar.

Konfigurasikan kebijakan OSS-HDFS

Untuk memastikan pengguna layanan OSS-HDFS dapat mengakses direktori .dlsdata/ dan objek-objeknya, jangan mengatur operasi yang diizinkan ke Deny Access saat mengonfigurasi Bucket Policy untuk bucket yang diaktifkan OSS-HDFS. Prasyarat penggunaan OSS-HDFS.

Untuk membatasi akses ke alamat IP jaringan tertentu atau VPC, tambahkan kondisi berikut ke semua pernyataan Deny. Hal ini memastikan layanan backend OSS-HDFS dapat membaca dan menulis ke bucket melalui jaringan klasik.

"StringNotLike": {
    "oss:ClassicIntranet": [
        "true"
    ]
}

Skema umum: Pemberian izin

Skema berikut menunjukkan cara memberikan akses kepada pengguna, peran, atau semua pengguna tertentu. Setiap skema mencakup contoh kebijakan yang dapat Anda sesuaikan.

Skema 1: Berikan izin baca/tulis

Berikan anggota tim atau mitra akses baca/tulis ke bucket. Contoh ini memberikan izin baca/tulis pada example-bucket kepada pengguna RAM 27737962156157xxxx dan 20214760404935xxxx.

Catatan

Kebijakan ini tidak memberikan izin untuk mencantumkan bucket. Pengguna RAM tidak dapat menelusuri halaman Buckets secara langsung. Sebagai gantinya, mereka dapat menambahkan bucket target ke My Favorite Paths > + di panel navigasi sebelah kiri.

{
    "Version":"1",
    "Statement":[
        {
            "Effect":"Allow",
            "Action":[
                "oss:GetObject",
                "oss:PutObject",
                "oss:GetObjectAcl",
                "oss:PutObjectAcl",
                "oss:AbortMultipartUpload",
                "oss:ListParts",
                "oss:RestoreObject",
                "oss:GetVodPlaylist",
                "oss:PostVodPlaylist",
                "oss:PublishRtmpStream",
                "oss:ListObjectVersions",
                "oss:GetObjectVersion",
                "oss:GetObjectVersionAcl",
                "oss:RestoreObjectVersion"
            ],
            "Principal":[
                "27737962156157xxxx",
                "20214760404935xxxx"
            ],
            "Resource":[
                "acs:oss:*:174649585760xxxx:example-bucket/*"
            ]
        },
        {
            "Effect":"Allow",
            "Action":[
                "oss:ListObjects"
            ],
            "Principal":[
                "27737962156157xxxx",
                "20214760404935xxxx"
            ],
            "Resource":[
                "acs:oss:*:174649585760xxxx:example-bucket"
            ],
            "Condition":{
                "StringLike":{
                    "oss:Prefix":[
                        "*"
                    ]
                }
            }
        }
    ]
}

Skema 2: Berikan izin baca-saja ke direktori tertentu

Berikan akses baca-saja ke direktori tertentu. Contoh ini memberikan izin baca-saja kepada pengguna RAM 20214760404935xxxx pada direktori dengan awalan hangzhou/2020 dan shanghai/2015 di example-bucket.

Catatan

Kebijakan ini tidak memberikan izin untuk mencantumkan bucket. Pengguna RAM tidak dapat menelusuri halaman Buckets secara langsung. Sebagai gantinya, mereka dapat menambahkan bucket target ke My Favorite Paths > + di panel navigasi sebelah kiri.

{
    "Version":"1",
    "Statement":[
        {
            "Action":[
                "oss:GetObject",
                "oss:GetObjectAcl",
                "oss:GetObjectVersion",
                "oss:GetObjectVersionAcl"
            ],
            "Effect":"Allow",
            "Principal":[
                "20214760404935xxxx"
            ],
            "Resource":[
                "acs:oss:*:174649585760xxxx:example-bucket/hangzhou/2020/*",
                "acs:oss:*:174649585760xxxx:example-bucket/shanghai/2015/*"
            ]
        },
        {
            "Action":[
                "oss:ListObjects",
                "oss:ListObjectVersions"
            ],
            "Condition":{
                "StringLike":{
                    "oss:Prefix":[
                        "hangzhou/2020/*",
                        "shanghai/2015/*"
                    ]
                }
            },
            "Effect":"Allow",
            "Principal":[
                "20214760404935xxxx"
            ],
            "Resource":[
                "acs:oss:*:174649585760xxxx:example-bucket"
            ]
        }
    ]
}

Skema 3: Berikan izin tampil dan daftar

Izinkan pengguna melihat informasi bucket dan mencantumkan objek. Contoh ini memberikan izin tampil dan daftar kepada pengguna RAM pada example-bucket.

Catatan

Kebijakan ini tidak memberikan izin untuk mencantumkan bucket. Pengguna RAM tidak dapat menelusuri halaman Buckets secara langsung. Sebagai gantinya, mereka dapat menambahkan bucket target ke My Favorite Paths > + di panel navigasi sebelah kiri.

{
    "Version":"1",
    "Statement":[
        {
            "Action":[
                "oss:Get*",
                "oss:ListObjects",
                "oss:ListObjectVersions"
            ],
            "Effect":"Allow",
            "Principal":[
                "20214760404935xxxx"
            ],
            "Resource":[
                "acs:oss:*:174649585760xxxx:example-bucket"
            ]
        }
    ]
}

Skenario 4: Memberikan izin baca ke Peran RAM

Berikan akses sementara ke objek bucket melalui peran RAM. Pengguna RAM atau aplikasi mengasumsikan peran tersebut untuk mendapatkan kredensial sementara. Contoh ini memberikan izin baca pada semua objek di example-bucket ke semua sesi di bawah satu peran RAM dan sesi tertentu di bawah peran lain.

Catatan

Saat memberikan izin ke peran RAM, Principal harus mengikuti format ini: arn:sts::<uid>:assumed-role/<role-name>/<session-name>. Nilai untuk <role-name> dan <session-name> harus semuanya huruf kecil.

{
    "Version": "1",
    "Statement": [
        {
            "Action": [
                "oss:GetObject"
            ],
            "Effect": "Allow",
            "Principal": [
                "arn:sts::10323xxxxx72056:assumed-role/role-name/session-name",
                "arn:sts::10323xxxxx72056:assumed-role/role2-name/*"
            ],
            "Resource": [
                "acs:oss:*:10323xxxxx72056:example-bucket/*"
            ]
        }
    ]
}

Skema 5: Berikan izin daftar ke semua pengguna

Izinkan semua pengguna mencantumkan objek tanpa mengakses isinya. Contoh ini memberikan izin daftar kepada semua pengguna (*) pada example-bucket.

{
    "Version":"1",
    "Statement":[
        {
            "Action":[
                "oss:ListObjects",
                "oss:ListObjectVersions"
            ],
            "Effect":"Allow",
            "Principal":[
                "*"
            ],
            "Resource":[
                "acs:oss:*:174649585760xxxx:example-bucket"
            ]
        }
    ]
}

Skema 6: Akses OSS melalui jaringan internal dari instance ECS tanpa Pasangan Kunci Akses

Saat Anda mengakses OSS melalui titik akhir internal dari instance ECS di wilayah yang sama, apakah otorisasi tambahan diperlukan bergantung pada izin baca/tulis bucket tujuan:

  • Bucket public-read: Instance ECS dapat mengakses bucket secara langsung melalui URL internal tanpa konfigurasi Bucket Policy tambahan.

  • Bucket private: Anda harus mengonfigurasi Bucket Policy yang menggunakan kunci kondisi acs:SourceVpc untuk mengotorisasi permintaan akses dari VPC tempat instance ECS berada.

Format URL internal adalah sebagai berikut. Ganti bucketname dengan nama bucket tujuan dan <region> dengan wilayah tempat bucket berada (misalnya, cn-hangzhou):

https://bucketname.oss-<region>-internal.aliyuncs.com/objectname

Jalankan perintah berikut untuk memverifikasi bahwa akses jaringan internal berfungsi sebagaimana mestinya:

curl -I https://bucketname.oss-<region>-internal.aliyuncs.com/objectname

Jika respons mengembalikan 403 AccessDenied, VPC instance ECS saat ini belum diotorisasi dalam Bucket Policy. Pecahkan masalah sebagai berikut:

  1. Buka halaman Buckets dan klik bucket tujuan.

  2. Di panel navigasi sebelah kiri, klik Permission Control > Bucket Policy, lalu klik Authorize.

  3. Konfigurasikan kondisi otorisasi. Pilih VPC = dan tentukan VPC tempat instance ECS berada.

  4. Setelah memastikan otorisasi sudah benar, klik OK untuk menerapkan Bucket Policy.

  5. Pastikan instance ECS mengirim permintaan melalui titik akhir internal, bukan titik akhir publik.

  6. Jalankan perintah curl lagi untuk memverifikasi. Jika respons masih mengembalikan 403, periksa apakah ID VPC yang dikonfigurasi dalam kondisi VPC Bucket Policy cocok dengan ID VPC instance ECS.

Skema umum: Pembatasan akses jaringan

Skema berikut membatasi akses bucket berdasarkan sumber jaringan (IP publik atau VPC) menggunakan kunci kondisi acs:SourceIp dan acs:SourceVpc. Tabel di bawah merangkum pendekatan umum.

Access Source

Pendekatan kebijakan

Skenario

VPC apa pun

Tolak permintaan di mana acs:SourceVpc tidak dimulai dengan vpc-*.

Skenario 1: Membatasi Akses Jaringan Publik

VPC tertentu

Tolak permintaan di mana acs:SourceVpc tidak sama dengan ID VPC yang ditentukan.

Skema 2: Batasi akses ke VPC tertentu

IP publik tertentu

Pernyataan 1 menolak permintaan jaringan publik dari alamat IP yang tidak ditentukan; Pernyataan 2 menolak semua permintaan VPC.

Skema 3: Batasi akses ke alamat IP publik tertentu

Rentang IP tertentu dalam VPC tertentu

Pernyataan 1 menolak permintaan dari VPC yang tidak ditentukan; Pernyataan 2 menolak permintaan dari rentang IP yang tidak ditentukan dalam VPC yang ditentukan.

Skema 4: Batasi akses ke rentang IP dalam VPC

IP publik tertentu atau VPC tertentu

Pernyataan 1 menolak permintaan jaringan publik dari alamat IP yang tidak ditentukan; Pernyataan 2 menolak permintaan VPC dari VPC yang tidak ditentukan.

Skema 5: Batasi akses ke IP publik atau VPC

Semua kecuali IP tertentu (blacklist)

Tolak permintaan dari IP yang ditentukan, dan gunakan wildcard * untuk SourceVpc guna memenuhi batasan.

Skema 6: Tetapkan blacklist IP

IP tertentu (tolak unduhan saja)

Tolak permintaan GetObject dan ListObjects dari IP yang ditentukan sambil tetap mengizinkan PutObject, dan gunakan wildcard * untuk SourceVpc guna memenuhi batasan.

Skema 7: Tolak operasi unduhan dari alamat IP tertentu

Jaringan klasik

Izinkan akses jaringan klasik.

Skema 8: Konfigurasikan akses jaringan klasik

Skema 1: Batasi akses jaringan publik

Blokir semua akses jaringan publik ke bucket dengan menambahkan pernyataan tolak menggunakan kunci kondisi acs:SourceVpc. Pernyataan ini menolak permintaan yang tidak berasal dari VPC. Contoh berikut menolak semua akses non-VPC ke example-bucket.

{
  "Version": "1",
  "Statement": [
    {
      "Effect": "Deny",
      "Action": "oss:*",
      "Principal": [
        "*"
      ],
      "Resource": [
        "acs:oss:*:174649585760xxxx:example-bucket/*",
        "acs:oss:*:174649585760xxxx:example-bucket"
      ],
      "Condition": {
        "StringNotLike": {
          "acs:SourceVpc": [
            "vpc-*"
          ]
        }
      }
    }
  ]
}

Skema 2: Batasi akses ke VPC tertentu

Batasi akses bucket ke VPC tertentu menggunakan kunci kondisi acs:SourceVpc. Pernyataan ini memblokir permintaan dari VPC lain atau jaringan publik. Contoh berikut menolak semua pengguna di luar VPC t4nlw426y44rd3iq4xxxx dari membaca objek di example-bucket.

Catatan
  • Karena principal dalam pernyataan tolak berikut adalah karakter wildcard (*) dan mencakup kondisi, pernyataan tolak berlaku untuk semua pengguna, termasuk pemilik bucket.

  • Pernyataan tolak berikut hanya membatasi akses dan tidak memberikan izin apa pun. Jika principal belum diberikan izin, Anda dapat menambahkan pernyataan izinkan untuk memberikan izin yang diperlukan.

{
    "Version":"1",
    "Statement":[
        {
            "Effect":"Deny",
            "Action":[
                "oss:GetObject"
            ],
            "Principal":[
                "*"
            ],
            "Resource":[
                "acs:oss:*:174649585760xxxx:example-bucket/*"
            ],
            "Condition":{
                "StringNotEquals":{
                    "acs:SourceVpc":[
                        "vpc-t4nlw426y44rd3iq4xxxx"
                    ]
                }
            }
        }
    ]
}

Skema 3: Batasi akses ke alamat IP publik tertentu

Untuk membatasi akses bucket ke alamat IP publik tertentu, buat dua pernyataan tolak:

  • Pernyataan 1 (Tolak permintaan jaringan publik dari alamat IP yang tidak ditentukan): Pernyataan ini menggunakan StringNotLike: {"acs:SourceVpc": "vpc-*"} untuk mengidentifikasi permintaan jaringan publik (nilai acs:SourceVpc untuk permintaan jaringan publik tidak dimulai dengan vpc-). Kemudian menggunakan NotIpAddress: {"acs:SourceIp": "..."} untuk menolak permintaan yang bukan berasal dari alamat IP yang ditentukan. Tindakan tolak dipicu ketika kedua kondisi terpenuhi.

  • Pernyataan 2 (Tolak semua permintaan VPC): Pernyataan ini menggunakan StringLike: {"acs:SourceVpc": "vpc-*"} untuk mencocokkan dan menolak semua permintaan dari VPC apa pun, karena tujuannya adalah hanya mengizinkan akses dari alamat IP publik yang ditentukan.

Permintaan ditolak jika cocok dengan salah satu pernyataan. Contoh berikut menolak akses baca ke example-bucket untuk semua pengguna kecuali yang berasal dari IP publik 203.0.113.5.

Catatan

Untuk membatasi akses dari VPC di akun Alibaba Cloud lain, Anda dapat mengganti vpc-* dalam Kondisi Pernyataan 2 dengan ID VPC akun target (dalam format vpc-xxx, dapat diperoleh dari konsol VPC akun target). Kunci kondisi acs:SourceVpc mendukung ID VPC dari akun saat ini maupun akun Alibaba Cloud lain.

Catatan
  • Karena principal dalam pernyataan tolak berikut adalah karakter wildcard (*) dan mencakup kondisi, pernyataan tolak berlaku untuk semua pengguna, termasuk pemilik bucket.

  • Pernyataan tolak berikut hanya membatasi akses dan tidak memberikan izin apa pun. Jika principal belum diberikan izin, Anda dapat menambahkan pernyataan izinkan untuk memberikan izin yang diperlukan.

{
  "Version": "1",
  "Statement": [{
    "Effect": "Deny",
    "Action": [
      "oss:GetObject"
    ],
    "Principal": [
      "*"
    ],
    "Resource": [
      "acs:oss:*:174649585760xxxx:example-bucket/*"
    ],
    "Condition": {
      "NotIpAddress": {
        "acs:SourceIp": [
          "203.0.113.5"
        ]
      },
      "StringNotLike": {
        "acs:SourceVpc": [
          "vpc-*"
        ]
      }
    }
  },
    {
      "Effect": "Deny",
      "Action": [
        "oss:GetObject"
      ],
      "Principal": [
        "*"
      ],
      "Resource": [
        "acs:oss:*:174649585760xxxx:example-bucket/*"
      ],
      "Condition": {
        "StringLike": {
          "acs:SourceVpc": [
            "vpc-*"
          ]
        }
      }
    }
  ]
}

Skema 4: Batasi akses ke rentang IP dalam VPC

Untuk membatasi akses bucket ke rentang IP tertentu dalam VPC tertentu, buat dua pernyataan tolak:

  • Pernyataan 1 (Tolak semua permintaan dari luar VPC yang ditentukan): Pernyataan ini menggunakan StringNotEquals: {"acs:SourceVpc": "..."} untuk menolak permintaan dari VPC lain dan jaringan publik.

  • Pernyataan 2 (Tolak permintaan dari luar rentang IP yang ditentukan dalam VPC): Pernyataan ini menggunakan StringEquals: {"acs:SourceVpc": "..."} untuk mencocokkan permintaan dari VPC yang ditentukan dan kemudian menggunakan NotIpAddress: {"acs:SourceIp": "..."} untuk menolak permintaan dari luar rentang alamat IP yang ditentukan. Tindakan tolak dipicu ketika kedua kondisi terpenuhi.

Permintaan ditolak jika cocok dengan salah satu pernyataan. Contoh berikut menolak akses baca ke example-bucket untuk semua pengguna kecuali yang berasal dari rentang 192.168.0.0/16 dalam VPC t4nlw426y44rd3iq4xxxx.

Catatan
  • Karena principal dalam pernyataan tolak berikut adalah karakter wildcard (*) dan mencakup kondisi, pernyataan tolak berlaku untuk semua pengguna, termasuk pemilik bucket.

  • Pernyataan tolak berikut hanya membatasi akses dan tidak memberikan izin apa pun. Jika principal belum diberikan izin, Anda dapat menambahkan pernyataan izinkan untuk memberikan izin yang diperlukan.

{
    "Version":"1",
    "Statement":[
        {
            "Effect":"Deny",
            "Action":[
                "oss:GetObject"
            ],
            "Principal":[
                "*"
            ],
            "Resource":[
                "acs:oss:*:174649585760xxxx:example-bucket/*"
            ],
            "Condition":{
                "StringNotEquals":{
                    "acs:SourceVpc":[
                        "vpc-t4nlw426y44rd3iq4xxxx"
                    ]
                }
            }
        },
        {
            "Effect":"Deny",
            "Action":[
                "oss:GetObject"
            ],
            "Principal":[
                "*"
            ],
            "Resource":[
                "acs:oss:*:174649585760xxxx:example-bucket/*"
            ],
            "Condition":{
                "StringEquals":{
                    "acs:SourceVpc":[
                        "vpc-t4nlw426y44rd3iq4xxxx"
                    ]
                },
                "NotIpAddress":{
                    "acs:SourceIp":[
                        "192.168.0.0/16"
                    ]
                }
            }
        }
    ]
}

Skema 5: Batasi akses ke IP publik atau VPC

Untuk membatasi akses bucket ke IP publik tertentu atau VPC tertentu, buat dua pernyataan tolak:

  • Pernyataan 1 (Untuk permintaan jaringan publik, tolak IP yang tidak ditentukan): Pernyataan ini menggunakan StringNotLike: {"acs:SourceVpc": "vpc-*"} untuk mengidentifikasi permintaan jaringan publik dan kemudian menggunakan NotIpAddress: {"acs:SourceIp": "..."} untuk menolak permintaan dari alamat IP publik yang tidak ditentukan. Tindakan tolak dipicu ketika kedua kondisi terpenuhi. Permintaan VPC tidak cocok dengan pernyataan ini karena nilai acs:SourceVpc-nya dimulai dengan vpc-.

  • Pernyataan 2 (Untuk permintaan VPC, tolak VPC yang tidak ditentukan): Pernyataan ini menggunakan StringLike: {"acs:SourceVpc": "vpc-*"} untuk mengidentifikasi permintaan VPC dan kemudian menggunakan StringNotEquals: {"acs:SourceVpc": "..."} untuk menolak permintaan dari VPC yang tidak ditentukan. Tindakan tolak dipicu ketika kedua kondisi terpenuhi. Permintaan jaringan publik tidak cocok dengan pernyataan ini karena nilai acs:SourceVpc-nya tidak dimulai dengan vpc-.

Permintaan ditolak jika cocok dengan salah satu pernyataan. Contoh berikut menolak akses baca ke example-bucket untuk semua pengguna kecuali yang berasal dari IP publik 203.0.113.5 atau VPC t4nlw426y44rd3iq4xxxx.

Catatan

Kunci kondisi acs:SourceVpc mendukung ID VPC dari akun saat ini maupun akun Alibaba Cloud lain, memungkinkan kontrol akses VPC lintas akun. Untuk mengizinkan akses dari VPC tertentu di akun lain, ganti ID VPC dalam Pernyataan 2 dengan ID VPC akun target.

Catatan
  • Karena principal dalam pernyataan tolak berikut adalah karakter wildcard (*) dan mencakup kondisi, pernyataan tolak berlaku untuk semua pengguna, termasuk pemilik bucket.

  • Pernyataan tolak berikut hanya membatasi akses dan tidak memberikan izin apa pun. Jika principal belum diberikan izin, Anda dapat menambahkan pernyataan izinkan untuk memberikan izin yang diperlukan.

{
    "Version":"1",
    "Statement":[
        {
            "Effect":"Deny",
            "Action":[
                "oss:GetObject"
            ],
            "Principal":[
                "*"
            ],
            "Resource":[
                "acs:oss:*:174649585760xxxx:example-bucket/*"
            ],
            "Condition":{
                "StringNotLike":{
                    "acs:SourceVpc":[
                        "vpc-*"
                    ]
                },
                "NotIpAddress":{
                    "acs:SourceIp":[
                        "203.0.113.5"
                    ]
                }
            }
        },
        {
            "Effect":"Deny",
            "Action":[
                "oss:GetObject"
            ],
            "Principal":[
                "*"
            ],
            "Resource":[
                "acs:oss:*:174649585760xxxx:example-bucket/*"
            ],
            "Condition":{
                "StringLike":{
                    "acs:SourceVpc":[
                        "vpc-*"
                    ]
                },
                "StringNotEquals":{
                    "acs:SourceVpc":[
                        "vpc-t4nlw426y44rd3iq4xxxx"
                    ]
                }
            }
        }
    ]
}

Skema 6: Tetapkan blacklist IP

Blokir akses dari alamat IP atau rentang tertentu dengan menambahkan pernyataan tolak ke bucket policy.

Kondisi StringLike: {"acs:SourceVpc": "*"} menggunakan wildcard untuk mencocokkan semua nilai dan tidak membatasi cakupan VPC. Kondisi ini hanya ada untuk memenuhi batasan bahwa acs:SourceIp memerlukan kondisi acs:SourceVpc yang sesuai.

Catatan
  • Karena principal dalam pernyataan tolak berikut adalah karakter wildcard (*) dan mencakup kondisi, pernyataan tolak berlaku untuk semua pengguna, termasuk pemilik bucket.

  • Anda dapat mengonfigurasi beberapa alamat IP dan rentang alamat IP. Pisahkan dengan koma.

{
  "Version": "1",
  "Statement": [{
    "Effect": "Deny",
    "Action": "oss:*",
    "Principal": [
      "*"
    ],
    "Resource": [
      "acs:oss:*:174649585760xxxx:example-bucket/*",
      "acs:oss:*:174649585760xxxx:example-bucket"
    ],
    "Condition": {
      "IpAddress": {
        "acs:SourceIp": [
          "101.***.***.100"
        ]
      },
      "StringLike": {
        "acs:SourceVpc": [
          "*"
        ]
      }
    }
  }]
}

Skema 7: Tolak operasi unduhan dari alamat IP tertentu

Untuk menolak alamat IP tertentu dari mengunduh (GetObject) dan mencantumkan (ListObjects) objek dalam bucket sambil tetap mengizinkan alamat IP tersebut mengunggah objek (PutObject), batasi Action pernyataan Deny hanya ke GetObject dan ListObjects. Berbeda dengan blacklist IP di Skema 6 yang menolak oss:*, kebijakan ini hanya menolak operasi jenis unduhan, sehingga unggahan tidak terpengaruh.

Kondisi StringLike: {"acs:SourceVpc": "*"} menggunakan wildcard untuk mencocokkan semua nilai dan tidak membatasi cakupan VPC. Kondisi ini hanya ada untuk memenuhi batasan bahwa acs:SourceIp memerlukan kondisi acs:SourceVpc yang sesuai.

Karena Principal dalam pernyataan Deny berikut adalah karakter wildcard (*) dan pernyataan mencakup Kondisi, pernyataan Deny ini berlaku untuk semua pemohon, termasuk pemilik bucket.

Anda dapat mengonfigurasi beberapa alamat IP dan rentang alamat IP. Pisahkan dengan koma.

{
  "Version": "1",
  "Statement": [{
    "Effect": "Deny",
    "Action": [
      "oss:GetObject",
      "oss:ListObjects"
    ],
    "Principal": [
      "*"
    ],
    "Resource": [
      "acs:oss:*:174649585760xxxx:example-bucket/*",
      "acs:oss:*:174649585760xxxx:example-bucket"
    ],
    "Condition": {
      "IpAddress": {
        "acs:SourceIp": [
          "101.***.***.100"
        ]
      },
      "StringLike": {
        "acs:SourceVpc": [
          "*"
        ]
      }
    }
  }]
}

Setelah kebijakan ini berlaku, permintaan GetObject dan ListObjects dari alamat IP yang ditolak mengembalikan 403 AccessDenied, sedangkan permintaan PutObject tidak terpengaruh.

Skema 8: Konfigurasikan akses jaringan klasik

Kunci kondisi oss:ClassicIntranet menunjukkan apakah permintaan berasal dari jaringan klasik OSS. Nilai yang valid adalah true dan false. Beberapa layanan backend OSS (seperti log delivery dan bucket inventory) mengakses bucket melalui jaringan klasik. Gunakan kondisi berikut untuk mencocokkan permintaan dari jaringan klasik.

"Condition": {
    "StringEquals": {
        "oss:ClassicIntranet": [
            "true"
        ]
    }
}

Saat mengonfigurasi pembatasan akses jaringan (kebijakan Deny), untuk mengizinkan layanan backend di atas, tambahkan kondisi berikut ke blok Condition pernyataan Deny untuk mengecualikan permintaan jaringan klasik dan menghindari pemblokiran yang tidak disengaja.

"StringNotEquals": {
    "oss:ClassicIntranet": [
        "true"
    ]
}

Skema 9: Berikan izin baca/tulis ke alamat IP tertentu dan izin baca-saja ke semua alamat IP lain

Untuk memberikan izin baca/tulis ke permintaan dari rentang alamat IP tertentu dan izin baca-saja ke permintaan dari semua alamat IP lain, Anda memerlukan dua pernyataan Allow. Satu pernyataan yang hanya menggunakan kunci kondisi acs:SourceIp tidak dapat disimpan, karena OSS mengharuskan kunci kondisi acs:SourceVpc ditentukan bersama dengan acs:SourceIp. Contoh berikut menggabungkan dua pernyataan untuk mencapai otorisasi terdiferensiasi ini.

  • Pernyataan 1 memberikan izin baca/tulis ke example-bucket untuk permintaan dari rentang alamat IP 192.168.0.0/16.

  • Pernyataan 2 memberikan izin baca-saja ke example-bucket untuk permintaan dari alamat IP apa pun, tanpa kondisi.

{
    "Version": "1",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "oss:GetObject",
                "oss:PutObject",
                "oss:ListObjects"
            ],
            "Resource": [
                "acs:oss:*:*:examplebucket",
                "acs:oss:*:*:examplebucket/*"
            ],
            "Condition": {
                "IpAddress": {
                    "acs:SourceIp": [
                        "192.168.0.0/16"
                    ]
                },
                "StringNotLike": {
                    "acs:SourceVpc": [
                        "vpc-*"
                    ]
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": [
                "oss:GetObject",
                "oss:ListObjects"
            ],
            "Resource": [
                "acs:oss:*:*:examplebucket",
                "acs:oss:*:*:examplebucket/*"
            ]
        }
    ]
}

Validasi lengkap saat beberapa pernyataan berdampingan

Saat bucket berisi beberapa pernyataan kebijakan, menambahkan atau memodifikasi pernyataan apa pun memicu validasi lengkap terhadap semua pernyataan dalam kebijakan. Setiap pernyataan yang berisi kunci kondisi acs:SourceIp juga harus berisi kunci kondisi acs:SourceVpc. Jika tidak, operasi PutBucketPolicy gagal dan mengembalikan kode kesalahan 0030-00000008.

Langkah pemecahan masalah:

  1. Panggil GetBucketPolicy untuk mengambil semua pernyataan dalam kebijakan bucket saat ini.

  2. Periksa elemen Condition setiap pernyataan, dan verifikasi bahwa setiap pernyataan yang berisi acs:SourceIp juga berisi acs:SourceVpc.

  3. Tambahkan kondisi acs:SourceVpc yang hilang ke pernyataan yang diidentifikasi pada langkah 2, lalu panggil PutBucketPolicy lagi untuk mengirim ulang kebijakan.

Skema umum: Kontrol keamanan

Skema berikut memberlakukan kontrol keamanan: pembatasan kredensial, pencegahan akses publik, dan batasan kebijakan retensi.

Skema 1: Wajibkan kredensial sementara untuk panggilan API

Wajibkan kredensial akses sementara untuk panggilan API. Kebijakan ini menggunakan kunci kondisi acs:AccessId untuk memblokir akses dari kredensial jangka panjang (kunci akses akun Alibaba Cloud atau pengguna RAM). Contoh berikut menolak semua pengguna tanpa kredensial sementara (dimulai dengan TMP. atau STS.) dari melihat example-bucket dan mencantumkan objek-objeknya.

{
    "Version": "1",
    "Statement": [
        {            
            "Effect": "Deny",
            "Action":[
                "oss:Get*",
                "oss:ListObjects",
                "oss:ListObjectVersions"
            ],
            "Principal":[
                "*"
            ],
            "Resource":[
                "acs:oss:*:174649585760xxxx:example-bucket/*"
            ],
            "Condition": {
                "StringNotLike": {
                    "acs:AccessId": [
                        "TMP.*",
                        "STS.*"
                 ]
                }
            }
        }
    ]
}

Skema 2: Larang ACL publik

Cegah ACL bucket dan objek diatur ke publik. Buat dua pernyataan tolak:

  • Gunakan kunci kondisi oss:x-oss-acl untuk membuat pernyataan tolak yang mencegah ACL bucket diatur ke izin selain private. Setiap upaya mengatur ACL public-read atau public-read-write akan memicu aturan tolak.

  • Gunakan kunci kondisi oss:x-oss-object-acl untuk membuat pernyataan tolak yang mencegah ACL objek diatur ke izin selain private dan default.

Permintaan ditolak jika cocok dengan salah satu pernyataan. Contoh berikut menolak operasi ACL publik pada example-bucket.

{
    "Version": "1",
    "Statement": [
        {            
            "Effect": "Deny",
            "Action": [
                "oss:PutBucketAcl"
            ],
            "Principal": [
                "*"
            ],
            "Resource": [
                "acs:oss:*:*:example-bucket"
            ],
            "Condition": {
                "StringNotEquals": {
                    "oss:x-oss-acl": "private"
                }
            }
        },
        {            
            "Effect": "Deny",
            "Action": [
                "oss:PutObjectAcl"
            ],
            "Principal": [
                "*"
            ],
            "Resource": [
                "acs:oss:*:*:example-bucket/*"
            ],
            "Condition": {
                "StringNotEquals": {
                    "oss:x-oss-object-acl": [
                        "private",
                        "default"
                    ]
                }
            }
        }
    ]
}

Skema 3: Batasi periode retensi ObjectWorm

Setelah Anda mengaktifkan kebijakan retensi tingkat objek (ObjectWorm) untuk bucket, gunakan bucket policy untuk membatasi periode retensi maksimum. Contoh berikut membatasi retensi hingga 30 hari. Setiap permintaan PutObjectRetention yang melebihi 30 hari ditolak.

{
  "Version": "1",
  "Statement": [
    {
      "Effect": "Deny",
      "Action": [
        "oss:PutObjectRetention"
      ],
      "Principal": [
        "*"
      ],
      "Resource": [
        "acs:oss:*:174649585760xxxx:example-bucket/*"
      ],
      "Condition": {
        "NumericGreaterThan": {
          "oss:object-remaining-retention-days": "30"
        }
      }
    }
  ]
}
Catatan
  • oss:object-remaining-retention-days adalah kunci kondisi untuk kebijakan ObjectWorm. Ini merepresentasikan jumlah hari retensi yang tersisa yang ditentukan dalam permintaan.

  • Karena principal dalam kebijakan ini adalah karakter wildcard (*) dan mencakup kondisi, kebijakan berlaku untuk semua pengguna, termasuk pemilik bucket.

Diagnosis unggahan anonim

Saat file tak terduga muncul di bucket, periksa apakah bucket policy berisi pernyataan Allow dengan Principal diatur ke karakter wildcard (*). Pernyataan ini memungkinkan siapa saja mengunggah objek menggunakan skrip (misalnya, python-requests atau curl) tanpa autentikasi.

  1. Aktifkan kueri log waktu nyata di konsol OSS: buka bucket target, klik Log Management > Real-time Query, lalu klik Enable Now.

  2. Kueri log akses di Simple Log Service (SLS) dan filter unggahan anonim:

    select access_id, user_agent, client_ip, http_method, object
    from oss-log-store
    where access_id = '-' and user_agent like '%python-requests%'
  3. Deskripsi bidang:

    • access_id sama dengan - menunjukkan permintaan anonim (tidak diautentikasi).

    • user_agent menunjukkan tool yang digunakan untuk mengunggah objek, seperti python-requests/2.28.1.

    • client_ip adalah alamat IP sumber unggahan anonim.

  4. Unggahan anonim memiliki sign_type diatur ke NotSign, sedangkan unggahan bertanda memiliki sign_type diatur ke NORMAL_SIGN4. Memodifikasi atau menghapus pernyataan Allow dengan Principal diatur ke * tidak memengaruhi unggahan bertanda yang dilakukan melalui konsol, ossbrowser, atau ossutil.

Pengguna read-only masih bisa menulis objek

Kebijakan sistem AliyunOSSReadOnlyAccess hanya memberikan tindakan baca (oss:Get* dan oss:List*) dan tidak mencakup izin tulis apa pun. Jika pengguna RAM yang hanya memiliki kebijakan ini dilampirkan masih bisa menulis objek (misalnya, permintaan PutObject mengembalikan 200 OK), pengguna tersebut memiliki izin tulis tumpang tindih dari sumber lain. Periksa tiga sumber berikut:

  1. Kebijakan kustom RAM: Panggil ListPoliciesForUser untuk mencantumkan semua kebijakan yang dilampirkan ke pengguna RAM, dan periksa apakah ada kebijakan kustom yang memberikan oss:Put* atau oss:*.

  2. Bucket policy: Periksa bucket policy bucket target. Verifikasi apakah elemen Principal mencakup pengguna RAM ini dan apakah elemen Action mencakup tindakan tulis.

  3. Kebijakan grup pengguna RAM: Jika pengguna RAM termasuk dalam grup pengguna RAM, periksa apakah grup pengguna memiliki kebijakan yang dilampirkan yang memberikan izin tulis.

Untuk menyelesaikan masalah, hapus atau modifikasi kebijakan izin tulis tumpang tindih sehingga izin pengguna RAM dikendalikan hanya oleh AliyunOSSReadOnlyAccess. Setelah Anda menghapus kebijakan izin tulis tumpang tindih, permintaan seperti PutObject dari pengguna RAM read-only mengembalikan 403 AccessDenied, dengan pesan kesalahan mirip You have no right to access this object because of bucket acl.

Integrasi pengembangan dan tool

Selain konsol, Anda dapat mengonfigurasi bucket policy menggunakan tool grafis, tool CLI, dan SDK.

  • Gunakan tool grafis ossbrowser

    ossbrowser menyediakan pengalaman visual mirip konsol untuk operasi kebijakan tingkat bucket. Instal dan login ke ossbrowser, lalu konfigurasikan kebijakan.

  • Gunakan tool baris perintah ossutil

    Tentukan kebijakan otorisasi menggunakan perintah put-bucket-policy.

    Catatan

    Untuk menetapkan kebijakan otorisasi untuk bucket vektor, jalankan perintah ossutil vectors-api put-bucket-policy.

  • Gunakan SDK

    Konfigurasikan kebijakan menggunakan SDK seperti Java SDK, Python SDK, Go SDK, dan Node.js SDK. Referensi SDK mencakup semua bahasa yang didukung.

  • Panggil API secara langsung

    Panggil operasi PutBucketPolicy untuk menetapkan kebijakan otorisasi bucket.

Kuota dan batasan

  • Ukuran kebijakan: Bucket dapat memiliki beberapa pernyataan Bucket Policy, tetapi ukuran total semua kebijakan tidak boleh melebihi 16 KB.

  • Panjang bidang: Panjang setiap bidang dalam Bucket Policy tidak boleh melebihi 4.095 byte.

Dokumen terkait