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 izinoss:GetBucketPolicy. Untuk menghapus kebijakan bucket, Anda harus memiliki izinoss: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.
Untuk informasi lebih lanjut tentang kebijakan bucket, lihat Kebijakan Bucket.
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_lokalTabel 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
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.
CatatanContoh 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 UID20214760404935****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/2020danhangzhou/2015dari 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" }
Tambahkan kebijakan bucket ke bucket examplebucket.
ossutil bucket-policy --method put oss://examplebucket file_json_lokalJika 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_lokalParameter
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_fileJika 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://namabucketContoh
Jalankan perintah berikut untuk menghapus semua kebijakan bucket dari bucket bernama examplebucket:
ossutil bucket-policy --method delete oss://examplebucketJika 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 yourAccessKeySecretUntuk informasi lebih lanjut tentang opsi umum, lihat Opsi Umum.