Operator dalam elemen Condition menggabungkan kunci kondisi dan nilai untuk membentuk pernyataan bersyarat. Kebijakan diberlakukan ketika suatu permintaan memenuhi kondisi tersebut. Operator dikategorikan ke dalam lima jenis: String, Angka, Tanggal dan Waktu, Boolean, serta Alamat IP. Topik ini menjelaskan operator yang didukung oleh Resource Access Management (RAM) beserta contohnya.
String
Operasi Bersyarat | Operator | Deskripsi |
String | StringEquals | String sama dengan (peka huruf besar/kecil). |
StringNotEquals | String tidak sama dengan (peka huruf besar/kecil). | |
StringEqualsIgnoreCase | String sama dengan (tidak peka huruf besar/kecil). | |
StringNotEqualsIgnoreCase | String tidak sama dengan (tidak peka huruf besar/kecil). | |
StringLike | String sebagian sama dengan (peka huruf besar/kecil, mendukung karakter wildcard
| |
StringNotLike | String sebagian tidak sama dengan (peka huruf besar/kecil, mendukung karakter wildcard
|
Contoh:
Contoh StringEquals
Kebijakan ini memungkinkan Pengguna RAM untuk mengelola hanya Instance ECS yang memiliki tag team:dev. Kebijakan ini menggunakan operator StringEquals dan kunci kondisi acs:ResourceTag dalam elemen Condition.
{
"Effect": "Allow",
"Action": "ecs:*",
"Resource": "*",
"Condition": {
"StringEquals": {
"acs:ResourceTag/team": [
"dev"
]
}
}
}Contoh StringLike
Kebijakan ini memungkinkan Pengguna RAM menggunakan antarmuka baris perintah OSS untuk mengakses folder myphotos/hangzhou/2015/ dan menampilkan daftar file di dalamnya. Kebijakan ini menggunakan operator StringLike dan kunci kondisi oss:Prefix dalam elemen Condition, sehingga hanya objek dengan awalan `hangzhou/2015/` yang ditampilkan.
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": [
"oss:GetObject"
],
"Resource": [
"acs:oss:*:*:myphotos/hangzhou/2015/*"
]
},
{
"Effect": "Allow",
"Action": [
"oss:ListObjects"
],
"Resource": [
"acs:oss:*:*:myphotos"
],
"Condition":{
"StringLike":{
"oss:Prefix":"hangzhou/2015/*"
}
}
}
]
}Angka
Jenis Operasi Bersyarat | Operator | Deskripsi |
Angka | NumericEquals | Angka sama dengan. |
NumericNotEquals | Angka tidak sama dengan. | |
NumericLessThan | Kurang dari | |
NumericLessThanEquals | Angka kurang dari atau sama dengan. | |
NumericGreaterThan | Angka lebih besar dari. | |
NumericGreaterThanEquals | Angka lebih besar dari atau sama dengan. |
Contoh:
Kebijakan ini menolak semua Pengguna RAM dan Peran RAM dari menghapus kredensial KMS jika jendela pemulihan diatur menjadi 10 hari atau kurang. Kebijakan ini menggunakan operator NumericLessThanEquals dan kunci kondisi kms:RecoveryWindowInDays dalam elemen Condition.
{
"Statement": [
{
"Effect": "Deny",
"Action": "kms:DeleteSecret",
"Principal": "*",
"Resource": "*",
"Condition": {
"NumericLessThanEquals": {
"kms:RecoveryWindowInDays": "10"
}
}
}
]
}
Tanggal dan waktu
Operasi Bersyarat | Operator | Deskripsi |
Tanggal dan waktu | DateEquals | Tanggal sama dengan. |
DateNotEquals | Tanggal tidak sama dengan. | |
DateLessThan | Tanggal lebih awal dari. | |
DateLessThanEquals | Tanggal lebih awal dari atau sama dengan. | |
DateGreaterThan | Tanggal lebih lambat dari. | |
DateGreaterThanEquals | Tanggal lebih lambat dari atau sama dengan. |
Contoh:
Kebijakan ini memungkinkan Pengguna RAM untuk mengakses Instance ECS hanya sebelum pukul 17.00 pada 12 Agustus 2019 (UTC+8). Kebijakan ini menggunakan operator DateLessThan dan kunci kondisi acs:CurrentTime dalam elemen Condition.
{
"Statement": [
{
"Action": "ecs:*",
"Effect": "Allow",
"Resource": "*",
"Condition": {
"DateLessThan": {
"acs:CurrentTime": "2019-08-12T17:00:00+08:00"
}
}
}
],
"Version": "1"
}Boolean
Operasi Bersyarat | Operator | Deskripsi |
Boolean | Bool | Pencocokan Nilai Boolean ( |
Contoh:
Kebijakan ini hanya memungkinkan Pengguna RAM yang telah mengaktifkan otentikasi multi-faktor (MFA) untuk mengakses Instance ECS. Kebijakan ini menggunakan operator Bool dan kunci kondisi acs:MFAPresent dalam elemen Condition.
{
"Statement": [
{
"Action": "ecs:*",
"Effect": "Allow",
"Resource": "*",
"Condition": {
"Bool": {
"acs:MFAPresent": "true"
}
}
}
],
"Version": "1"
}Alamat IP
Operator Kondisi | Operator | Deskripsi |
Alamat IP | IpAddress | Alamat IP sama dengan nilai (tidak termasuk nilai batas awal dan akhir). |
NotIpAddress | Tidak cocok dengan alamat IP atau rentang alamat IP yang ditentukan. | |
IpAddressIncludeBorder | Cocok dengan alamat IP atau rentang alamat IP yang ditentukan, termasuk nilai batas. Catatan Hanya didukung oleh beberapa Produk. Uji operator ini sebelum digunakan. | |
NotIpAddressIncludeBorder | Tidak cocok dengan alamat IP atau rentang alamat IP yang ditentukan, termasuk nilai batas. Catatan Hanya didukung oleh beberapa Produk. Uji operator ini sebelum digunakan. |
Contoh:
Kebijakan ini memungkinkan Pengguna RAM untuk mengakses Instance ECS hanya dari alamat IP `192.0.2.0/24` dan `203.0.113.2`. Kebijakan ini menggunakan operator IpAddress dan kunci kondisi acs:SourceIp dalam elemen Condition.
{
"Statement": [
{
"Action": "ecs:*",
"Effect": "Allow",
"Resource": "*",
"Condition": {
"IpAddress": {
"acs:SourceIp": [
"192.0.2.0/24",
"203.0.113.2"
]
}
}
}
],
"Version": "1"
}