Kebijakan Resource Access Management (RAM) adalah kebijakan izin yang disambungkan ke identitas RAM (user, kelompok user, atau role). Untuk mengontrol akses Pengguna RAM atau role terhadap resource Tablestore, sambungkan kebijakan RAM yang menentukan operasi dan resource yang diizinkan.
Cara kerja
Kebijakan RAM menggunakan otorisasi berbasis identitas. Kebijakan yang disambungkan ke Pengguna RAM, kelompok user, atau role menentukan operasi (Action) yang dapat dilakukan oleh identitas tersebut, resource (Resource) yang dapat diakses, serta kondisi (Condition) penerapan kebijakan.
Saat identitas RAM mengirim permintaan, sistem mengevaluasi semua kebijakan yang berlaku dalam urutan berikut:
Penolakan eksplisit memiliki prioritas tertinggi: Jika ada kebijakan yang berisi aturan Deny yang sesuai dengan permintaan, permintaan tersebut langsung ditolak.
Cari izin eksplisit: Jika tidak ada aturan Deny yang sesuai, permintaan diizinkan bila terdapat aturan Allow yang sesuai.
Penolakan implisit: Jika tidak ada aturan Deny maupun Allow yang sesuai, permintaan secara default ditolak.
Tablestore mendukung dua jenis kebijakan RAM:
Kebijakan sistem: Ditentukan sebelumnya oleh Alibaba Cloud untuk skenario otorisasi umum. Anda dapat menyambungkan kebijakan ini tetapi tidak dapat mengubahnya.
Kebijakan kustom: Dibuat dan dikelola oleh Anda. Kebijakan kustom memberikan kontrol detail halus atas cakupan resource, operasi, dan kondisi penerapannya.
Berikan izin dengan kebijakan sistem
Alibaba Cloud menyediakan kebijakan sistem yang dapat Anda sambungkan langsung ke identitas user melalui Konsol RAM. Prosedur berikut menggunakan Pengguna RAM sebagai contoh.
Buka halaman Pengguna RAM, lalu pada kolom Actions pengguna target, klik Grant Permission.
Pada kotak pencarian, masukkan nama kebijakan sistem yang ingin Anda sambungkan, lalu pilih kebijakan tersebut. Tablestore mendukung tiga kebijakan sistem berikut:
Kebijakan sistem
Cakupan izin
Izin manajemen penuh untuk Tablestore.
Akses hanya-baca ke Tablestore.
Akses hanya-tulis ke Tablestore.
Klik OK untuk menyelesaikan pengaturan izin.
Berikan izin dengan kebijakan kustom
Anda membuat dan mengelola kebijakan kustom dalam dua langkah: buat kebijakan, lalu sambungkan ke identitas user.
Langkah 1: Buat kebijakan kustom
Buka halaman Kebijakan dan klik Create Policy.
Pilih JSON Editor dan masukkan kebijakan dalam format JSON di editor.
Contoh kebijakan berikut mengizinkan semua operasi pada instans bernama
example-instancedan semua tabel di dalamnya.{ "Version": "1", "Statement": [ { "Effect": "Allow", "Action": "ots:*", "Resource": [ "acs:ots:*:*:instance/example-instance", "acs:ots:*:*:instance/example-instance/table/*" ] } ] }Kebijakan RAM terdiri dari dua elemen tingkat atas: Version dan Statement.
Elemen tingkat atas
Deskripsi
Version
Versi kebijakan. Tetap pada nilai
1, tidak dapat diubah.Statement
Isi utama kebijakan. Berisi satu atau beberapa aturan otorisasi atau penolakan. Setiap aturan mencakup empat sub-elemen: Effect (efek otorisasi), Action (operasi yang diizinkan), Resource (resource yang diizinkan), dan Condition (kondisi otorisasi). Lihat tabel berikut untuk detailnya.
Sub-elemen Pernyataan
Deskripsi
Effect
Efek kebijakan. Nilai yang valid:
AllowatauDeny.Action
Operasi spesifik yang dilakukan pada resource. Tambahkan awalan
ots:dan gunakan wildcard*bila diperlukan.Resource
Cakupan resource. Format:
acs:ots:[region]:[user_id]:instance/[instance_name]/table/[table_name].Condition
Kondisi penerapan kebijakan.
Jika Anda menentukan beberapa kondisi, semua kondisi harus terpenuhi (logika AND) agar kebijakan berlaku.
Untuk elemen dan sintaks kebijakan lengkap, lihat Sintaks dan elemen kebijakan otorisasi.
Klik OK, masukkan Policy Name, lalu klik OK untuk menyelesaikan pembuatan kebijakan kustom.
Langkah 2: Sambungkan kebijakan ke identitas user
Sambungkan kebijakan yang telah Anda buat pada langkah sebelumnya ke identitas user. Prosedur berikut menggunakan Pengguna RAM sebagai contoh.
Buka halaman Pengguna RAM, lalu pada kolom Actions pengguna target, klik Grant Permission.
Masukkan nama kebijakan kustom pada kotak pencarian dan pilih kebijakan target.
Klik OK untuk menyelesaikan pengaturan izin.
Skenario otorisasi umum
Skenario berikut merupakan kasus penggunaan kebijakan RAM yang umum di Tablestore. Masing-masing mencakup contoh kebijakan JSON lengkap.
Skenario 1: Berikan izin baca dan tulis dengan kombinasi kondisi IP, waktu, dan protokol
Izinkan user dari Blok CIDR 10.10.XX.XX/24 untuk membaca dan menulis pada instans online-01 dan online-02 beserta semua tabel di dalamnya, tetapi hanya melalui HTTPS dan hanya sebelum 2028-01-01 00:00:00.
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": "ots:*",
"Resource": [
"acs:ots:*:*:instance/online-01",
"acs:ots:*:*:instance/online-01/table*",
"acs:ots:*:*:instance/online-02",
"acs:ots:*:*:instance/online-02/table*"
],
"Condition": {
"IpAddress": {
"acs:SourceIp": [
"10.10.XX.XX/24"
]
},
"DateLessThan": {
"acs:CurrentTime": "2028-01-01T00:00:00+08:00"
},
"Bool": {
"acs:SecureTransport": "true"
}
}
}
]
}Skenario 2: Tolak permintaan tulis dari alamat IP tertentu ke instans tertentu
Tolak akses tulis user dari alamat IP 10.10.XX.XX ke semua tabel pada instans yang namanya diawali dengan online atau product di wilayah China (Beijing). Aturan ini tidak membatasi operasi pada instans itu sendiri.
{
"Version": "1",
"Statement": [
{
"Effect": "Deny",
"Action": [
"ots:Create*",
"ots:Insert*",
"ots:Put*",
"ots:Update*",
"ots:Delete*",
"ots:BatchWrite*"
],
"Resource": [
"acs:ots:cn-beijing:*:instance/online*/table*",
"acs:ots:cn-beijing:*:instance/product*/table*"
],
"Condition": {
"IpAddress": {
"acs:SourceIp": [
"10.10.XX.XX"
]
}
}
}
]
}Skenario 3: Batasi Pengguna RAM hanya untuk mengelola instans tertentu
Izinkan Pengguna RAM hanya mengelola instans yang ditentukan. Kebijakan ini terdiri dari tiga Statement yang masing-masing memberikan izin kueri konsol, izin operasi penuh pada instans target, dan izin kueri CloudMonitor.
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": [
"ots:ListInstance",
"ots:ListTagResources"
],
"Resource": "acs:ots:*:*:instance/*"
},
{
"Effect": "Allow",
"Action": "ots:*",
"Resource": [
"acs:ots:*:*:instance/yourInstance",
"acs:ots:*:*:instance/yourInstance/table*"
]
},
{
"Effect": "Allow",
"Action": "cms:Query*",
"Resource": "*"
}
]
}Setiap Statement memiliki peran spesifik, seperti dijelaskan dalam tabel berikut.
Kebijakan | Deskripsi |
| Halaman Overview di konsol Tablestore memuat daftar instans dan daftar tag. Statement ini memberikan izin kueri yang diperlukan Pengguna RAM untuk memuatnya. Catatan Pengguna RAM yang mengelola instans melalui konsol harus memiliki izin ini. |
| Memberikan semua izin kepada Pengguna RAM pada instans |
| Memberikan izin CloudMonitor kepada Pengguna RAM untuk melihat data pemantauan instans dan tabel. |