Untuk alasan keamanan, semua sumber daya Object Storage Service (OSS) (bucket dan objek) secara default bersifat pribadi. Hanya pemilik dan pengguna yang diizinkan yang memiliki akses ke sumber daya tersebut. OSS memungkinkan Anda menggunakan berbagai kebijakan kontrol akses untuk memberikan izin tertentu kepada pengguna lain guna mengakses atau menggunakan sumber daya OSS Anda. Permintaan hanya diizinkan jika semua kebijakan kontrol akses yang berlaku untuk permintaan tersebut mengizinkan permintaan itu.
Jenis-jenis Permintaan
Permintaan dibagi menjadi permintaan non-anonim dan anonim.
Permintaan Non-anonim
Permintaan non-anonim mencakup informasi tanda tangan dalam header permintaan atau URL permintaan untuk otentikasi.
Permintaan Anonim
Permintaan anonim tidak mencakup informasi tanda tangan dalam header permintaan atau URL permintaan.
Otorisasi Permintaan Non-anonim
Deskripsi Otorisasi
Ketika OSS menerima permintaan non-anonim, OSS menentukan apakah akan mengizinkan atau menolak permintaan berdasarkan hasil otentikasi, kebijakan sesi berbasis peran, kebijakan berbasis identitas (kebijakan RAM), kebijakan bucket, daftar kontrol akses objek (ACL), dan ACL bucket.
Gambar di atas menunjukkan hasil otorisasi yang mungkin:
Mengizinkan: Mengizinkan permintaan berdasarkan kebijakan yang berlaku.
Tolak Eksplisit: Menolak permintaan secara eksplisit berdasarkan kebijakan yang berlaku.
Tolak Implisit: Menolak permintaan secara implisit jika OSS tidak mendeteksi adanya kebijakan yang berlaku atau tidak ada hit Allow atau Deny.
Proses Otorisasi
OSS melakukan langkah-langkah berikut untuk mengotentikasi dan mengotorisasi permintaan non-anonim:
OSS memeriksa apakah permintaan lolos verifikasi identitas.
OSS membandingkan tanda tangan yang disertakan dalam permintaan dengan tanda tangan yang dihitung oleh server OSS.
Jika tanda tangannya tidak konsisten, permintaan ditolak.
Jika tanda tangannya konsisten, OSS memeriksa apakah permintaan tetap harus diperiksa berdasarkan kebijakan sesi berbasis peran.
OSS memeriksa apakah permintaan tetap harus diperiksa berdasarkan kebijakan sesi berbasis peran.
Jika permintaan tetap harus diperiksa berdasarkan kebijakan sesi berbasis peran, OSS memeriksa permintaan terhadap kebijakan sesi tersebut.
Jika hasilnya Tolak Eksplisit atau Tolak Implisit, OSS menolak permintaan.
Jika hasilnya Mengizinkan, OSS melanjutkan pemeriksaan permintaan terhadap kebijakan RAM dan kebijakan bucket.
Jika permintaan tidak memerlukan evaluasi berdasarkan kebijakan sesi berbasis peran, OSS melanjutkan pemeriksaan permintaan berdasarkan kebijakan RAM dan kebijakan bucket.
OSS memeriksa apakah permintaan sesuai dengan kebijakan RAM dan kebijakan bucket.
Kebijakan RAM adalah kebijakan kontrol akses berbasis identitas. Anda dapat mengonfigurasi kebijakan RAM untuk mengelola akses ke sumber daya Anda di OSS. Dalam pemeriksaan otorisasi berdasarkan kebijakan RAM, OSS menentukan apakah akan mengizinkan atau menolak permintaan berdasarkan akun yang mengirimkan permintaan.
Jika permintaan dikirim menggunakan pasangan AccessKey dari akun Alibaba Cloud, OSS secara implisit menolak permintaan.
Jika permintaan dikirim menggunakan pasangan AccessKey dari pengguna RAM atau kredensial Security Token Service (STS) untuk mengakses bucket yang tidak dimiliki oleh akun Alibaba Cloud atau pemilik pengguna RAM, OSS secara implisit menolak permintaan.
OSS memanggil operasi otentikasi yang disediakan oleh RAM untuk mengotentikasi permintaan. OSS mendukung otentikasi berdasarkan akun dan grup sumber daya bucket. OSS menentukan apakah akan mengizinkan, secara eksplisit menolak, atau secara implisit menolak permintaan berdasarkan hasil otentikasi.
Kebijakan bucket adalah kebijakan otorisasi berbasis sumber daya. Pemilik bucket dapat mengonfigurasi kebijakan bucket untuk memberi otorisasi kepada pengguna RAM atau akun Alibaba Cloud lainnya untuk melakukan operasi pada bucket atau sumber daya tertentu di dalam bucket.
Jika tidak ada kebijakan bucket yang dikonfigurasikan untuk bucket, OSS secara implisit menolak permintaan.
Jika kebijakan bucket dikonfigurasikan untuk bucket, OSS memeriksa apakah permintaan sesuai dengan kebijakan bucket dan kemudian menentukan apakah akan mengizinkan, secara eksplisit menolak, atau secara implisit menolak permintaan.
OSS memeriksa apakah permintaan sesuai dengan Tolak Eksplisit berdasarkan hasil pemeriksaan sebelumnya.
Jika permintaan sesuai dengan Tolak Eksplisit, OSS menolak permintaan. Jika permintaan tidak sesuai dengan Tolak Eksplisit, OSS memeriksa apakah permintaan sesuai dengan Mengizinkan.
OSS memeriksa apakah permintaan sesuai dengan Mengizinkan berdasarkan kebijakan RAM dan kebijakan bucket.
Jika permintaan sesuai dengan Mengizinkan, OSS mengizinkan permintaan. Jika permintaan tidak sesuai dengan Mengizinkan, OSS memeriksa sumber permintaan.
OSS memeriksa sumber permintaan.
Jika permintaan dikirim dengan memanggil operasi API manajemen, OSS menolak permintaan. Jika permintaan dikirim dengan memanggil operasi API data, OSS memeriksa ACL objek atau ACL bucket.
Operasi API manajemen mencakup operasi terkait layanan seperti GetService (ListBuckets), operasi terkait bucket seperti PutBucket dan GetBucketLifecycle, dan operasi terkait LiveChannel seperti PutLiveChannel dan DeleteLiveChannel.
Operasi API data mencakup operasi terkait objek, seperti PutObject dan GetObject.
OSS memeriksa permintaan berdasarkan ACL objek dan bucket yang diminta.
Ketika OSS memeriksa permintaan berdasarkan ACL objek, OSS memeriksa apakah peminta adalah pemilik bucket dan apakah permintaan tersebut merupakan permintaan baca atau tulis. Untuk informasi lebih lanjut, lihat PutBucketAcl.
Jika hasilnya Mengizinkan, OSS mengizinkan permintaan.
Jika hasilnya Menolak, OSS menolak permintaan.
Jika ACL objek diwarisi dari bucket, OSS memeriksa permintaan berdasarkan ACL bucket tempat objek disimpan.
Ketika OSS memeriksa permintaan berdasarkan ACL bucket, OSS memeriksa apakah peminta adalah pemilik bucket. Untuk informasi lebih lanjut, lihat PutBucketAcl.
Jika hasilnya Mengizinkan, OSS mengizinkan permintaan.
Jika hasilnya Menolak, OSS menolak permintaan.
Otorisasi Permintaan Anonim
Deskripsi Otorisasi
OSS menentukan apakah akan mengizinkan atau menolak permintaan anonim hanya berdasarkan kebijakan bucket, ACL objek, dan ACL bucket. OSS tidak melakukan pemeriksaan otorisasi pada permintaan anonim berdasarkan otentikasi, kebijakan sesi berbasis peran, atau kebijakan RAM.
Proses Otorisasi
OSS menggunakan langkah-langkah berikut untuk melakukan pemeriksaan otorisasi pada permintaan anonim:
OSS mengevaluasi kebijakan bucket.
Jika hasilnya Menolak, OSS menolak permintaan.
Jika hasilnya Mengizinkan, OSS mengizinkan permintaan.
Jika hasilnya Abaikan, OSS melanjutkan pemeriksaan ACL objek.
OSS memeriksa permintaan berdasarkan ACL objek dan bucket yang diminta.
Jika ACL objek bersifat pribadi, hasilnya Menolak dan OSS menolak permintaan.
Jika ACL objek bersifat publik-baca atau publik-baca-tulis, hasilnya Mengizinkan dan OSS mengizinkan permintaan.
Jika ACL objek diwarisi dari bucket, OSS memeriksa permintaan berdasarkan ACL bucket tempat objek disimpan.
Jika ACL bucket bersifat publik-baca atau publik-baca-tulis, hasilnya Mengizinkan dan OSS mengizinkan permintaan.
Jika ACL bucket bersifat pribadi, hasilnya Menolak dan OSS menolak permintaan.