全部产品
Search
文档中心

Object Storage Service:bucket-policy

更新时间:Jul 02, 2025

Kebijakan bucket adalah kebijakan otorisasi berbasis sumber daya. Pemilik bucket dapat menggunakan kebijakan bucket untuk memberikan otorisasi kepada pengguna lain guna mengakses sumber daya tertentu di Object Storage Service (OSS). Topik ini menjelaskan cara menjalankan perintah bucket-policy untuk menambah, memodifikasi, menanyakan, atau menghapus kebijakan bucket.

Catatan penggunaan

  • Untuk menambah atau memodifikasi kebijakan bucket, Anda harus memiliki izin oss:PutBucketPolicy. Untuk menanyakan kebijakan bucket, Anda harus memiliki izin oss:GetBucketPolicy. Untuk menghapus kebijakan bucket, Anda harus memiliki izin oss:DeleteBucketPolicy. Untuk informasi lebih lanjut, lihat Lampirkan kebijakan kustom ke pengguna RAM.

  • Untuk ossutil versi 1.6.16 dan yang lebih baru, Anda dapat langsung menggunakan ossutil sebagai nama biner di baris perintah tanpa perlu memperbarui nama biner berdasarkan sistem operasi. Untuk ossutil sebelum versi 1.6.16, Anda perlu memperbarui nama biner sesuai dengan sistem operasi. Untuk informasi lebih lanjut, lihat Referensi Perintah ossutil.

Tambah atau modifikasi kebijakan bucket

Sebelum menambah atau memodifikasi kebijakan bucket, buat file JSON di komputer lokal Anda dan konfigurasikan kebijakan bucket di file tersebut. Anda dapat mengonfigurasi beberapa kebijakan bucket dalam satu file JSON, tetapi ukuran totalnya tidak boleh melebihi 16 KB.

Saat menambah atau memodifikasi kebijakan bucket, ossutil membaca kebijakan dari file JSON dan menambahkannya ke bucket yang ditentukan. Saat menambah kebijakan, kebijakan bucket yang ada akan ditimpa.

  • Sintaks Perintah

    ossutil bucket-policy --method put oss://namabucket file_json_lokal

    Tabel berikut menjelaskan parameter di atas.

    Parameter

    Deskripsi

    namabucket

    Nama bucket tempat Anda ingin menambah atau memodifikasi kebijakan bucket.

    file_json_lokal

    Nama file JSON lokal tempat Anda mengonfigurasi kebijakan bucket.

  • Contoh

    1. Buat file bernama file_json_lokal di komputer lokal Anda dan konfigurasikan kebijakan bucket berbeda berdasarkan skenario yang berbeda.

      Contoh berikut menunjukkan cara mengonfigurasi kebijakan bucket umum.

      Catatan

      Contoh berikut menunjukkan bagaimana pemilik bucket dengan UID 174649585760**** dalam parameter Resource mengonfigurasi kebijakan bucket untuk memberikan izin berbeda kepada pengguna RAM, seperti pengguna RAM dengan UID 20214760404935**** dalam parameter Principal dan pengguna anonim *.

      • Tentukan bahwa hanya permintaan anonim dari alamat IP tertentu yang diizinkan untuk mengakses semua sumber daya di bucket bernama examplebucket:

        {
            "Statement": [
                {
                    "Action": [
                        "oss:GetObject",
                        "oss:GetObjectAcl",
                        "oss:ListObjects",
                        "oss:RestoreObject",
                        "oss:GetVodPlaylist",
                        "oss:ListObjectVersions",
                        "oss:GetObjectVersion",
                        "oss:GetObjectVersionAcl",
                        "oss:RestoreObjectVersion"
                    ],
                    "Condition": {
                        "IpAddress": {
                            "acs:SourceIp": [
                                "10.10.10.10"
                            ]
                        }
                    },
                    "Effect": "Allow",
                    "Principal": [
                        "*"
                    ],
                    "Resource": [
                        "acs:oss:*:174649585760xxxx:examplebucket/*"
                    ]
                },
                {
                    "Action": [
                        "oss:ListObjects",
                        "oss:GetObject"
                    ],
                    "Condition": {
                        "StringLike": {
                            "oss:Prefix": [
                                "*"
                            ]
                        },
                        "IpAddress": {
                            "acs:SourceIp": [
                                "10.10.10.10"
                            ]
                        }
                    },
                    "Effect": "Allow",
                    "Principal": [
                        "*"
                    ],
                    "Resource": [
                        "acs:oss:*:174649585760xxxx:examplebucket"
                    ]
                }
            ],
            "Version": "1"
        }
      • Berikan izin baca-saja kepada pengguna RAM pada direktori hangzhou/2020 dan hangzhou/2015 dari bucket bernama examplebucket:

        {
            "Statement": [
                {
                    "Action": [
                        "oss:GetObject",
                        "oss:GetObjectAcl",
                        "oss:ListObjects",
                        "oss:RestoreObject",
                        "oss:GetVodPlaylist",
                        "oss:ListObjectVersions",
                        "oss:GetObjectVersion",
                        "oss:GetObjectVersionAcl",
                        "oss:RestoreObjectVersion"
                    ],
                    "Effect": "Allow",
                    "Principal": [
                        "20214760404935xxxx"
                    ],
                    "Resource": [
                        "acs:oss:*:174649585760xxxx:examplebucket/hangzhou/2020/*",
                        "acs:oss:*:174649585760xxxx:examplebucket/hangzhou/2015/*"
                    ]
                },
                {
                    "Action": [
                        "oss:ListObjects",
                        "oss:GetObject"
                    ],
                    "Condition": {
                        "StringLike": {
                            "oss:Prefix": [
                                "hangzhou/2020/*",
                                "hangzhou/2015/*"
                            ]
                        }
                    },
                    "Effect": "Allow",
                    "Principal": [
                        "20214760404935xxxx"
                    ],
                    "Resource": [
                        "acs:oss:*:174649585760xxxx:examplebucket"
                    ]
                }
            ],
            "Version": "1"
        }
      • Tolak permintaan anonim ke semua objek di direktori hangzhou/2021/ dari bucket bernama examplebucket:

        {
            "Statement": [
                {
                    "Action": [
                        "oss:RestoreObject",
                        "oss:ListObjects",
                        "oss:AbortMultipartUpload",
                        "oss:PutObjectAcl",
                        "oss:GetObjectAcl",
                        "oss:ListParts",
                        "oss:DeleteObject",
                        "oss:PutObject",
                        "oss:GetObject",
                        "oss:GetVodPlaylist",
                        "oss:PostVodPlaylist",
                        "oss:PublishRtmpStream",
                        "oss:ListObjectVersions",
                        "oss:GetObjectVersion",
                        "oss:GetObjectVersionAcl",
                        "oss:RestoreObjectVersion"
                    ],
                    "Effect": "Deny",
                    "Principal": [
                        "*"
                    ],
                    "Resource": [
                        "acs:oss:*:174649585760xxxx:examplebucket/hangzhou/2021/*"
                    ]
                },
                {
                    "Action": [
                        "oss:ListObjects",
                        "oss:GetObject"
                    ],
                    "Condition": {
                        "StringLike": {
                            "oss:Prefix": [
                                "hangzhou/2021/*"
                            ]
                        }
                    },
                    "Effect": "Deny",
                    "Principal": [
                        "*"
                    ],
                    "Resource": [
                        "acs:oss:*:174649585760xxxx:examplebucket"
                    ]
                }
            ],
            "Version": "1"
        }
    2. Tambahkan kebijakan bucket ke bucket examplebucket.

      ossutil bucket-policy --method put oss://examplebucket file_json_lokal

      Jika keluaran berikut ditampilkan, kebijakan bucket telah ditambahkan ke bucket examplebucket:

      1.125101(s) elapsed

