全部产品
Search
文档中心

Object Storage Service:Kebijakan bucket (C# SDK V1)

更新时间:Nov 29, 2025

Kebijakan bucket merupakan kebijakan otorisasi untuk bucket di Object Storage Service (OSS). Anda dapat menggunakan kebijakan bucket untuk memberikan izin detail halus kepada pengguna anonim atau terotentikasi—seperti Akun Alibaba Cloud, pengguna Resource Access Management (RAM), dan peran RAM—untuk mengakses resource OSS tertentu. Misalnya, Anda dapat memberikan izin read-only kepada pengguna RAM dari akun Alibaba Cloud lain agar dapat mengakses resource OSS tertentu.

Catatan penggunaan

  • Sebelum mengonfigurasi kebijakan bucket, pastikan Anda memahami fitur ini. Untuk informasi selengkapnya, lihat Bucket policies.

  • Pada topik ini, digunakan titik akhir publik wilayah China (Hangzhou). Jika Anda ingin mengakses OSS dari layanan Alibaba Cloud lain dalam wilayah yang sama dengan OSS, gunakan titik akhir internal. Untuk informasi selengkapnya mengenai wilayah dan titik akhir OSS, lihat Regions and endpoints.

  • Pada topik ini, instans OSSClient dibuat menggunakan titik akhir OSS. Jika Anda ingin membuat instans OSSClient menggunakan nama domain kustom atau Security Token Service (STS), lihat Initialization.

  • Untuk menetapkan kebijakan bucket, Anda harus memiliki izin oss:PutBucketPolicy. Untuk mengambil kebijakan bucket, Anda harus memiliki izin oss:GetBucketPolicy. Untuk menghapus kebijakan bucket, Anda harus memiliki izin oss:DeleteBucketPolicy. Untuk informasi selengkapnya, lihat Attach a custom policy to a RAM user.

Tetapkan kebijakan bucket

Kode berikut menunjukkan cara menetapkan kebijakan bucket:

using Aliyun.OSS;
using Aliyun.OSS.Common;
// Tetapkan yourEndpoint ke titik akhir wilayah tempat bucket Anda berada. Misalnya, jika bucket Anda berada di wilayah China (Hangzhou), tetapkan titik akhir ke https://oss-cn-hangzhou.aliyuncs.com.
var endpoint = "yourEndpoint";
// Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode contoh, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah ditetapkan.
var accessKeyId = Environment.GetEnvironmentVariable("OSS_ACCESS_KEY_ID");
var accessKeySecret = Environment.GetEnvironmentVariable("OSS_ACCESS_KEY_SECRET");
// Tetapkan nama bucket.
var bucketName = "examplebucket";
// Tetapkan Region ke ID wilayah tempat bucket Anda berada. Misalnya, jika bucket Anda berada di wilayah China (Hangzhou), tetapkan Region ke cn-hangzhou.
const string region = "cn-hangzhou";

// Buat instans ClientConfiguration dan ubah parameter default sesuai kebutuhan.
var conf = new ClientConfiguration();

// Gunakan Signature V4.
conf.SignatureVersion = SignatureVersion.V4;

// Buat instans OssClient.
var client = new OssClient(endpoint, accessKeyId, accessKeySecret, conf);
client.SetRegion(region);
try
{
    // Pada contoh ini, pemilik bucket (UID 174649585760xxxx) menggunakan kebijakan bucket untuk memberikan izin kepada pengguna RAM tertentu (UID 20214760404935xxxx) agar dapat mencantumkan semua objek di bucket examplebucket.
    string policy = "{\"Version\":\"1\",\"Statement\":[{\"Action\":[\"oss:ListObjects\",\"oss:GetObject\"], \"Principal\": \"20214760404935xxxx\", \"Resource\": \"acs:oss:*:174649585760xxxx:examplebucket*\",\"Effect\": \"Allow\"}]}\n";
    var request = new SetBucketPolicyRequest(bucketName, policy);
    client.SetBucketPolicy(request);
    Console.WriteLine("Set bucket:{0} Policy succeeded ", bucketName);
}
catch (OssException ex)
{
    Console.WriteLine("Failed with error code: {0}; Error info: {1}. \nRequestID:{2}\tHostID:{3}",
        ex.ErrorCode, ex.Message, ex.RequestId, ex.HostId);
}
catch (Exception ex)
{
    Console.WriteLine("Failed with error info: {0}", ex.Message);
}

Ambil kebijakan bucket

Kode berikut menunjukkan cara mengambil kebijakan bucket:

using Aliyun.OSS;
using Aliyun.OSS.Common;
// Tetapkan yourEndpoint ke titik akhir wilayah tempat bucket Anda berada. Misalnya, jika bucket Anda berada di wilayah China (Hangzhou), tetapkan titik akhir ke https://oss-cn-hangzhou.aliyuncs.com.
var endpoint = "yourEndpoint";
// Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode contoh, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah ditetapkan.
var accessKeyId = Environment.GetEnvironmentVariable("OSS_ACCESS_KEY_ID");
var accessKeySecret = Environment.GetEnvironmentVariable("OSS_ACCESS_KEY_SECRET");
// Tetapkan nama bucket.
var bucketName = "examplebucket";
// Tetapkan Region ke ID wilayah tempat bucket Anda berada. Misalnya, jika bucket Anda berada di wilayah China (Hangzhou), tetapkan Region ke cn-hangzhou.
const string region = "cn-hangzhou";

// Buat instans ClientConfiguration dan ubah parameter default sesuai kebutuhan.
var conf = new ClientConfiguration();

// Gunakan Signature V4.
conf.SignatureVersion = SignatureVersion.V4;

// Buat instans OssClient.
var client = new OssClient(endpoint, accessKeyId, accessKeySecret, conf);
client.SetRegion(region);
try
{
    // Ambil konfigurasi kebijakan bucket.
    var result = client.GetBucketPolicy(bucketName);
    Console.WriteLine("Get bucket:{0} Policy succeeded ", bucketName);

    Console.WriteLine("Policy: {0}", result.Policy);
}
catch (OssException ex)
{
    Console.WriteLine("Failed with error code: {0}; Error info: {1}. \nRequestID:{2}\tHostID:{3}",
        ex.ErrorCode, ex.Message, ex.RequestId, ex.HostId);
}
catch (Exception ex)
{
    Console.WriteLine("Failed with error info: {0}", ex.Message);
}

Hapus kebijakan bucket

Kode berikut menunjukkan cara menghapus kebijakan bucket:

using Aliyun.OSS;
using Aliyun.OSS.Common;
// Tetapkan yourEndpoint ke titik akhir wilayah tempat bucket Anda berada. Misalnya, jika bucket Anda berada di wilayah China (Hangzhou), tetapkan titik akhir ke https://oss-cn-hangzhou.aliyuncs.com.
var endpoint = "yourEndpoint";
// Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode contoh, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah ditetapkan.
var accessKeyId = Environment.GetEnvironmentVariable("OSS_ACCESS_KEY_ID");
var accessKeySecret = Environment.GetEnvironmentVariable("OSS_ACCESS_KEY_SECRET");
// Tetapkan nama bucket.
var bucketName = "examplebucket";
// Tetapkan Region ke ID wilayah tempat bucket Anda berada. Misalnya, jika bucket Anda berada di wilayah China (Hangzhou), tetapkan Region ke cn-hangzhou.
const string region = "cn-hangzhou";

// Buat instans ClientConfiguration dan ubah parameter default sesuai kebutuhan.
var conf = new ClientConfiguration();

// Gunakan Signature V4.
conf.SignatureVersion = SignatureVersion.V4;

// Buat instans OssClient.
var client = new OssClient(endpoint, accessKeyId, accessKeySecret, conf);
client.SetRegion(region);
try
{
    // Hapus kebijakan bucket.
    client.DeleteBucketPolicy(bucketName);
    Console.WriteLine("Delete bucket:{0} Policy succeeded ", bucketName);
}
catch (OssException ex)
{
    Console.WriteLine("Failed with error code: {0}; Error info: {1}. \nRequestID:{2}\tHostID:{3}",
        ex.ErrorCode, ex.Message, ex.RequestId, ex.HostId);
}
catch (Exception ex)
{
    Console.WriteLine("Failed with error info: {0}", ex.Message);
}

Referensi

  • Untuk informasi selengkapnya mengenai operasi API untuk menetapkan kebijakan bucket, lihat PutBucketPolicy.

  • Untuk informasi selengkapnya mengenai operasi API untuk mengambil kebijakan bucket, lihat GetBucketPolicy.

  • Untuk informasi selengkapnya mengenai operasi API untuk menghapus kebijakan bucket, lihat DeleteBucketPolicy.