全部产品
Search
文档中心

Object Storage Service:Kebijakan Bucket (Python SDK V2)

更新时间:Nov 09, 2025

Kebijakan bucket adalah kebijakan otorisasi OSS yang dapat digunakan untuk memberikan atau membatasi akses detail halus ke sumber daya OSS tertentu bagi pengguna teridentifikasi, seperti Akun Alibaba Cloud, Pengguna RAM, Peran RAM, atau pengguna anonim. Sebagai contoh, Anda dapat memberikan izin read-only pada sumber daya OSS tertentu kepada Pengguna RAM dari Akun Alibaba Cloud lain.

Catatan

  • Sebelum mengonfigurasi kebijakan bucket, pastikan Anda memahami fitur ini. Untuk informasi lebih lanjut, lihat Kebijakan Bucket.

  • Kode contoh dalam topik ini menggunakan ID wilayah cn-hangzhou untuk Wilayah China (Hangzhou) sebagai contoh. Secara default, Titik akhir publik digunakan. Jika Anda ingin mengakses OSS dari layanan Alibaba Cloud lainnya di wilayah yang sama, gunakan Titik akhir internal. Untuk informasi lebih lanjut tentang wilayah dan titik akhir yang didukung oleh OSS, lihat Wilayah dan titik akhir.

  • Anda harus memiliki izin oss:PutBucketPolicy untuk menetapkan kebijakan bucket, izin oss:GetBucketPolicy untuk menanyakan kebijakan bucket, dan izin oss:DeleteBucketPolicy untuk menghapus kebijakan bucket. Untuk informasi lebih lanjut, lihat Lampirkan kebijakan kustom ke Pengguna RAM.

Definisi metode

Tetapkan kebijakan bucket

put_bucket_policy(request: PutBucketPolicyRequest, **kwargs) → PutBucketPolicyResult

Kueri kebijakan bucket

get_bucket_policy(request: GetBucketPolicyRequest, **kwargs) → GetBucketPolicyResult

Hapus kebijakan bucket

delete_bucket_policy(request: DeleteBucketPolicyRequest, **kwargs) → DeleteBucketPolicyResult

Parameter

Tipe

Deskripsi

request

PutBucketPolicyRequest

Parameter permintaan. Untuk informasi lebih lanjut, lihat PutBucketPolicyRequest

GetBucketPolicyRequest

Parameter permintaan. Untuk informasi lebih lanjut, lihat GetBucketPolicyRequest

DeleteBucketPolicyRequest

Parameter permintaan. Untuk informasi lebih lanjut, lihat DeleteBucketPolicyRequest

Nilai kembali

Tipe

Deskripsi

PutBucketPolicyResult

Nilai kembali. Untuk informasi lebih lanjut, lihat PutBucketPolicyResult

GetBucketPolicyResult

Nilai kembali. Untuk informasi lebih lanjut, lihat GetBucketPolicyResult

DeleteBucketPolicyResult

Nilai kembali. Untuk informasi lebih lanjut, lihat DeleteBucketPolicyResult

Untuk definisi lengkap metode untuk menetapkan kebijakan bucket, lihat put_bucket_policy.

Untuk definisi lengkap metode untuk menanyakan kebijakan bucket, lihat get_bucket_policy.

Untuk definisi lengkap metode untuk menghapus kebijakan bucket, lihat delete_bucket_policy.

Contoh kode

Tetapkan kebijakan bucket

Gunakan kode berikut untuk menetapkan kebijakan bucket.

import argparse
import alibabacloud_oss_v2 as oss

# Buat parser parameter baris perintah untuk mendapatkan parameter baris perintah.
parser = argparse.ArgumentParser(description="contoh menetapkan kebijakan bucket")
parser.add_argument('--region', help='Wilayah tempat bucket berada.', required=True)
parser.add_argument('--bucket', help='Nama bucket.', required=True)
parser.add_argument('--endpoint', help='Nama domain yang dapat digunakan layanan lain untuk mengakses OSS')

