OSS menyediakan sistem berlapis untuk izin dan kontrol akses guna mengamankan data Anda. Topik ini memberikan ikhtisar kerangka kerja kontrol akses di OSS, membantu Anda memahami dan membandingkan metode yang tersedia agar dapat memilih yang paling sesuai dengan kebutuhan spesifik Anda.
Panduan cepat
Skenario | Solusi yang direkomendasikan |
Jaga data tetap privat dan blokir akses tidak sah atau anonim | Atur bucket ACL menjadi private (default). |
Sajikan sumber daya statis yang dapat dibaca publik | Atur bucket ACL menjadi public-read dan konfigurasikan hotlink protection untuk mencegah penggunaan tidak sah. |
Berikan akses ke beberapa pengguna ke bucket tertentu | Gunakan bucket policy. Satu kebijakan saja dapat menentukan daftar pengguna yang diizinkan. |
Kelola secara terpusat semua resource yang dapat diakses pengguna | Sambungkan RAM policy ke pengguna tersebut. |
Bagikan resource dengan akun Alibaba Cloud lainnya | Gunakan bucket policy atau terapkan akses lintas akun ke OSS menggunakan RAM role. |
Berikan akses berbeda ke bucket yang sama untuk beberapa aplikasi atau tim | Gunakan access point. Setiap aplikasi atau tim mendapatkan titik masuk dan kebijakan khusus. |
Cegah kebocoran data akibat kesalahan konfigurasi | Aktifkan Block Public Access. |
Akses OSS dari JavaScript sisi klien di browser | Konfigurasikan cross-origin resource sharing (CORS). |
Tentukan batasan izin di lingkungan multi-akun, seperti menerapkan fitur Block Public Access | Gunakan Control Policy. |
Mekanisme autentikasi
OSS menggunakan proses autentikasi yang berbeda tergantung pada jenis permintaan:
Signed requests: OSS pertama-tama memverifikasi signature, lalu mengevaluasi Control Policy (jika ada), RAM policy, bucket policy, dan access control list (ACL) untuk menentukan apakah akses diberikan.
Anonymous requests: OSS mengevaluasi Control Policy (jika ada), bucket policy, dan ACL untuk menentukan apakah akses publik diizinkan.
Hasil autentikasi dapat berupa salah satu dari tiga jenis: Allow (secara eksplisit diberikan oleh kebijakan), Explicit Deny (secara eksplisit ditolak oleh kebijakan, yang memiliki prioritas tertinggi), dan Implicit Deny (ditolak secara default jika tidak ada kebijakan yang memberikan akses).
Untuk alur autentikasi lengkap, lihat Detail proses autentikasi.
Metode kontrol akses
ACL
Access control list (ACL) adalah cara paling sederhana untuk mengontrol izin. ACL menggunakan tingkat izin yang telah ditentukan sebelumnya untuk mengatur status akses suatu resource menjadi publik atau privat.
Bucket ACL mengontrol izin akses default untuk sebuah bucket, sedangkan object ACL mengontrol izin untuk objek individual dan memiliki prioritas lebih tinggi. Jika object ACL tidak ditentukan, objek tersebut mewarisi izin dari bucket ACL. Tingkat izin berikut ini didukung:
Tingkat izin | Efek |
private | Data bersifat privat. Hanya pemilik resource atau pengguna yang berwenang yang dapat mengaksesnya. |
public-read | Siapa pun dapat membaca resource tersebut. Hanya pemilik resource atau pengguna yang berwenang yang dapat menulis ke dalamnya. |
public-read-write | Siapa pun dapat membaca dan menulis ke resource tersebut secara publik. |
ACL hanya mendukung tingkat izin yang telah ditentukan dan tidak dapat menentukan siapa yang diberi akses atau dalam kondisi apa. Untuk kontrol yang lebih detail halus, gunakan bucket policy atau RAM policy.
Bucket policy
Bucket policy adalah kebijakan otorisasi berbasis resource yang disambungkan ke sebuah bucket. Kebijakan ini menentukan siapa yang dapat mengakses resource dalam bucket tersebut. Anda dapat menggunakannya untuk memberikan izin kepada pengguna RAM, akun Alibaba Cloud lain, atau pengguna anonim, serta menentukan kondisi seperti alamat IP, VPC, atau waktu.
Saat Anda perlu memberikan akses ke bucket yang sama kepada beberapa pengguna, Anda dapat menggunakan satu bucket policy saja alih-alih mengonfigurasi izin terpisah untuk setiap pengguna.
Tutorial: Gunakan kebijakan endpoint VPC dan bucket policy untuk menerapkan kontrol akses ganda | Bagikan data antar departemen menggunakan bucket policy
RAM policy
RAM policy adalah kebijakan otorisasi berbasis identitas yang disambungkan ke identitas pengguna. Kebijakan ini menentukan resource OSS mana yang dapat diakses pengguna dan ideal untuk mengelola izin secara terpusat bagi pengguna atau aplikasi di beberapa bucket.
OSS menyediakan kebijakan sistem, seperti AliyunOSSFullAccess dan AliyunOSSReadOnlyAccess, yang dapat Anda gunakan langsung. Anda juga dapat membuat kebijakan kustom. Anda dapat menggunakan RAM role untuk mengaktifkan akses lintas akun dan memberikan otorisasi sementara melalui Security Token Service (STS).
Tutorial: Gunakan RAM role untuk mengakses resource OSS lintas akun Alibaba Cloud | Gunakan RAM policy untuk mengontrol akses ke OSS
Control Policy
Control Policy dalam Resource Directory adalah kebijakan kontrol akses berdasarkan struktur resource Anda, seperti folder resource atau anggota. Kebijakan ini terutama digunakan untuk menentukan batasan izin. Di lingkungan multi-akun, Anda dapat menggunakan kebijakan kontrol kustom untuk menerapkan persyaratan keamanan di seluruh akun anggota, seperti mewajibkan fitur Block Public Access diaktifkan pada semua bucket.
Perbandingan kebijakan
Aspek | Bucket policy | RAM policy | Control policy |
Cakupan konfigurasi | Pada bucket | Pada identitas RAM (pengguna, kelompok, atau peran) | Pada struktur resource (folder resource atau anggota) di Resource Directory |
Perspektif manajemen | Berbasis resource: "Siapa yang dapat mengakses resource ini?" | Berbasis identitas: "Resource apa saja yang dapat diakses identitas ini?" | Berbasis organisasi: "Apa batasan izin untuk seluruh Resource Directory?" |
Akses anonim | Didukung | Tidak didukung | Tidak didukung |
Rekomendasi: Gunakan bucket policy untuk memberikan akses efisien ke beberapa pengguna ke resource yang sama. Gunakan RAM policy untuk mengelola semua izin resource secara intuitif bagi satu pengguna. Anda harus menggunakan bucket policy untuk mengizinkan akses anonim. Di lingkungan multi-akun, Anda dapat menggunakan Control Policy untuk menentukan batasan izin. Metode-metode ini dapat digunakan bersamaan. OSS hanya memberikan izin permintaan jika semua kebijakan yang berlaku mengizinkannya.
Access points
Access point menyediakan titik masuk khusus untuk mengakses sebuah bucket. Saat satu bucket perlu diakses oleh beberapa aplikasi atau tim dengan izin berbeda, Anda dapat membuat access point terpisah untuk masing-masing. Anda kemudian dapat menggunakan kebijakan access point untuk mengelola izin tiap access point secara individual, sehingga menghindari kebutuhan memelihara satu bucket policy yang kompleks.
Setiap access point memiliki nama domain akses unik, kebijakan access point, dan pembatasan jaringan. Saat pengguna mengakses OSS melalui access point, permintaan hanya diberikan jika diizinkan oleh kebijakan access point, bucket policy, dan RAM policy yang berlaku.
Fitur keamanan
Block Public Access
Saat diaktifkan, Block Public Access mengesampingkan semua izin publik yang diberikan oleh ACL atau bucket policy, sehingga mencegah kebocoran data akibat kesalahan konfigurasi. Anda dapat mengonfigurasi fitur ini di tingkat akun (untuk semua bucket), tingkat bucket, atau tingkat access point, dengan tingkat yang lebih tinggi memiliki prioritas lebih besar.
Kami merekomendasikan mengaktifkan fitur ini di tingkat akun jika Anda menyimpan data sensitif dan tidak memerlukan akses anonim.
Hotlink protection
Hotlink protection mencegah situs web tidak sah menautkan ke resource OSS Anda dengan memeriksa header Referer dalam permintaan HTTP. Anda dapat mengonfigurasi daftar putih (hanya mengizinkan domain tertentu) atau blacklist (menolak domain tertentu). Fitur ini membantu mencegah penggunaan tidak sah terhadap resource seperti gambar dan video.
Header Referer dapat dipalsukan. Untuk keamanan lebih tinggi, kami merekomendasikan penggunaan signed URL.
Cross-origin resource sharing (CORS)
Secara default, browser mencegah JavaScript di halaman web mengakses resource di domain berbeda. Dengan mengonfigurasi aturan CORS, Anda dapat menginstruksikan OSS untuk menyertakan header lintas origin dalam responsnya. Hal ini memungkinkan browser melanjutkan permintaan. Fitur ini berguna untuk skenario seperti unggah file langsung dari frontend atau mengambil resource untuk aplikasi web.
Sintaksis kebijakan
Bucket policy, RAM policy, Control Policy, dan access point policy semuanya didefinisikan dalam format JSON. Elemen intinya meliputi:
Elemen | Deskripsi |
Effect | Efek kebijakan: |
Principal | Identitas yang diberikan izin (tidak diperlukan untuk RAM policy atau Control Policy). |
Action | Operasi yang diizinkan atau ditolak, seperti |
Resource | Resource yang menjadi cakupan kebijakan. |
Condition | Kondisi di mana kebijakan berlaku (opsional). |
Untuk sintaksis lengkap dan daftar action, lihat Sintaksis dan struktur kebijakan.