Aplikasi yang dikelola di Enterprise Distributed Application Service (EDAS) dapat mencakup beberapa layanan atau subsistem yang dikembangkan dan dipelihara oleh tim serta anggota berbeda. EDAS menyediakan dua model izin untuk mengontrol siapa yang dapat melakukan aksi apa terhadap resource mana, sehingga memungkinkan Anda mengisolasi aplikasi, resource, dan data serta menerapkan kontrol akses.
Model izin
EDAS mendukung dua model izin:
Kebijakan Resource Access Management (RAM) (direkomendasikan): Kontrol akses berbasis kebijakan dengan granularitas tinggi. Setiap kebijakan menetapkan aksi spesifik yang dapat dilakukan pengguna terhadap resource tertentu. Kebijakan RAM mengikuti prinsip least-privilege dan mendukung wildcard, ekspresi kondisional, serta komposisi multi-kebijakan.
Izin yang ditentukan EDAS (legacy): Kontrol akses berbasis peran dengan granularitas kasar. Izin ini menggabungkan aksi dan resource secara bersamaan, sehingga Anda tidak dapat mengontrol secara independen aksi mana yang berlaku untuk resource mana.
Untuk mengelola izin EDAS dan layanan Alibaba Cloud lainnya dalam sistem terpadu, kami merekomendasikan penggunaan RAM. Untuk detail tentang penyiapan kontrol akses berbasis RAM, lihat Overview.
Jika organisasi Anda masih menggunakan izin yang ditentukan EDAS, lihat Manage EDAS-defined permissions (not recommended).
Cara evaluasi akses
Saat kedua model izin berlaku bersamaan, EDAS mengevaluasi akses sebagai berikut:
RAM user selalu diatur oleh kebijakan RAM. Izin yang ditentukan EDAS tidak berlaku.
Sub-account dengan AliyunEDASFullAccess diatur oleh kebijakan RAM, bukan izin yang ditentukan EDAS.
Sub-account dengan izin yang ditentukan EDAS tetap menggunakan izin tersebut hingga Anda memigrasikannya menjadi RAM user.
Kami merekomendasikan agar Anda mengalihkan sub-account yang diatur oleh izin yang ditentukan EDAS menjadi RAM user. Untuk prosedur migrasi, lihat Replace EDAS-defined permissions with RAM policies.
Untuk mengelola izin yang ditentukan EDAS yang diberikan kepada sub-account, login ke Konsol EDAS dan tentukan resource yang boleh atau tidak boleh diakses oleh sub-account tersebut. Setelah Anda mengganti izin yang ditentukan EDAS dengan kebijakan RAM, Anda tidak dapat lagi memberikan izin tersebut kepada sub-account. Sub-account akan dialihkan menjadi RAM user. Anda harus memberikan izin kepada RAM user untuk mengakses EDAS melalui Konsol RAM.
Mengapa kebijakan RAM lebih baik daripada izin yang ditentukan EDAS
Kontrol akses dengan granularitas lebih tinggi
Dengan izin yang ditentukan EDAS, pemberian izin deploy dan stop pada APP1 dan APP2 berarti sub-account dapat melakukan deploy dan stop terhadap kedua aplikasi tersebut. Anda tidak dapat memisahkan aksi mana yang berlaku untuk aplikasi mana.
Kebijakan RAM memisahkan aksi dari resource. Sebagai contoh, satu RAM user dapat menerima:
Izin deploy untuk APP1 dan APP2
Cabut izin untuk APP2 dan APP3.
Dalam kasus ini, RAM user dapat melakukan deploy pada APP1 dan APP2 tetapi tidak dapat melakukan deploy pada APP3. RAM user juga dapat melakukan stop pada APP2 dan APP3 tetapi tidak dapat melakukan stop pada APP1.
| Izin yang ditentukan EDAS | Kebijakan RAM |
|---|---|
![]() | ![]() |
| Izin menggabungkan aksi dan resource secara bersamaan. Sub-account dengan izin deploy dan stop pada APP1 dan APP2 dapat melakukan kedua aksi tersebut terhadap kedua aplikasi. | Setiap pernyataan kebijakan mengaitkan aksi spesifik dengan resource spesifik. Izin deploy dan izin stop menargetkan kumpulan aplikasi yang berbeda. |
Sintaks kebijakan yang fleksibel
Kebijakan RAM mendukung fitur-fitur yang tidak tersedia pada izin yang ditentukan EDAS:
Wildcard dalam identifier resource untuk mencocokkan beberapa resource sekaligus
Pernyataan Allow dan Deny dalam satu kebijakan untuk kontrol yang lebih presisi
Beberapa kebijakan yang disambungkan ke satu RAM user
Ekspresi kondisional untuk mendefinisikan kebijakan
Contoh: melihat semua aplikasi kecuali satu
Kebijakan berikut memungkinkan RAM user untuk melihat semua aplikasi EDAS, kecuali aplikasi dengan ID 12345678 di wilayah cn-beijing:
{
"Statement": [
{
"Action": [
"edas:ReadApplication"
],
"Effect": "Allow",
"Resource": ["acs:edas:*:*:namespace/*/application/*"]
},
{
"Action": [
"edas:ReadApplication"
],
"Effect": "Deny",
"Resource": ["acs:edas:cn-beijing:*:namespace/*/application/12345678"]
}
],
"Version": "1"
}Kebijakan ini terdiri dari dua pernyataan:
Pernyataan pertama menetapkan efek
Allowdan menggunakan wildcard (*) pada jalur resource untuk mencocokkan semua aplikasi di semua namespace. RAM user dapat melihat aplikasi EDAS apa pun.Pernyataan kedua menetapkan efek
Denyuntuk aplikasi spesifik12345678di wilayahcn-beijing. KarenaDenymemiliki prioritas lebih tinggi daripadaAllow, RAM user tidak dapat melihat aplikasi ini.
Hasil gabungan: RAM user dapat melihat semua aplikasi kecuali aplikasi 12345678.
Untuk referensi sintaks kebijakan lengkap, termasuk ekspresi kondisional, lihat Policy overview.
Referensi pemetaan izin
Izin yang ditentukan EDAS tidak setara dengan kebijakan RAM dan tidak dapat dikonversi secara langsung. Namun, saat Anda mengganti izin yang ditentukan EDAS dengan kebijakan RAM, EDAS dapat mewarisi sebagian besar izin tersebut secara otomatis. Secara default, izin yang menentukan apakah sub-account dapat melakukan aksi tertentu terhadap resource EDAS (seperti aplikasi dan kluster) akan dibawa ke RAM user yang sesuai.
Resource EDAS diorganisasikan dalam hierarki: namespace > kluster/aplikasi. Jalur resource dalam kebijakan RAM mencerminkan hierarki ini. Sebagai contoh, acs:edas:*:*:namespace/*/application/${applicationId} menargetkan aplikasi tertentu dalam namespace apa pun.
Tabel berikut memetakan setiap izin yang ditentukan EDAS ke padanan kebijakan RAM-nya:
| Izin yang ditentukan EDAS | Aksi RAM | Resource RAM |
|---|---|---|
| Super Admin (izin penuh) | edas:* | acs:edas:\*:\*:\* |
| Akun Alibaba Cloud yang bertindak | edas:ManageSystem | acs:edas:\*:\*:\* |
| Manajemen sistem - Melihat log operasi | edas:ReadOperationLog | acs:edas:\*:\*:\* |
| Manajemen aplikasi - Memodifikasi namespace layanan mikro | edas:ManageNamespace | acs:edas:\*:\*:namespace/${namespaceId} |
| Manajemen aplikasi - Menanyakan namespace layanan mikro | edas:ReadNamespace | acs:edas:\*:\*:namespace/${namespaceId} |
| Manajemen resource - Membuat kluster | edas:CreateCluster | acs:edas:\*:\*:namespace/\* |
| Manajemen resource - Melihat kluster | edas:ReadCluster | acs:edas:\*:\*:namespace/\*/cluster/${clusterId} |
| Manajemen resource - Mengelola dan menghapus kluster | edas:ReadCluster, edas:ManageCluster | acs:edas:\*:\*:namespace/\*/cluster/${clusterId} |
| Manajemen aplikasi - Membuat aplikasi | edas:CreateApplication | acs:edas:\*:\*:namespace/\* |
| Manajemen aplikasi - Deploy, start, scale out, dan hapus aplikasi | edas:ManageApplication, edas:ReadApplication | acs:edas:\*:\*:namespace/\*/application/${applicationId} |
| Manajemen aplikasi - Melihat informasi aplikasi | edas:ReadApplication | acs:edas:\*:\*:namespace/\*/application/${applicationId} |
| Manajemen aplikasi - Mengonfigurasi kontainer dan mengatur parameter Java Virtual Machine (JVM) | edas:ConfigApplication, edas:ReadApplication | acs:edas:\*:\*:namespace/\*/application/${applicationId} |
| Manajemen aplikasi - Mengatur direktori log | edas:ManageAppLog, edas:ReadApplication | acs:edas:\*:\*:namespace/\*/application/${applicationId} |
| Membeli resource Elastic Compute Service (ECS) | edas:ECSPurchase | acs:edas:\*:\*:\* |
| Membeli resource Server Load Balancer (SLB) | edas:SLBPurchase | acs:edas:\*:\*:\* |
| Membeli resource Log Service | edas:SLSPurchase | acs:edas:\*:\*:\* |

