Sebelum membuat atau memperbarui kebijakan kontrol akses kustom, Anda perlu memahami elemen-elemen dasar dari kebijakan kontrol akses. Elemen-elemen tersebut meliputi Effect, Action atau NotAction, Resource, dan Condition.
Elemen | Deskripsi |
Effect | Menentukan apakah hasil pernyataan adalah izin eksplisit atau penolakan eksplisit. Nilai yang valid:
|
Action atau NotAction | Menggambarkan satu atau lebih operasi API yang diizinkan atau ditolak. Anda dapat menentukan Action atau NotAction dalam sebuah kebijakan.
|
Resource | Menentukan satu atau lebih objek yang dicakup oleh pernyataan tersebut. |
Condition | Menentukan kondisi yang diperlukan agar kebijakan berlaku. |
Effect
Elemen Effect menentukan apakah hasil dari suatu pernyataan adalah izin eksplisit atau penolakan eksplisit. Elemen ini wajib.
Nilai yang valid: Allow dan Deny.
Jika kebijakan RAM mencakup pernyataan Allow dan Deny, pernyataan Deny akan mengambil alih pernyataan Allow.
Contoh:
"Effect": "Allow"Action/NotAction
Elemen Action menentukan satu atau lebih operasi API yang diizinkan atau ditolak. Elemen NotAction menentukan operasi yang dikecualikan ketika operasi diizinkan atau ditolak. Ini berarti bahwa, kecuali untuk operasi yang ditentukan oleh NotAction, semua operasi lainnya diizinkan atau ditolak. Hanya salah satu elemen ini yang dapat ditentukan dalam pernyataan kebijakan. Elemen ini wajib.
Nilai yang valid untuk elemen Action/NotAction: nama operasi API yang didefinisikan oleh layanan Alibaba Cloud.
Format elemen Action/NotAction: <ram-code>:<action-name>.
ram-code: kode RAM dari layanan Alibaba Cloud. Untuk informasi lebih lanjut, lihat kolom RAM Code di Layanan Alibaba Cloud yang mendukung RAM.action-name: nama operasi API terkait.
Dalam kebanyakan kasus, nilai elemen Action/NotAction tidak peka huruf besar-kecil. Namun, untuk menjaga perilaku yang konsisten, gunakan awalan operasi yang akurat <ram-code> dan nama operasi <action-name> sesuai dokumentasi otorisasi layanan Alibaba Cloud.
Contoh:
Contoh Action
"Action": [ "oss:ListBuckets", "ecs:Describe*", "rds:Describe*" ]Contoh NotAction
Contoh berikut mengizinkan semua operasi kecuali operasi RAM. Pernyataan kebijakan hanya mencantumkan operasi yang dikecualikan (ram:*) daripada semua operasi yang diizinkan, sehingga pernyataan menjadi lebih ringkas. Namun, ruang lingkup operasi yang diizinkan sangat luas. Gunakan pendekatan ini dengan hati-hati untuk memastikan bahwa kebijakan sesuai dengan harapan Anda.
{ "Effect": "Allow", "NotAction": "ram:*", "Resource": "*" }
Resource
Elemen Resource menentukan satu atau lebih objek yang dicakup oleh pernyataan tersebut. Elemen ini wajib dan hanya tersedia untuk kebijakan berbasis identitas.
Nilai yang valid untuk elemen Resource: Nama Sumber Daya Alibaba Cloud (ARN) dari sumber daya.
Format elemen Resource: acs:<ram-code>:<region>:<account-id>:<relative-id>. Gunakan ARN sumber daya yang akurat sesuai dokumentasi otorisasi layanan Alibaba Cloud.
Elemen Resource mencakup bidang-bidang berikut:
acs: singkatan dari Alibaba Cloud Service, yang menunjukkan platform cloud publik Alibaba Cloud.ram-code: kode RAM dari layanan Alibaba Cloud. Untuk informasi lebih lanjut, lihat kolom RAM Code di Layanan Alibaba Cloud yang mendukung RAM.region: informasi wilayah. Parameter ini disetel ke tanda bintang (*) untuk sumber daya global. Sumber daya global dapat diakses tanpa perlu menentukan wilayah. Untuk informasi lebih lanjut, lihat Wilayah dan zona.account-id: ID akun Alibaba Cloud. Contoh:123456789012****.relative-id: bagian deskripsi sumber daya yang terkait dengan layanan. Semantik dari bagian ini ditentukan oleh layanan Alibaba Cloud tertentu. Format elemen relative-id mirip dengan jalur file. Misalnya, format objek OSS adalah:relative-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 diperlukan agar kebijakan berlaku. Elemen ini opsional.
Elemen Condition dianggap sebagai blok kondisi, yang berisi satu atau lebih kondisi. Setiap kondisi terdiri dari operator kondisi, kunci kondisi, dan nilai kondisi.

