Condition öğesindeki işleçler, koşul anahtarlarını ve değerlerini birleştirerek koşullu ifadeler oluşturur. İstek bu koşulu karşıladığında ilke uygulanır. İşleçler beş türe ayrılır: dize, sayı, tarih ve saat, Boolean ve IP adresi. Bu konuda, Resource Access Management (RAM) tarafından desteklenen işleçler açıklanmakta ve örnekler sunulmaktadır.
Dize
|
Kategori |
İşleç |
Açıklama |
|
Dize |
StringEquals |
Tam eşleşen dizeyi bulur (büyük/küçük harfe duyarlı). |
|
StringNotEquals |
Tam eşleşen dizeyi bulmaz (büyük/küçük harfe duyarlı). |
|
|
StringEqualsIgnoreCase |
Tam eşleşen dizeyi bulur (büyük/küçük harfe duyarsız). |
|
|
StringNotEqualsIgnoreCase |
Tam eşleşen dizeyi bulmaz (büyük/küçük harfe duyarsız). |
|
|
StringLike |
Dize desenini eşleştirir (büyük/küçük harfe duyarlı, joker karakter olarak yıldız [
|
|
|
StringNotLike |
Dize desenini eşleştirmez (büyük/küçük harfe duyarlı, joker karakter olarak yıldız [
|
Örnekler:
StringEquals
Bu ilke, bir RAM kullanıcısının yalnızca team:dev etiketine sahip ECS örneklerini yönetmesine olanak tanır. İlke, Condition öğesinde StringEquals işlecini ve acs:ResourceTag koşul anahtarını kullanır.
{
"Effect": "Allow",
"Action": "ecs:*",
"Resource": "*",
"Condition": {
"StringEquals": {
"acs:ResourceTag/team": [
"dev"
]
}
}
}
StringLike
Bu ilke, bir RAM kullanıcısının OSS CLI kullanarak myphotos/hangzhou/2015/ klasörüne erişmesini ve içindeki nesneleri listelemesini sağlar. İlke, Condition öğesinde StringLike işlecini ve oss:Prefix koşul anahtarını kullanır. Bu yapılandırma, yalnızca hangzhou/2015/ önekine sahip nesnelerin listelenmesini garanti eder.
{
"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/*"
}
}
}
]
}
Sayı
|
Kategori |
İşleç |
Açıklama |
|
Sayı |
NumericEquals |
Eşittir. |
|
NumericNotEquals |
Eşit değildir. |
|
|
NumericLessThan |
Küçüktür. |
|
|
NumericLessThanEquals |
Küçük veya eşittir. |
|
|
NumericGreaterThan |
Büyüktür. |
|
|
NumericGreaterThanEquals |
Büyük veya eşittir. |
Örnek:
Bu ilke, kurtarma penceresi 10 gün veya daha az olarak ayarlandığında tüm RAM kullanıcılarının ve RAM rollerinin Key Management Service (KMS) kimlik bilgilerini silmesini engeller. İlke, Condition öğesinde NumericLessThanEquals işlecini ve kms:RecoveryWindowInDays koşul anahtarını kullanır.
{
"Statement": [
{
"Effect": "Deny",
"Action": "kms:DeleteSecret",
"Principal": "*",
"Resource": "*",
"Condition": {
"NumericLessThanEquals": {
"kms:RecoveryWindowInDays": "10"
}
}
}
]
}
Tarih ve saat
|
Kategori |
İşleç |
Açıklama |
|
Tarih ve saat |
DateEquals |
Eşittir. |
|
DateNotEquals |
Eşit değildir. |
|
|
DateLessThan |
Öncesidir. |
|
|
DateLessThanEquals |
Öncesi veya eşittir. |
|
|
DateGreaterThan |
Sonrasındadır. |
|
|
DateGreaterThanEquals |
Sonrası veya eşittir. |
Örnek:
Bu ilke, bir RAM kullanıcısının ECS örneklerine yalnızca 12 Ağustos 2019 tarihinde saat 17:00'dan (UTC+8) önce erişmesine izin verir. İlke, Condition öğesinde DateLessThan işlecini ve acs:CurrentTime koşul anahtarını kullanır.
{
"Statement": [
{
"Action": "ecs:*",
"Effect": "Allow",
"Resource": "*",
"Condition": {
"DateLessThan": {
"acs:CurrentTime": "2019-08-12T17:00:00+08:00"
}
}
}
],
"Version": "1"
}
Boolean
|
|
|
|
|
|
|
|
Örnek:
Bu ilke, yalnızca çok faktörlü kimlik doğrulama (MFA) özelliği etkinleştirilmiş RAM kullanıcılarının ECS örneklerine erişmesine izin verir. İlke, Condition öğesinde Bool işlecini ve acs:MFAPresent koşul anahtarını kullanır.
{
"Statement": [
{
"Action": "ecs:*",
"Effect": "Allow",
"Resource": "*",
"Condition": {
"Bool": {
"acs:MFAPresent": "true"
}
}
}
],
"Version": "1"
}
IP adresi
|
Kategori |
İşleç |
Açıklama |
|
IP adresi |
IpAddress |
Belirtilen IP adresini eşleştirir veya belirtilen CIDR bloğu içinde yer alır. |
|
NotIpAddress |
Belirtilen IP adresini eşleştirmez ve belirtilen CIDR bloğu içinde yer almaz. |
|
|
IpAddressIncludeBorder |
Belirtilen IP adresini veya CIDR bloğunu eşleştirir. Not
Yalnızca bazı cloud hizmetleri tarafından desteklenir. Bu işleci kullanmadan önce test edin. |
|
|
NotIpAddressIncludeBorder |
Belirtilen IP adresini veya CIDR bloğunu eşleştirmez. Not
Yalnızca bazı cloud hizmetleri tarafından desteklenir. Bu işleci kullanmadan önce test edin. |
Örnek:
Bu ilke, bir RAM kullanıcısının ECS örneklerine yalnızca 192.0.2.0/24 ve 203.0.113.2 IP adreslerinden erişmesine izin verir. İlke, Condition öğesinde IpAddress işlecini ve acs:SourceIp koşul anahtarını kullanır.
{
"Statement": [
{
"Action": "ecs:*",
"Effect": "Allow",
"Resource": "*",
"Condition": {
"IpAddress": {
"acs:SourceIp": [
"192.0.2.0/24",
"203.0.113.2"
]
}
}
}
],
"Version": "1"
}