Kebijakan bucket adalah kebijakan otorisasi untuk bucket Object Storage Service (OSS). Anda dapat menggunakan kebijakan bucket untuk memberikan atau membatasi akses ke sumber daya OSS tertentu bagi pengguna terautentikasi—seperti Akun Alibaba Cloud, pengguna Resource Access Management (RAM), dan peran RAM—atau bagi pengguna anonim. Sebagai contoh, Anda dapat memberikan izin read-only kepada pengguna RAM dari akun Alibaba Cloud lain untuk mengakses sumber daya OSS tertentu.
Precautions
Sebelum mengonfigurasi kebijakan bucket, pastikan Anda memahami cara kerja fitur ini. Untuk informasi selengkapnya, lihat Bucket policy.
Untuk menetapkan kebijakan bucket, Anda harus memiliki izin
oss:PutBucketPolicy. Untuk mengambil kebijakan bucket, Anda harus memiliki izinoss:GetBucketPolicy. Untuk menghapus kebijakan bucket, Anda harus memiliki izinoss:DeleteBucketPolicy. Untuk informasi selengkapnya tentang cara memberikan izin, lihat Grant custom access policies to a RAM user.
Set a bucket policy
Kode berikut menunjukkan cara menetapkan kebijakan bucket:
const OSS = require('ali-oss')
const client = new OSS({
// Setel region ke wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), setel region ke oss-cn-hangzhou.
region: 'yourregion',
// Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode contoh ini, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah disetel.
accessKeyId: process.env.OSS_ACCESS_KEY_ID,
accessKeySecret: process.env.OSS_ACCESS_KEY_SECRET,
authorizationV4: true,
// Tentukan nama bucket. Misalnya, examplebucket.
bucket: 'examplebucket'
});
// Dalam contoh ini, pemilik resource (pemilik bucket dengan UID 174649585760xxxx) menggunakan kebijakan bucket untuk memberikan izin kepada pengguna RAM (dengan UID 20214760404935xxxx) guna mencantumkan dan mengambil objek di bucket examplebucket.
const policy = {
Version: '1',
Statement: [
{
Action: ['oss:ListObjects', 'oss:GetObject'],
Effect: 'Allow',
Principal: ['20214760404935xxxx'],
Resource: ['acs:oss:*:174649585760xxxx:examplebucket']
}
]
};
async function putPolicy() {
const result = await client.putBucketPolicy('examplebucket', policy);
console.log(result)
}
putPolicy()Get a bucket policy
Kode berikut menunjukkan cara mengambil kebijakan bucket:
const OSS = require('ali-oss')
const client = new OSS({
// Setel region ke wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), setel region ke oss-cn-hangzhou.
region: 'yourregion',
// Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode contoh ini, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah disetel.
accessKeyId: process.env.OSS_ACCESS_KEY_ID,
accessKeySecret: process.env.OSS_ACCESS_KEY_SECRET,
authorizationV4: true,
// Tentukan nama bucket.
bucket: 'yourbucketname'
});
// Ambil konfigurasi kebijakan bucket.
async function getPolicy() {
const result = await client.getBucketPolicy('yourbucketname');
console.log(result.policy)
}
getPolicy()Delete a bucket policy
Kode berikut menunjukkan cara menghapus kebijakan bucket:
const OSS = require('ali-oss')
const client = new OSS({
// Setel region ke wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), setel region ke oss-cn-hangzhou.
region: 'yourregion',
// Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode contoh ini, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah disetel.
accessKeyId: process.env.OSS_ACCESS_KEY_ID,
accessKeySecret: process.env.OSS_ACCESS_KEY_SECRET,
authorizationV4: true,
// Tentukan nama bucket.
bucket: 'yourbucketname'
});
// Hapus kebijakan bucket.
async function deletePolicy() {
const result = await client.deleteBucketPolicy('yourbucketname');
console.log(result)
}
deletePolicy()References
Untuk kode contoh lengkap mengenai kebijakan bucket, lihat GitHub.
Untuk informasi mengenai operasi API untuk menetapkan kebijakan bucket, lihat PutBucketPolicy.
Untuk informasi mengenai operasi API untuk mengambil kebijakan bucket, lihat GetBucketPolicy.
Untuk informasi mengenai operasi API untuk menghapus kebijakan bucket, lihat DeleteBucketPolicy.