Menanyakan kebijakan bucket

  • Sintaks Perintah

    ossutil bucket-policy --method get oss://namabucket file_json_lokal

    Parameter

    Deskripsi

    namabucket

    Nama bucket yang kebijakan bucket-nya ingin Anda tanyakan.

    file_json_lokal

    File JSON lokal yang digunakan untuk menyimpan kebijakan bucket yang ditanyakan. Jika parameter ini tidak ditentukan, kebijakan bucket yang ditanyakan ditampilkan tanpa disimpan dalam file JSON.

  • Contoh

    Jalankan perintah berikut untuk menanyakan kebijakan bucket dari bucket bernama examplebucket:

    ossutil bucket-policy --method get oss://examplebucket local_json_file

    Jika keluaran berikut ditampilkan, kebijakan bucket dari examplebucket telah ditanyakan dan ditulis ke file JSON lokal:

    0.212407(s) elapsed

Hapus kebijakan bucket

Jika Anda tidak lagi memerlukan kebijakan bucket untuk memberikan otorisasi kepada pengguna lain mengakses sumber daya OSS Anda, hapus kebijakan bucket yang telah dikonfigurasi.

  • Sintaks Perintah

    ossutil bucket-policy --method delete oss://namabucket
  • Contoh

    Jalankan perintah berikut untuk menghapus semua kebijakan bucket dari bucket bernama examplebucket:

    ossutil bucket-policy --method delete oss://examplebucket

    Jika keluaran berikut ditampilkan, semua kebijakan bucket dari examplebucket telah dihapus:

    0.530750(s) elapsed

Opsi umum

Jika Anda menggunakan ossutil untuk beralih ke bucket yang terletak di wilayah lain, tambahkan opsi -e untuk menentukan titik akhir wilayah tempat bucket tersebut berada. Jika Anda menggunakan ossutil untuk beralih ke bucket yang dimiliki oleh akun Alibaba Cloud lain, tambahkan opsi -i untuk menentukan ID AccessKey dari akun tersebut, dan tambahkan opsi -k untuk menentukan Rahasia AccessKey dari akun tersebut.

Sebagai contoh, Anda dapat menjalankan perintah berikut untuk mengonfigurasi kebijakan bucket untuk bucket bernama examplebucket, yang terletak di wilayah China (Hangzhou) dan dimiliki oleh akun Alibaba Cloud lain:

ossutil bucket-policy --method put oss://examplebucket file_json_lokal -e oss-cn-hangzhou.aliyuncs.com -i yourAccessKeyID -k yourAccessKeySecret

Untuk informasi lebih lanjut tentang opsi umum, lihat Opsi Umum.