Elemen Condition bersifat opsional. Sistem tidak memeriksa apakah elemen Condition ditentukan. Jika Anda ingin menentukan nilai untuk elemen Condition, pastikan bahwa ejaan dan kapitalisasi benar.
Nama (key) dari kunci kondisi bersifat peka huruf besar-kecil. Apakah nilai kondisi (value) peka huruf besar-kecil tergantung pada operator kondisional yang digunakan. Misalnya, jika kunci kondisi bertipe string dan Anda menggunakan operator kondisional StringEquals, sistem melakukan pencocokan peka huruf besar-kecil dengan membandingkan nilai dalam permintaan dengan nilai kondisi. Jika kunci bertipe string dan Anda menggunakan operator kondisional StringEqualsIgnoreCase, sistem melakukan pencocokan non-peka huruf besar-kecil dengan membandingkan nilai dalam permintaan dengan nilai kondisi.
Informasi berikut menggambarkan elemen Condition secara rinci:
Logika
Anda dapat menentukan satu atau lebih nilai untuk kunci kondisi. Jika nilai dalam permintaan cocok dengan salah satu nilai yang ditentukan, kondisi terpenuhi.
Kondisi dapat memiliki beberapa kunci yang terlampir pada satu operator kondisional. Jenis kondisi ini hanya terpenuhi jika semua persyaratan untuk kunci dipenuhi.
Blok kondisi hanya terpenuhi jika semua kondisi terpenuhi.
Kategori operator kondisional
Operator kondisional dapat diklasifikasikan ke dalam kategori berikut: string, angka, tanggal dan waktu, Boolean, dan alamat IP.
Kategori operator kondisional
Tipe yang didukung
String
StringEquals
StringNotEquals
StringEqualsIgnoreCase
StringNotEqualsIgnoreCase
StringLike
StringNotLike
Angka
NumericEquals
NumericNotEquals
NumericLessThan
NumericLessThanEquals
NumericGreaterThan
NumericGreaterThanEquals
Tanggal dan waktu
DateEquals
DateNotEquals
DateLessThan
DateLessThanEquals
DateGreaterThan
DateGreaterThanEquals
Boolean
Bool
Alamat IP
IpAddress
NotIpAddress
Kunci kondisi
Format kunci kondisi umum Alibaba Cloud:
acs:<condition-key>.Kunci kondisi umum
Tipe
Deskripsi
acs:CurrentTimeTanggal dan waktu
Waktu saat permintaan diterima oleh server web.
CatatanTentukan waktu dalam standar ISO 8601. Waktu harus dalam UTC.
Contohnya, pukul 20:00:00 pada tanggal 10 Januari 2023 dalam UTC+8 dapat dinyatakan sebagai
2023-01-10T20:00:00+08:00atau2023-01-10T12:00:00Z.acs:SecureTransportBoolean
Menentukan apakah saluran aman digunakan untuk mengirim permintaan. Misalnya, permintaan dapat dikirim melalui HTTPS.
acs:SourceIpAlamat IP
Alamat IP klien yang mengirim permintaan.
CatatanNilai dari
acs:SourceIpbisa berupa alamat IP tertentu atau blok CIDR. Jika nilainya adalah alamat IP tunggal, Anda harus menentukan alamat IP tertentu daripada blok CIDR. Misalnya, Anda harus menentukan 10.0.0.1 daripada 10.0.0.1/32.acs:MFAPresentBoolean
Menentukan apakah otentikasi multi-faktor (MFA) digunakan selama login pengguna.
CatatanJika parameter MFA Required For Sign-in dalam pengaturan keamanan pengguna RAM disetel ke Only When Risky Sign-in Is Detected, kondisi
acs:MFAPresentmenjadi tidak valid. Untuk informasi lebih lanjut, lihat Kelola pengaturan keamanan pengguna RAM.acs:PrincipalARNString
Identitas peminta. Kunci kondisi ini hanya dapat digunakan dalam kebijakan kontrol akses direktori sumber daya dan kebijakan kepercayaan peran RAM. Contohnya:
acs:ram:*:*:role/*resourcedirectory*.CatatanAnda hanya dapat menentukan ARN untuk peran RAM tertentu. Nama hanya dapat berisi huruf kecil. Anda dapat melihat ARN peran RAM di halaman detail peran di konsol RAM.
acs:PrincipalRDIdString
ID direktori sumber daya tempat akun Alibaba Cloud peminta berada. Kunci kondisi ini hanya dapat digunakan dalam kebijakan kepercayaan peran RAM dan kebijakan bucket OSS.
acs:PrincipalRDPathString
Path dalam direktori sumber daya tempat akun Alibaba Cloud peminta berada. Kunci kondisi ini hanya dapat digunakan dalam kebijakan kepercayaan peran RAM dan kebijakan bucket OSS.
acs:RequestTag/<tag-key>String
Tag yang dilewatkan dalam permintaan. <tag-key> menunjukkan kunci tag. Ganti <tag-key> dengan kunci tag sebenarnya. Untuk informasi tentang layanan Alibaba Cloud dan jenis sumber daya yang mendukung kunci kondisi ini, lihat informasi Resource Type Authorization di Layanan Alibaba Cloud yang mendukung tag.
acs:ResourceTag/<tag-key>String
Tag yang terikat pada sumber daya yang diminta. <tag-key> menunjukkan kunci tag. Ganti <tag-key> dengan kunci tag sebenarnya. Untuk informasi tentang layanan Alibaba Cloud dan jenis sumber daya yang mendukung kunci kondisi ini, lihat informasi Resource Type Authorization di Layanan Alibaba Cloud yang mendukung tag.
Format kunci kondisi tingkat layanan Alibaba Cloud:
<ram-code>:<condition-key>.Contohnya, kunci kondisi OSS
oss:Delimiterdigunakan untuk mengelompokkan nama objek saat permintaan ListObjects dikirim.Untuk informasi lebih lanjut tentang kunci kondisi setiap layanan cloud, lihat dokumen otorisasi masing-masing layanan cloud.
Contoh
Hubungan logis antara dua kondisi dalam pernyataan adalah DAN. Jika Anda ingin menetapkan hubungan logis antara kondisi menjadi ATAU, Anda harus menentukan kondisi secara terpisah dalam dua pernyataan.
Contoh 1: Izinkan hanya pengguna RAM yang telah mengaktifkan MFA dan berasal dari alamat IP 203.0.113.2 untuk mengakses instance ECS.
{ "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 yang telah mengaktifkan MFA atau berasal dari alamat IP 203.0.113.2 untuk mengakses instance ECS.
{ "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" ] } } } ] }
Referensi
Sintaks dan struktur kebijakan kontrol akses serupa dengan kebijakan izin di RAM. Untuk informasi lebih lanjut, lihat Struktur dan sintaks kebijakan.