def main():
    # Parsing parameter baris perintah.
    args = parser.parse_args()

    # Muat kredensial akses dari variabel lingkungan.
    credentials_provider = oss.credentials.EnvironmentVariableCredentialsProvider()

    # Gunakan konfigurasi default dari SDK.
    cfg = oss.config.load_default()
    # Tetapkan penyedia kredensial.
    cfg.credentials_provider = credentials_provider
    # Tetapkan wilayah.
    cfg.region = args.region
    # Jika endpoint diberikan, tetapkan endpoint dalam konfigurasi.
    if args.endpoint is not None:
        cfg.endpoint = args.endpoint

    # Buat klien OSS.
    client = oss.Client(cfg)

    # Contoh berikut menunjukkan bagaimana pemilik sumber daya (pemilik bucket dengan UID 174649585760xxxx) menggunakan kebijakan bucket untuk memberikan izin kepada pengguna tertentu (Pengguna RAM dengan UID 20214760404935xxxx) untuk mencantumkan semua objek di examplebucket.
    policy_text = "{\"Statement\": [{\"Effect\": \"Allow\", \"Action\": [\"oss:GetObject\", \"oss:ListObjects\"], \"Principal\": [\"20214760404935xxxx\"], \"Resource\": [\"acs:oss:*:174649585760xxxx:examplebucket/*\"]}], \"Version\": \"1\"}"

    # Terapkan kebijakan ke bucket yang ditentukan.
    result = client.put_bucket_policy(oss.PutBucketPolicyRequest(
            bucket=args.bucket,
            body=policy_text,
    ))

    # Cetak kode status dan ID permintaan hasil.
    print(f'kode status: {result.status_code}, ID permintaan: {result.request_id}')

if __name__ == "__main__":
    main()

Kueri kebijakan bucket

Gunakan kode berikut untuk menanyakan kebijakan bucket.

import argparse
import alibabacloud_oss_v2 as oss

# Buat parser parameter baris perintah.
parser = argparse.ArgumentParser(description="contoh menanyakan kebijakan bucket")
parser.add_argument('--region', help='Wilayah tempat bucket berada.', required=True)
parser.add_argument('--bucket', help='Nama bucket.', required=True)
parser.add_argument('--endpoint', help='Nama domain yang dapat digunakan layanan lain untuk mengakses OSS')

def main():
    # Parsing parameter baris perintah.
    args = parser.parse_args()

    # Muat kredensial akses dari variabel lingkungan.
    credentials_provider = oss.credentials.EnvironmentVariableCredentialsProvider()

    # Gunakan konfigurasi default dari SDK.
    cfg = oss.config.load_default()
    # Tetapkan penyedia kredensial ke penyedia yang memperoleh kredensial dari variabel lingkungan.
    cfg.credentials_provider = credentials_provider
    # Tetapkan wilayah.
    cfg.region = args.region
    # Jika endpoint diberikan, tetapkan endpoint dalam konfigurasi.
    if args.endpoint is not None:
        cfg.endpoint = args.endpoint

    # Buat klien OSS.
    client = oss.Client(cfg)

    # Panggil metode get_bucket_policy untuk mendapatkan kebijakan bucket yang ditentukan.
    result = client.get_bucket_policy(oss.GetBucketPolicyRequest(
            bucket=args.bucket,
    ))

    # Cetak kode status yang dikembalikan, ID permintaan, dan badan respons.
    print(f'kode status: {result.status_code},'
            f' ID permintaan: {result.request_id},'
            f' badan: {result.body},'
    )

# Panggil fungsi utama ketika skrip dijalankan sebagai program utama.
if __name__ == "__main__":
    main()

Hapus kebijakan bucket

Gunakan kode berikut untuk menghapus kebijakan bucket.

import argparse
import alibabacloud_oss_v2 as oss

# Buat parser parameter baris perintah.
parser = argparse.ArgumentParser(description="contoh menghapus kebijakan bucket")
parser.add_argument('--region', help='Wilayah tempat bucket berada.', required=True)
parser.add_argument('--bucket', help='Nama bucket.', required=True)
parser.add_argument('--endpoint', help='Nama domain yang dapat digunakan layanan lain untuk mengakses OSS')

def main():
    # Parsing parameter baris perintah.
    args = parser.parse_args()

    # Muat kredensial akses dari variabel lingkungan.
    credentials_provider = oss.credentials.EnvironmentVariableCredentialsProvider()

    # Gunakan konfigurasi default dari SDK.
    cfg = oss.config.load_default()
    # Tetapkan penyedia kredensial ke penyedia yang memperoleh kredensial dari variabel lingkungan.
    cfg.credentials_provider = credentials_provider
    # Tetapkan wilayah.
    cfg.region = args.region
    # Jika endpoint ditentukan, tetapkan endpoint dalam konfigurasi.
    if args.endpoint is not None:
        cfg.endpoint = args.endpoint

    # Buat klien OSS.
    client = oss.Client(cfg)

    # Panggil metode untuk menghapus kebijakan bucket.
    result = client.delete_bucket_policy(oss.DeleteBucketPolicyRequest(
            bucket=args.bucket,  # Tentukan nama bucket tempat operasi dilakukan.
    ))

    # Cetak kode status dan ID permintaan hasil permintaan.
    print(f'kode status: {result.status_code}, ID permintaan: {result.request_id}')

# Jalankan fungsi utama ketika skrip dijalankan sebagai program utama.
if __name__ == "__main__":
    main()

Referensi