Kebijakan bucket adalah kebijakan akses yang dilampirkan pada sebuah bucket. Anda dapat menggunakan kebijakan bucket untuk memberikan akses kepada akun Alibaba Cloud lain, pengguna RAM, atau pengguna anonim. Kebijakan bucket mendukung otorisasi lintas akun, kontrol akses anonim, serta pembatasan akses berdasarkan alamat IP atau VPC.
Cara kerja
Kebijakan bucket menggunakan model otorisasi berbasis resource. Kebijakan tersebut dilampirkan langsung pada bucket dan menentukan principal—seperti pengguna, akun, atau role—yang berwenang melakukan aksi tertentu terhadap resource tertentu dalam kondisi spesifik.
Saat pengguna mengirim permintaan akses, OSS mengevaluasi semua kebijakan yang relevan, termasuk kebijakan bucket dan kebijakan RAM, lalu menerapkan aturan explicit deny takes precedence. Pernyataan Deny eksplisit akan segera memblokir permintaan tersebut, mengabaikan semua pernyataan Allow. Jika tidak ada pernyataan Deny maupun Allow yang berlaku, permintaan ditolak secara default.
Kebijakan bucket berlaku bagi pemilik bucket sesuai aturan khusus berikut:
Jika Principal diatur ke karakter wildcard (*) dan tidak ada Condition yang ditentukan, kebijakan tersebut hanya berlaku untuk pengguna selain pemilik bucket.
Jika Principal diatur ke karakter wildcard (*) dan Condition ditentukan, kebijakan tersebut berlaku untuk semua pengguna, termasuk pemilik bucket.
Jika Anda mengonfigurasi beberapa pernyataan kebijakan bucket untuk pengguna yang sama, izin efektif pengguna tersebut merupakan gabungan (union) dari semua pernyataan tersebut, dengan mengikuti aturan deny takes precedence.
Jika Anda mengonfigurasi kebijakan bucket yang mencakup
acs:SourceIp, Anda juga harus menyertakanacs:SourceVpc.
Konfigurasikan kebijakan bucket
OSS mendukung dua metode konfigurasi: grafis dan berbasis sintaks. Anda dapat memilih metode yang paling sesuai dengan skenario Anda.
Metode grafis: Menyediakan antarmuka berbasis formulir yang intuitif untuk skenario otorisasi umum dan menyederhanakan konfigurasi kebijakan.
Metode sintaks: Menggunakan JSON untuk menulis kebijakan lengkap. Metode ini mendukung semua fitur lanjutan dan kombinasi kondisi kompleks, serta menawarkan fleksibilitas maksimal.
Metode grafis
Buka daftar bucket dan klik bucket target.
Pada panel navigasi di sebelah kiri, klik .
Klik Add in GUI, klik Authorize, lalu konfigurasikan pengaturannya.
Item Konfigurasi
Deskripsi
Applied To
Pilih apakah akan memberikan izin pada Whole Bucket atau pada Specific Resources.
Resource Paths
Jika Anda memilih Applied To = Whole Bucket, maka Resource Paths adalah
bucket-name/*.Jika Anda mengatur Applied To ke Specific Resources, masukkan folder atau Object individual yang ingin diberi otorisasi. Anda dapat menambahkan beberapa catatan.
Authorized User
Tentukan pengguna atau akun yang akan diberi otorisasi.
All Accounts (*): Memberikan otorisasi kepada siapa saja, termasuk pengguna anonim.
RAM User: Pilih pengguna RAM dari akun Alibaba Cloud saat ini.
Anda harus masuk sebagai akun Alibaba Cloud atau sebagai pengguna RAM yang memiliki izin manajemen bucket sekaligus izin
ListUsersdi konsol RAM. Jika tidak, Anda tidak dapat melihat daftar pengguna RAM untuk akun saat ini.Other Accounts: Masukkan UID akun Alibaba Cloud lain atau pengguna RAM, atau ARN role temporary dalam format
arn:sts(misalnya,arn:sts::1798************:assumed-role/role-name/session-name). Anda dapat memberikan otorisasi kepada beberapa pengguna—satu per baris.Jika Anda memberikan otorisasi kepada role RAM, role tersebut tidak dapat mengakses bucket melalui konsol OSS. Gunakan ossutil, SDK, atau API sebagai gantinya.
Authorized Operation
Basic Settings: Pilih dari kombinasi izin umum: Read-Only (excluding ListObject), Read-Only (including ListObject), Read/Write, Full Access, atau Deny Access.
CatatanUntuk memastikan pengguna layanan OSS-HDFS dapat mengakses direktori
.dlsdata/dan objek-objek di dalamnya, jangan pilih Deny Access saat mengonfigurasi kebijakan bucket untuk bucket yang telah mengaktifkan OSS-HDFS.Advanced Settings: Sesuaikan Effect (Allow atau Reject) dan Actions.
Condition (opsional)
Tetapkan kondisi di mana kebijakan berlaku.
Access Method: Pilih HTTPS atau HTTP. Kebijakan hanya berlaku jika permintaan menggunakan metode yang dipilih.
IP =: Masukkan daftar alamat IP atau Blok CIDR yang diizinkan. Kebijakan hanya berlaku jika permintaan berasal dari salah satu IP tersebut.
IP ≠: Masukkan daftar alamat IP atau Blok CIDR yang diblokir. Kebijakan hanya berlaku jika permintaan berasal dari luar daftar tersebut.
VPC =: Pilih VPC dari akun saat ini atau masukkan ID VPC dari akun lain. Kebijakan hanya berlaku jika permintaan berasal dari VPC yang ditentukan.
VPC ≠: Pilih VPC dari akun saat ini atau masukkan ID VPC dari akun lain. Kebijakan hanya berlaku jika permintaan tidak berasal dari VPC yang ditentukan.
Jika Anda menentukan beberapa kondisi, semua kondisi harus terpenuhi (logika AND) agar kebijakan berlaku.
Setelah mengonfirmasi pengaturan, klik OK untuk menerapkan kebijakan bucket.
Metode sintaks
Buka daftar bucket dan klik bucket target.
Pada panel navigasi di sebelah kiri, klik .
Klik Add by Syntax, klik Edit, lalu masukkan kebijakan berformat JSON di editor.
Contoh kebijakan: Tolak semua operasi pada
example-bucketuntuk pengguna20214760404935xxxxjika permintaan tidak berasal dari VPCvpc-t4nlw426y44rd3iq4xxxx.{ "Version": "1", "Statement": [ { "Effect": "Deny", "Action": "oss:*", "Principal": [ "20214760404935xxxx" ], "Resource": [ "acs:oss:*:174649585760xxxx:example-bucket", "acs:oss:*:174649585760xxxx:example-bucket/*" ], "Condition": { "StringNotEquals": { "acs:SourceVpc": "vpc-t4nlw426y44rd3iq4xxxx" } } } ] }Kebijakan lengkap terdiri dari Version dan Statement.
Version: Versi kebijakan. Nilainya tetap
1dan tidak dapat diubah.Statement: Badan utama kebijakan, yang berisi satu atau beberapa aturan allow atau deny. Setiap pernyataan mencakup elemen Effect, Action, Principal, Resource, dan Condition.
Elemen kebijakan
Deskripsi
Makna dalam contoh kebijakan otorisasi
Effect
Efek kebijakan. Nilai yang valid:
AllowatauDeny.Menolak permintaan.
Action
Operasi pada resource. Mendukung karakter wildcard
*.Menolak semua operasi OSS (
oss:*).Principal
Entitas yang menjadi sasaran kebijakan, seperti pengguna, akun, atau role.
Daftar kosong (
Principal:[]) berperilaku identik denganPrincipal:["*"].Kebijakan hanya berlaku untuk pengguna RAM
20214760404935xxxx.Resource
Resource yang menjadi sasaran kebijakan.
Kebijakan berlaku untuk
example-bucketdan semua objek di dalamnya.Condition
Kondisi agar kebijakan berlaku.
Jika Anda menentukan beberapa kondisi, kebijakan hanya berlaku jika semua kondisi terpenuhi (logika AND).
Aturan Deny hanya berlaku jika permintaan berasal dari VPC selain
vpc-t4nlw426y44rd3iq4xxxx.Untuk daftar lengkap elemen kebijakan, lihat Sintaks dan elemen kebijakan.
Setelah mengonfirmasi kebijakan, klik Save dan ikuti petunjuk di layar.
Konfigurasikan kebijakan bucket untuk vector bucket
Vector bucket hanya mendukung metode sintaks untuk konfigurasi kebijakan bucket.
Buka daftar vector bucket dan klik vector bucket target.
Pada panel navigasi di sebelah kiri, klik .
Klik Edit dan masukkan kebijakan berformat JSON di editor.
Contoh kebijakan: Contoh ini memberikan akses baca dan tulis ke data vektor dalam tabel indeks
indextestdi dalam bucketvector-bucket-exampleuntuk pengguna20816353761158****.{ "Version": "1", "Statement": [{ "Effect": "Allow", "Action": [ "oss:PutVectors", "oss:GetVectors" ], "Principal": [ "20816353761158****" ], "Resource": [ "acs:ossvector:*:*:vector-bucket-example/indextest" ] }] }Kebijakan lengkap terdiri dari Version dan Statement.
Version: Versi kebijakan. Nilainya tetap
1dan tidak dapat diubah.Statement: Badan utama kebijakan, yang berisi satu atau beberapa aturan allow atau deny. Setiap pernyataan mencakup elemen Effect, Action, Principal, Resource, dan Condition.
Elemen kebijakan
Deskripsi
Penjelasan contoh kebijakan otorisasi
Effect
Efek kebijakan. Nilai yang valid adalah
AllowdanDeny.Mengizinkan permintaan.
Action
Operasi pada resource. Mendukung karakter wildcard
*.Membaca dan menulis data vektor.
Principal
Entitas yang menjadi sasaran kebijakan, seperti pengguna, akun, atau role.
Daftar kosong (
Principal:[]) berperilaku identik denganPrincipal:["*"].Kebijakan hanya berlaku untuk pengguna RAM
20816353761158****.Resource
Resource yang menjadi sasaran kebijakan.
Kebijakan berlaku untuk tabel indeks
indextestdi dalam bucketvector-bucket-example.Condition
Kondisi agar kebijakan berlaku.
Jika Anda menentukan beberapa kondisi, kebijakan hanya berlaku jika semua kondisi terpenuhi (logika AND).
Tidak ada.
Untuk daftar lengkap elemen kebijakan, lihat Sintaks dan elemen kebijakan.
Setelah mengonfirmasi kebijakan, klik Save dan ikuti petunjuk di layar.
Skenario otorisasi umum
Skenario berikut menunjukkan penggunaan nyata kebijakan bucket, mencakup pemberian izin, pembatasan akses, dan kontrol keamanan. Setiap skenario menyertakan contoh kebijakan lengkap yang dapat Anda sesuaikan dengan kebutuhan.
Skenario 1: Berikan izin baca/tulis kepada pengguna RAM tertentu
Anda dapat memberikan izin baca/tulis kepada anggota tim atau mitra menggunakan kebijakan bucket. Contoh ini memberikan akses baca/tulis ke bucket example-bucket untuk pengguna RAM dengan UID 27737962156157xxxx dan 20214760404935xxxx.
Kebijakan ini tidak memberikan izin kepada pengguna RAM untuk mencantumkan bucket. Akibatnya, pengguna tidak dapat melihat semua bucket di halaman daftar bucket atau mengklik bucket target. Sebagai gantinya, mereka dapat menambahkan dan mengakses bucket dengan mengklik di panel navigasi sebelah kiri.
{
"Version":"1",
"Statement":[
{
"Effect":"Allow",
"Action":[
"oss:GetObject",
"oss:PutObject",
"oss:GetObjectAcl",
"oss:PutObjectAcl",
"oss:AbortMultipartUpload",
"oss:ListParts",
"oss:RestoreObject",
"oss:GetVodPlaylist",
"oss:PostVodPlaylist",
"oss:PublishRtmpStream",
"oss:ListObjectVersions",
"oss:GetObjectVersion",
"oss:GetObjectVersionAcl",
"oss:RestoreObjectVersion"
],
"Principal":[
"27737962156157xxxx",
"20214760404935xxxx"
],
"Resource":[
"acs:oss:*:174649585760xxxx:example-bucket/*"
]
},
{
"Effect":"Allow",
"Action":[
"oss:ListObjects"
],
"Principal":[
"27737962156157xxxx",
"20214760404935xxxx"
],
"Resource":[
"acs:oss:*:174649585760xxxx:example-bucket"
],
"Condition":{
"StringLike":{
"oss:Prefix":[
"*"
]
}
}
}
]
}Skenario 2: Berikan izin read-only kepada pengguna RAM tertentu untuk direktori tertentu
Anda dapat melindungi file proyek dari modifikasi sekaligus mengizinkan pengguna berwenang membacanya. Contoh ini memberikan akses read-only ke bucket example-bucket untuk pengguna RAM 20214760404935xxxx. Akses dibatasi hanya pada direktori dengan awalan hangzhou/2020 dan shanghai/2015.
Kebijakan ini tidak memberikan izin kepada pengguna RAM untuk mencantumkan bucket. Akibatnya, pengguna tidak dapat melihat semua bucket di halaman daftar bucket atau mengklik bucket target. Sebagai gantinya, mereka dapat menambahkan dan mengakses bucket dengan mengklik di panel navigasi sebelah kiri.
{
"Version":"1",
"Statement":[
{
"Action":[
"oss:GetObject",
"oss:GetObjectAcl",
"oss:GetObjectVersion",
"oss:GetObjectVersionAcl"
],
"Effect":"Allow",
"Principal":[
"20214760404935xxxx"
],
"Resource":[
"acs:oss:*:174649585760xxxx:example-bucket/hangzhou/2020/*",
"acs:oss:*:174649585760xxxx:example-bucket/shanghai/2015/*"
]
},
{
"Action":[
"oss:ListObjects",
"oss:ListObjectVersions"
],
"Condition":{
"StringLike":{
"oss:Prefix":[
"hangzhou/2020/*",
"shanghai/2015/*"
]
}
},
"Effect":"Allow",
"Principal":[
"20214760404935xxxx"
],
"Resource":[
"acs:oss:*:174649585760xxxx:example-bucket"
]
}
]
}Skenario 3: Berikan izin untuk mencantumkan isi bucket kepada pengguna RAM tertentu
Anda dapat mengizinkan anggota tim atau mitra untuk melihat semua informasi bucket dan mencantumkan isinya. Contoh ini memberikan izin kepada pengguna RAM untuk melihat semua informasi bucket dan mencantumkan isi bucket example-bucket.
Kebijakan ini tidak memberikan izin kepada pengguna RAM untuk mencantumkan bucket. Akibatnya, pengguna tidak dapat melihat semua bucket di halaman daftar bucket atau mengklik bucket target. Sebagai gantinya, mereka dapat menambahkan dan mengakses bucket dengan mengklik di panel navigasi sebelah kiri.
{
"Version":"1",
"Statement":[
{
"Action":[
"oss:Get*",
"oss:ListObjects",
"oss:ListObjectVersions"
],
"Effect":"Allow",
"Principal":[
"20214760404935xxxx"
],
"Resource":[
"acs:oss:*:174649585760xxxx:example-bucket"
]
}
]
}Skenario 4: Berikan akses read-only kepada role RAM tertentu
Anda dapat mengizinkan pengguna RAM atau aplikasi untuk mengakses objek bucket secara sementara. Untuk melakukannya, buat role RAM dan tetapkan izin. Pengguna atau aplikasi kemudian dapat mengasumsikan role tersebut untuk mendapatkan kredensial sementara guna membaca objek. Contoh ini memberikan akses baca ke semua objek dalam bucket example-bucket untuk semua sesi satu role RAM dan untuk sesi tertentu role RAM lainnya.
Saat memberikan otorisasi kepada role RAM, Principal harus mengikuti format berikut: arn:sts::<uid>:assumed-role/<role-name>/<session-name>. Nilai untuk <role-name> dan <session-name> bersifat case-sensitive.
{
"Version": "1",
"Statement": [
{
"Action": [
"oss:GetObject"
],
"Effect": "Allow",
"Principal": [
"arn:sts::10323xxxxx72056:assumed-role/role-name/session-name",
"arn:sts::10323xxxxx72056:assumed-role/role2-name/*"
],
"Resource": [
"acs:oss:*:10323xxxxx72056:example-bucket/*"
]
}
]
}Skenario 5: Berikan izin list kepada semua pengguna
Jika bucket digunakan untuk berbagi resource publik, Anda mungkin ingin mengizinkan semua pengunjung untuk mencantumkan nama file tanpa mengakses konten file tersebut. Untuk melakukannya, atur Principal ke tanda bintang wildcard (*) dan berikan izin untuk mencantumkan semua file. Contoh berikut memberikan izin kepada semua pengunjung untuk mencantumkan semua file dalam bucket example-bucket.
{
"Version":"1",
"Statement":[
{
"Action":[
"oss:ListObjects",
"oss:ListObjectVersions"
],
"Effect":"Allow",
"Principal":[
"*"
],
"Resource":[
"acs:oss:*:174649585760xxxx:example-bucket"
]
}
]
}Skenario 6: Dibatasi dari akses jaringan publik
Anda dapat memblokir semua akses non-VPC ke bucket. Untuk melakukannya, gunakan kondisi acs:SourceVpc untuk membuat pernyataan Deny yang menolak permintaan yang tidak berasal dari VPC. Permintaan Internet gagal karena tidak memiliki awalan VPC. Contoh ini menolak semua akses ke bucket example-bucket kecuali akses dari jaringan VPC.
{
"Version": "1",
"Statement": [
{
"Effect": "Deny",
"Action": "oss:*",
"Principal": [
"*"
],
"Resource": [
"acs:oss:*:174649585760xxxx:example-bucket/*",
"acs:oss:*:174649585760xxxx:example-bucket"
],
"Condition": {
"StringNotLike": {
"acs:SourceVpc": [
"vpc-*"
]
}
}
}
]
}Skenario 7: Izinkan akses hanya dari VPC tertentu
Anda dapat membatasi akses bucket hanya ke satu VPC. Untuk melakukannya, gunakan kondisi acs:SourceVpc untuk membuat pernyataan Deny yang memblokir permintaan dari VPC lain atau Internet. Permintaan dari VPC lain atau Internet gagal karena tidak cocok dengan ID VPC yang ditentukan. Contoh ini menolak akses baca ke objek dalam bucket example-bucket untuk semua pengguna kecuali yang berada di VPC t4nlw426y44rd3iq4xxxx.
Karena Principal dalam pernyataan kebijakan deny berikut adalah tanda bintang wildcard (
*) dan pernyataan tersebut mencakup Condition, kebijakan deny ini berlaku untuk semua pengguna, termasuk pemilik bucket.Pernyataan Deny ini hanya membatasi akses. Tidak memberikan izin apa pun. Jika principal tidak memiliki izin, Anda harus menambahkan pernyataan Allow untuk memberikan akses.
{
"Version":"1",
"Statement":[
{
"Effect":"Deny",
"Action":[
"oss:GetObject"
],
"Principal":[
"*"
],
"Resource":[
"acs:oss:*:174649585760xxxx:example-bucket/*"
],
"Condition":{
"StringNotEquals":{
"acs:SourceVpc":[
"vpc-t4nlw426y44rd3iq4xxxx"
]
}
}
}
]
}Skenario 8: Izinkan akses hanya dari alamat IP publik tertentu
Anda dapat membatasi akses bucket hanya ke satu alamat IP publik. Untuk melakukannya, gunakan kondisi acs:SourceIp untuk membuat pernyataan Deny yang memblokir permintaan dari alamat IP lainnya. Permintaan dari alamat IP lainnya gagal karena tidak cocok dengan alamat IP yang ditentukan. Contoh ini menolak akses baca ke bucket example-bucket untuk semua pengguna kecuali yang memiliki alamat IP 203.0.113.5.
Karena Principal dalam pernyataan kebijakan deny berikut adalah tanda bintang wildcard (
*) dan pernyataan tersebut mencakup Condition, kebijakan deny ini berlaku untuk semua pengguna, termasuk pemilik bucket.Pernyataan Deny ini hanya membatasi akses. Tidak memberikan izin apa pun. Jika principal tidak memiliki izin, Anda harus menambahkan pernyataan Allow untuk memberikan akses.
{
"Version": "1",
"Statement": [{
"Effect": "Deny",
"Action": [
"oss:GetObject"
],
"Principal": [
"*"
],
"Resource": [
"acs:oss:*:174649585760xxxx:example-bucket/*"
],
"Condition": {
"NotIpAddress": {
"acs:SourceIp": [
"203.0.113.5"
]
},
"StringNotLike": {
"acs:SourceVpc": [
"vpc-*"
]
}
}
},
{
"Effect": "Deny",
"Action": [
"oss:GetObject"
],
"Principal": [
"*"
],
"Resource": [
"acs:oss:*:174649585760xxxx:example-bucket/*"
],
"Condition": {
"StringLike": {
"acs:SourceVpc": [
"vpc-*"
]
}
}
}
]
}Skenario 9: Izinkan akses hanya dari rentang IP tertentu dalam VPC tertentu
Anda dapat membatasi akses bucket hanya ke rentang IP tertentu dalam VPC tertentu. Untuk melakukannya, buat dua pernyataan Deny:
Gunakan kunci kondisi
acs:SourceVpcuntuk membuat pernyataan kebijakan deny yang memblokir permintaan dari VPC lain atau Internet. Permintaan dari alamat IP publik atau VPC lain tidak memenuhi kondisi IP yang ditentukan sehingga memicu aturan deny.Gunakan kondisi
acs:SourceIpdanacs:SourceVpcuntuk memblokir permintaan dari luar rentang IP yang ditentukan dalam VPC tersebut.
Penolakan dipicu jika salah satu pernyataan Deny terpenuhi. Contoh ini menolak akses baca ke objek dalam bucket example-bucket untuk semua pengguna kecuali yang berada di VPC t4nlw426y44rd3iq4xxxx dengan alamat IP dalam rentang 192.168.0.0/16.
Karena Principal dalam pernyataan kebijakan deny berikut adalah tanda bintang wildcard (
*) dan pernyataan tersebut mencakup Condition, kebijakan deny ini berlaku untuk semua pengguna, termasuk pemilik bucket.Pernyataan Deny ini hanya membatasi akses. Tidak memberikan izin apa pun. Jika principal tidak memiliki izin, Anda harus menambahkan pernyataan Allow untuk memberikan akses.
{
"Version":"1",
"Statement":[
{
"Effect":"Deny",
"Action":[
"oss:GetObject"
],
"Principal":[
"*"
],
"Resource":[
"acs:oss:*:174649585760xxxx:example-bucket/*"
],
"Condition":{
"StringNotEquals":{
"acs:SourceVpc":[
"vpc-t4nlw426y44rd3iq4xxxx"
]
}
}
},
{
"Effect":"Deny",
"Action":[
"oss:GetObject"
],
"Principal":[
"*"
],
"Resource":[
"acs:oss:*:174649585760xxxx:example-bucket/*"
],
"Condition":{
"StringEquals":{
"acs:SourceVpc":[
"vpc-t4nlw426y44rd3iq4xxxx"
]
},
"NotIpAddress":{
"acs:SourceIp":[
"192.168.0.0/16"
]
}
}
}
]
}Skenario 10: Izinkan akses hanya dari alamat IP publik tertentu atau VPC tertentu
Anda dapat membatasi akses bucket hanya ke alamat IP publik tertentu atau VPC tertentu. Untuk melakukannya, buat dua pernyataan Deny:
Gunakan kondisi
acs:SourceIpuntuk memblokir permintaan dari IP publik lainnya, dan gunakanStringNotLikedenganacs:SourceVpcuntuk mengecualikan VPC yang ditentukan.Gunakan kondisi
acs:SourceVpcuntuk memblokir permintaan dari VPC lainnya, dan gunakanStringLikedenganacs:SourceVpcuntuk mengecualikan alamat IP publik yang ditentukan. Hal ini menghindari penolakan salah akibat ID VPC yang tidak tersedia.
Penolakan dipicu jika salah satu pernyataan Deny terpenuhi. Contoh ini menolak akses baca ke objek dalam bucket example-bucket untuk semua pengguna kecuali yang memiliki alamat IP 203.0.113.5 atau ID VPC t4nlw426y44rd3iq4xxxx.
Karena Principal dalam pernyataan kebijakan deny berikut adalah tanda bintang wildcard (
*) dan pernyataan tersebut mencakup Condition, kebijakan deny ini berlaku untuk semua pengguna, termasuk pemilik bucket.Pernyataan Deny ini hanya membatasi akses. Tidak memberikan izin apa pun. Jika principal tidak memiliki izin, Anda harus menambahkan pernyataan Allow untuk memberikan akses.
{
"Version":"1",
"Statement":[
{
"Effect":"Deny",
"Action":[
"oss:GetObject"
],
"Principal":[
"*"
],
"Resource":[
"acs:oss:*:174649585760xxxx:example-bucket/*"
],
"Condition":{
"StringNotLike":{
"acs:SourceVpc":[
"vpc-*"
]
},
"NotIpAddress":{
"acs:SourceIp":[
"203.0.113.5"
]
}
}
},
{
"Effect":"Deny",
"Action":[
"oss:GetObject"
],
"Principal":[
"*"
],
"Resource":[
"acs:oss:*:174649585760xxxx:example-bucket/*"
],
"Condition":{
"StringLike":{
"acs:SourceVpc":[
"vpc-*"
]
},
"StringNotEquals":{
"acs:SourceVpc":[
"vpc-t4nlw426y44rd3iq4xxxx"
]
}
}
}
]
}Skenario 11: Konfigurasikan Daftar hitam IP
Anda dapat memblokir alamat IP atau rentang alamat IP tertentu dari mengakses bucket dan objeknya. Untuk melakukannya, gunakan kebijakan Deny dalam kebijakan bucket untuk menolak semua permintaan dari alamat IP yang ditentukan.
Karena Principal dalam pernyataan kebijakan deny berikut adalah tanda bintang wildcard (
*) dan pernyataan tersebut mencakup Condition, kebijakan deny ini berlaku untuk semua pengguna, termasuk pemilik bucket.Anda dapat menentukan beberapa alamat IP atau rentang alamat IP, dipisahkan dengan koma.
{
"Version": "1",
"Statement": [{
"Effect": "Deny",
"Action": "oss:*",
"Principal": [
"*"
],
"Resource": [
"acs:oss:*:174649585760xxxx:example-bucket/*",
"acs:oss:*:174649585760xxxx:example-bucket"
],
"Condition": {
"IpAddress": {
"acs:SourceIp": [
"101.***.***.100"
]
},
"StringLike": {
"acs:SourceVpc": [
"*"
]
}
}
}]
}Skenario 12: Wajibkan kredensial sementara untuk panggilan API
Anda dapat mewajibkan kredensial sementara untuk akses API. Untuk melakukannya, gunakan kondisi acs:AccessId untuk membuat pernyataan Deny yang memblokir kredensial jangka panjang, seperti yang berasal dari akun Alibaba Cloud atau pengguna RAM. Permintaan yang menggunakan kredensial jangka panjang akan memicu aturan Deny. Contoh ini menolak semua operasi Get dan List pada bucket example-bucket untuk semua pengguna kecuali yang menggunakan kredensial sementara yang diawali dengan `TMP.` atau `STS.`.
{
"Version": "1",
"Statement": [
{
"Effect": "Deny",
"Action":[
"oss:Get*",
"oss:ListObjects",
"oss:ListObjectVersions"
],
"Principal":[
"*"
],
"Resource":[
"acs:oss:*:174649585760xxxx:example-bucket/*"
],
"Condition": {
"StringNotLike": {
"acs:AccessId": [
"TMP.*",
"STS.*"
]
}
}
}
]
}Skenario 13: Cegah pengaturan ACL publik untuk bucket dan objek
Anda dapat mencegah pengaturan Access Control List (ACL) public-read atau public-read-write untuk bucket dan objek. Untuk melakukannya, buat dua pernyataan Deny:
Gunakan kondisi
oss:x-oss-acluntuk memblokir pengaturan ACL bucket selainprivate. Upaya mengatur ACL ke public-read atau public-read-write akan memicu aturan Deny.Gunakan kondisi
oss:x-oss-object-acluntuk memblokir pengaturan ACL objek selainprivateataudefault.
Penolakan dipicu jika salah satu pernyataan Deny terpenuhi. Contoh ini menolak pengaturan ACL publik untuk bucket example-bucket.
{
"Version": "1",
"Statement": [
{
"Effect": "Deny",
"Action": [
"oss:PutBucketAcl"
],
"Principal": [
"*"
],
"Resource": [
"acs:oss:*:*:example-bucket"
],
"Condition": {
"StringNotEquals": {
"oss:x-oss-acl": "private"
}
}
},
{
"Effect": "Deny",
"Action": [
"oss:PutObjectAcl"
],
"Principal": [
"*"
],
"Resource": [
"acs:oss:*:*:example-bucket/*"
],
"Condition": {
"StringNotEquals": {
"oss:x-oss-object-acl": [
"private",
"default"
]
}
}
}
]
}Integrasi pengembangan dan tool
Selain mengonfigurasi kebijakan di konsol, Anda dapat mengelola kebijakan bucket menggunakan tool grafis, tool baris perintah, SDK, atau panggilan API langsung.
Gunakan ossbrowser
Anda dapat melakukan operasi kebijakan tingkat bucket dengan antarmuka visual yang mirip dengan konsol. Instal dan masuk ke ossbrowser, lalu ikuti petunjuk di layar untuk mengonfigurasi kebijakan bucket.
Gunakan ossutil
Anda dapat memanggil operasi put-bucket-policy untuk mengonfigurasi kebijakan.
CatatanUntuk mengonfigurasi kebijakan untuk vector bucket, gunakan perintah
ossutil vectors-api put-bucket-policy.Gunakan SDK
Anda dapat mengonfigurasi kebijakan menggunakan SDK untuk Java, Python, Go, Node.js, dan bahasa lainnya. Untuk informasi lebih lanjut tentang opsi SDK, lihat Referensi SDK.
Panggil API secara langsung
Anda dapat memanggil operasi PutBucketPolicy untuk mengonfigurasi kebijakan bucket.
Kuota dan batasan
Ukuran kebijakan: Sebuah bucket dapat memiliki beberapa kebijakan bucket. Ukuran total semua kebijakan tidak boleh melebihi 16 KB.
Panjang field: Setiap field dalam kebijakan bucket tidak boleh melebihi 4095 byte.