Di RAM, Anda menggunakan kebijakan izin untuk menentukan izin tertentu. Kebijakan izin terdiri atas elemen dasar, yaitu Effect, Action/NotAction, Resource, Condition, dan Principal.
Element | Description |
Effect | Menentukan apakah pernyataan kebijakan mengizinkan atau menolak akses. Nilai yang valid adalah:
|
Action/NotAction | Operasi yang dilakukan pada resource tertentu. Anda harus menentukan Action atau NotAction dalam pernyataan kebijakan:
|
Resource | Objek spesifik atau beberapa objek yang menjadi sasaran kebijakan. |
Condition | Kondisi yang harus dipenuhi agar otorisasi berlaku. |
Principal | Entitas yang diizinkan atau ditolak aksesnya ke suatu resource. Elemen ini hanya berlaku untuk kebijakan berbasis resource, seperti kebijakan kepercayaan (trust policy) Peran RAM. |
Effect
Elemen Effect menentukan apakah kebijakan mengizinkan atau menolak akses dan wajib disertakan.
Nilai yang valid untuk elemen ini adalah Allow dan Deny.
Jika suatu kebijakan izin mencakup keduanya, Deny memiliki prioritas lebih tinggi daripada Allow.
Contoh:
"Effect": "Allow"Action/NotAction
Pernyataan kebijakan harus mencakup elemen Action atau NotAction. Elemen Action menentukan operasi yang diizinkan atau ditolak, sedangkan NotAction menentukan operasi yang dikecualikan dari kebijakan.
Nilai yang valid untuk elemen Action/NotAction adalah nama operasi API yang didefinisikan oleh layanan cloud.
Format elemen Action/NotAction adalah <ram-code>:<action-name>.
ram-code: Kode RAM dari layanan cloud. Untuk informasi selengkapnya, lihat kolom RAM Code dalam Layanan Alibaba Cloud yang mendukung RAM.action-name: Nama operasi API terkait.
Nilai elemen Action/NotAction umumnya tidak peka huruf besar/kecil. Namun, untuk memastikan perilaku konsisten, gunakan awalan <ram-code> dan <action-name> secara eksak sesuai yang ditentukan dalam dokumentasi otorisasi layanan cloud.
Contoh:
Contoh tindakan
"Action": [ "oss:ListBuckets", "ecs:Describe*", "rds:Describe*" ]Kemandirian urutan
Urutan elemen dalam array Action tidak memengaruhi hasil otorisasi. Setiap aksi dievaluasi secara independen, terlepas dari posisinya dalam array. Oleh karena itu, dua notasi berikut setara:
"Action": [ "ecs:DescribeSecurityGroups", "ecs:DescribeInstances" ]"Action": [ "ecs:DescribeInstances", "ecs:DescribeSecurityGroups" ]Contoh NotAction
Contoh berikut mengizinkan semua operasi kecuali yang ada di RAM. Kebijakan hanya mencantumkan operasi yang dikecualikan (ram:*) alih-alih semua operasi yang diizinkan, sehingga pernyataan kebijakan menjadi lebih singkat. Namun, hal ini memberikan izin yang sangat luas. Gunakan dengan hati-hati dan pastikan kebijakan berperilaku sesuai harapan Anda.
{ "Effect": "Allow", "NotAction": "ram:*", "Resource": "*" }
Resource
Elemen Resource menjelaskan satu atau beberapa objek yang menjadi sasaran kebijakan. Elemen ini digunakan dalam kebijakan berbasis identitas dan wajib ada.
Nilai elemen Resource adalah ARN (Aliyun Resource Name) dari resource yang didefinisikan oleh layanan cloud.
Format elemen Resource adalah acs:<ram-code>:<region>:<account-id>:<relative-id>. Gunakan ARN eksak sesuai yang ditentukan dalam dokumentasi otorisasi layanan cloud.
Format tersebut dijelaskan sebagai berikut:
acs: Singkatan untuk Alibaba Cloud Service. Ini mengidentifikasi permintaan sebagai target platform cloud publik Alibaba Cloud.ram-code: Kode RAM untuk layanan cloud. Untuk informasi selengkapnya, lihat kolom RAM Code dalam Layanan Alibaba Cloud yang mendukung RAM.region: Informasi wilayah. Untuk resource global yang dapat diakses tanpa menentukan wilayah, gunakan tanda bintang (*). Untuk informasi selengkapnya, lihat Wilayah dan zona ketersediaan.account-id: ID Akun Alibaba Cloud. Contohnya,123456789012****.relative-id: Bagian ARN yang menjelaskan resource, dengan semantik yang ditentukan oleh layanan cloud spesifik. Bagian ini mendukung struktur seperti pohon, mirip dengan path file. Misalnya, untuk menentukan objek OSS, formatnya adalahrelative-id = "mybucket/dir1/object1.jpg".
Contoh:
"Resource": [
"acs:ecs:*:*:instance/inst-001",
"acs:ecs:*:*:instance/inst-002",
"acs:oss:*:*:mybucket",
"acs:oss:*:*:mybucket/*"
]Condition
Elemen Condition menentukan kondisi yang harus dipenuhi agar kebijakan berlaku. Elemen ini bersifat opsional.
Elemen Condition, juga dikenal sebagai blok kondisi, terdiri dari satu atau beberapa klausa kondisi. Setiap klausa mencakup operator kondisi, kunci kondisi, dan satu atau beberapa nilai kondisi.

Karena elemen Condition bersifat opsional, sistem tidak memvalidasi keberadaannya. Jika Anda menggunakan elemen ini untuk menentukan kondisi, pastikan penulisan serta penggunaan huruf besar dan kecilnya benar.
Nama (key) kunci kondisi peka huruf besar/kecil. Sementara itu, sensitivitas huruf besar/kecil pada nilai kondisi (value) bergantung pada operator kondisi yang digunakan. Misalnya, untuk kunci kondisi bertipe string, jika Anda menggunakan operator StringEquals, nilai dalam kebijakan akan dicocokkan dengan nilai dalam permintaan secara peka huruf besar/kecil. Namun, jika menggunakan operator StringEqualsIgnoreCase, pencocokan dilakukan tanpa memedulikan huruf besar/kecil.
Elemen Condition memiliki karakteristik berikut:
Logika evaluasi
Kondisi terpenuhi jika nilai kunci dalam permintaan cocok dengan salah satu nilai dalam kebijakan (logika OR).
Jika sebuah klausa kondisi mencakup beberapa kunci kondisi, semua kunci tersebut harus cocok agar klausa terpenuhi (logika AND).
Seluruh blok kondisi terpenuhi hanya jika semua klausa di dalamnya terpenuhi (logika AND).
Jenis operator kondisi
Jenis operator kondisi meliputi String, Number, Date and time, Boolean, dan IP address. Untuk makna dan contoh penggunaan operator kondisi, lihat Operator kondisi.
Kunci kondisi
Kunci kondisi global Alibaba Cloud menggunakan format:
acs:<condition-key>.Global condition key
Type
Description
acs:CurrentTimeDate and time
Waktu saat server web menerima permintaan.
CatatanGunakan waktu UTC dalam format standar ISO 8601.
Misalnya, pukul 20:00:00 pada 10 Januari 2023 waktu Beijing (UTC+8) direpresentasikan sebagai
2023-01-10T20:00:00+08:00atau2023-01-10T12:00:00Z.acs:SecureTransportBoolean
Menunjukkan apakah permintaan dikirim melalui saluran aman, seperti HTTPS.
acs:SourceIpIP address
Alamat IP client tempat permintaan dikirim.
CatatanNilai
acs:SourceIpdapat berupa alamat IP spesifik atau Blok CIDR. Jangan menuliskan alamat IP spesifik dalam format CIDR. Misalnya, jangan tulis 10.0.0.1 sebagai 10.0.0.1/32.acs:MFAPresentBoolean
Menunjukkan apakah pengguna masuk dengan autentikasi multi-faktor (MFA).
CatatanJika MFA for RAM user sign-in diatur ke Required Only for Unusual Logon dalam pengaturan keamanan Pengguna RAM, kondisi
acs:MFAPresentmenjadi tidak efektif. Untuk informasi selengkapnya, lihat Mengelola pengaturan keamanan Pengguna RAM.acs:PrincipalARNString
Identitas principal permintaan. Ini hanya dapat digunakan dalam kebijakan kontrol Direktori Sumber Daya dan kebijakan kepercayaan Peran RAM. Contohnya,
acs:ram:*:*:role/*resourcedirectory*.CatatanSaat ini, hanya ARN Peran RAM yang didukung, dan harus dalam huruf kecil. Anda dapat menemukan ARN Peran RAM di halaman detailnya di Konsol RAM.
acs:PrincipalRDIdString
ID Direktori Sumber Daya tempat akun cloud principal permintaan berada, misalnya,
rd-AA****. Untuk melihat ID Direktori Sumber Daya, lihat Melihat informasi dasar direktori sumber daya.Ini hanya dapat digunakan dalam kebijakan kepercayaan Peran RAM dan Kebijakan Bucket OSS.
acs:PrincipalRDPathString
Path akun cloud principal permintaan dalam Direktori Sumber Daya. Formatnya biasanya
<RD-Id>/<Root-folder-Id>/<Sub-folder-Id>/<Member-account-Id>, misalnya,rd-AA****/r-aQ****/fd-caiJfl****/199386846043****. Untuk informasi cara melihat RDPath lengkap akun anggota, lihat Melihat informasi anggota.Untuk mencocokkan semua akun anggota di bawah RDPath tertentu, Anda dapat menggunakan karakter wildcard
*dengan operator kondisiStringLike. Misalnya,"Condition": {"StringLike": {"acs:PrincipalRDPath": ["<RD-Id>/<Root-folder-Id>/<Sub-folder-Id>*"]}}.Ini hanya dapat digunakan dalam kebijakan kepercayaan Peran RAM dan Kebijakan Bucket OSS.
acs:RequestTag/<tag-key>String
Tag yang disertakan dalam permintaan. Ganti <tag-key> dengan kunci tag aktual Anda. Untuk layanan cloud dan jenis resource yang didukung, lihat informasi Authentication by Resource Type dalam Layanan Alibaba Cloud yang mendukung tag.
acs:ResourceTag/<tag-key>String
Tag yang dilampirkan pada resource yang diminta. Ganti <tag-key> dengan kunci tag aktual Anda. Untuk layanan cloud dan jenis resource yang didukung, lihat informasi Authentication by Resource Type dalam Layanan Alibaba Cloud yang mendukung tag.
Kunci kondisi spesifik layanan menggunakan format:
<ram-code>:<condition-key>.Misalnya, kunci kondisi OSS
oss:Delimiterdigunakan dalam permintaan ListObjects untuk mengelompokkan nama objek berdasarkan karakter tertentu.Untuk daftar kunci kondisi spesifik setiap layanan cloud, lihat dokumentasi otorisasi layanan terkait.
Contoh kondisi
Klausa kondisi (seperti IpAddress dan Bool) dalam satu blok Condition dievaluasi dengan logika AND. Untuk menerapkan logika OR, tempatkan setiap kondisi dalam pernyataan kebijakan terpisah.
Contoh 1: Izinkan Pengguna RAM untuk mengakses instance ECS hanya jika pengguna tersebut telah mengaktifkan Autentikasi Multi-Faktor (MFA) dan melakukan permintaan dari alamat IP 203.0.113.2.
{ "Version": "1", "Statement": [ { "Effect": "Allow", "Action": "ecs:*", "Resource": "*", "Condition": { "IpAddress": { "acs:SourceIp": [ "203.0.113.2" ] }, "Bool": { "acs:MFAPresent": [ "true" ] } } } ] }Contoh 2: Izinkan Pengguna RAM mengakses instans ECS jika pengguna telah mengaktifkan MFA atau melakukan permintaan dari alamat IP 203.0.113.2.
{ "Version": "1", "Statement": [ { "Effect": "Allow", "Action": "ecs:*", "Resource": "*", "Condition": { "IpAddress": { "acs:SourceIp": [ "203.0.113.2" ] } } }, { "Effect": "Allow", "Action": "ecs:*", "Resource": "*", "Condition": { "Bool": { "acs:MFAPresent": [ "true" ] } } } ] }
Principal
Elemen Principal, yang wajib ada dalam kebijakan berbasis resource, menentukan entitas yang diizinkan atau ditolak untuk mengakses suatu resource.
Anda tidak dapat menggunakan elemen Principal dalam kebijakan berbasis identitas. Kebijakan berbasis identitas adalah kebijakan izin yang dilampirkan pada identitas RAM (Pengguna RAM, kelompok, atau Peran RAM). Identitas tempat kebijakan tersebut dilampirkan merupakan principal implisit.
Dalam elemen Principal, Anda dapat menambahkan beberapa jenis principal dan menentukan beberapa principal untuk setiap jenis. Pisahkan beberapa jenis principal dengan koma (,). Jika jenis principal mencakup beberapa nilai, masukkan dalam tanda kurung siku ([ ]) dan pisahkan dengan koma (,). Beberapa principal memiliki hubungan OR, artinya semua principal yang ditentukan diberikan izin.
Berikut adalah contoh elemen Principal:
"Principal": {
"RAM": [
"acs:ram::123456789012****:root",
"acs:ram::987654321098****:root"
],
"Service": "ecs.aliyuncs.com"
}Principal adalah entitas yang telah terotentikasi dan dapat berupa salah satu jenis berikut:
Akun Alibaba Cloud
Anda dapat menetapkan Akun Alibaba Cloud sebagai principal. Hal ini memberikan izin kepada semua Pengguna RAM dan Peran RAM di bawah akun tersebut. Saat menetapkan Akun Alibaba Cloud, Anda harus menggunakan ARN-nya (
acs:ram::<account-id>:root). Berikut contohnya:"Principal": { "RAM": "acs:ram::123456789012****:root" }CatatanMenetapkan ARN akun (...:root) sebagai principal berarti mempercayai seluruh akun, bukan identitas pengguna tertentu. Izin tersebut kemudian dapat didelegasikan dalam akun tersebut.
Pengguna RAM
Anda dapat menetapkan Pengguna RAM sebagai principal. Anda harus menentukan ARN Pengguna RAM (
acs:ram::<account-id>:user/<user-name>), di mana<user-name>harus merupakan nama Pengguna RAM. Berikut contohnya:"Principal": { "RAM": [ "acs:ram::123456789012****:user/<user1-name>", "acs:ram::123456789012****:user/<user2-name>" ] }Saat menetapkan Pengguna RAM dalam elemen Principal, Anda tidak dapat menggunakan karakter wildcard (*) untuk pencocokan parsial. Anda harus menentukan nama lengkap Pengguna RAM.
PentingDalam kebijakan kepercayaan Peran RAM, jika elemen
Principalberisi ARN Pengguna RAM, sistem akan mengonversi ARN tersebut menjadi ID (misalnya, 29695932303672****) saat Anda menyimpan kebijakan kepercayaan. Biasanya, Anda tidak melihat ID ini. ID tersebut hanya muncul dalam kebijakan kepercayaan jika Pengguna RAM yang ditentukan dihapus. Jika hal ini terjadi, Anda dapat menghapus ID tersebut atau menggantinya dengan ARN Pengguna RAM yang valid. Mekanisme ini membantu mengurangi risiko keamanan. Selain itu, saat membuat atau memperbarui kebijakan kepercayaan, Anda tidak perlu khawatir tentang penggunaan huruf besar/kecil pada<user-name>karena sistem secara otomatis mengonversinya menjadi ARN standar.Peran RAM
Anda dapat menetapkan Peran RAM sebagai principal. Anda harus menentukan ARN Peran RAM (
acs:ram::<account-id>:role/<role-name>), di mana<role-name>harus merupakan nama Peran RAM. Berikut contohnya:"Principal": { "RAM": [ "acs:ram::123456789012****:role/<role-name>" ] }Saat menetapkan Peran RAM dalam elemen Principal, Anda tidak dapat menggunakan karakter wildcard (*) untuk pencocokan parsial. Anda harus menentukan nama lengkap Peran RAM.
PentingDalam kebijakan kepercayaan Peran RAM, jika elemen
Principalberisi ARN Peran RAM, sistem akan mengonversi ARN tersebut menjadi ID (misalnya, 38915594982675****) saat Anda menyimpan kebijakan kepercayaan. Biasanya, Anda tidak menyadari keberadaan ID ini. ID tersebut hanya ditampilkan dalam kebijakan kepercayaan ketika Peran RAM yang ditentukan dihapus. Dalam kasus ini, Anda dapat menghapus ID tersebut atau menggantinya dengan ARN Peran RAM yang valid. Mekanisme ini membantu mengurangi risiko keamanan. Selain itu, saat membuat atau memperbarui kebijakan kepercayaan, Anda tidak perlu khawatir tentang sensitivitas huruf besar/kecil pada<role-name>. Sistem secara otomatis mengonversinya menjadi ARN standar.Layanan Alibaba Cloud
Anda dapat menetapkan layanan Alibaba Cloud sebagai principal. Principal layanan adalah pengenal untuk layanan, yang biasanya menggunakan format
<service-name>.aliyuncs.com. Untuk nilai<service-name>, gunakan nama layanan lengkap yang disediakan oleh layanan cloud. Berikut contohnya:"Principal": { "Service": [ "ecs.aliyuncs.com" ] }Penyedia identitas
Anda dapat menetapkan penyedia identitas sebagai principal. Anda harus menentukan ARN penyedia identitas. Alibaba Cloud mendukung single-sign-on (SSO) berbasis SAML 2.0 dan OIDC. SSO yang menggunakan protokol SAML memerlukan penyedia identitas SAML, yang memiliki ARN dalam format
acs:ram::<account-id>:saml-provider/<provider-name>. SSO yang menggunakan protokol OIDC memerlukan penyedia identitas OIDC, yang memiliki ARN dalam formatacs:ram::<account-id>:oidc-provider/<provider-name>. Nilai ARN dalam elemen Principal peka huruf besar/kecil. Gunakan informasi ARN standar untuk penyedia identitas yang disediakan oleh sistem."Principal": { "Federated": [ "acs:ram::123456789012****:saml-provider/<provider-name>" ] }