Condition中的運算子與條件鍵、條件值一起構成完整的條件判斷語句,當請求滿足該條件時,策略才會生效。按照類型將運算子分為五類:字串類型(String)、數字類型(Number)、日期類型(Date and time)、布爾類型(Boolean)和IP地址類型(IP address)。本文為您介紹RAM支援的運算子及樣本。
字串類型(String)
條件操作類型 | 運算子 | 描述 |
字串類型(String) | StringEquals | 字串等於(區分大小寫)。 |
StringNotEquals | 字串不等於(區分大小寫)。 | |
StringEqualsIgnoreCase | 字串等於(不區分大小寫)。 | |
StringNotEqualsIgnoreCase | 字串不等於(不區分大小寫)。 | |
StringLike | 部分字串等於(區分大小寫,支援萬用字元
| |
StringNotLike | 部分字串不等於(區分大小寫,支援萬用字元
|
樣本:
StringEquals樣本
以下策略在Condition中使用運算子StringEquals和條件關鍵字acs:ResourceTag,實現RAM使用者只能對綁定了標籤team:dev的ECS執行個體進行管理操作。
{
"Effect": "Allow",
"Action": "ecs:*",
"Resource": "*",
"Condition": {
"StringEquals": {
"acs:ResourceTag/team": [
"dev"
]
}
}
}StringLike樣本
以下策略表示:RAM使用者使用OSS命令列工具只能訪問myphotos/hangzhou/2015/目錄並列出該目錄下的檔案。策略在Condition中使用運算子StringLike和條件關鍵字oss:Prefix,實現僅列舉指定首碼(hangzhou/2015/)的Object。
{
"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/*"
}
}
}
]
}數字類型(Number)
條件操作類型 | 運算子 | 描述 |
數字類型(Number) | NumericEquals | 數值等於。 |
NumericNotEquals | 數值不等於。 | |
NumericLessThan | 數值小於。 | |
NumericLessThanEquals | 數值小於等於。 | |
NumericGreaterThan | 數值大於。 | |
NumericGreaterThanEquals | 數值大於等於。 |
樣本:
以下策略在Condition中使用運算子NumericLessThanEquals和條件關鍵字kms:RecoveryWindowInDays,實現當設定的恢複視窗期小於等於10天時,拒絕所有RAM使用者和RAM角色刪除KMS憑據。
{
"Statement": [
{
"Effect": "Deny",
"Action": "kms:DeleteSecret",
"Principal": "*",
"Resource": "*",
"Condition": {
"NumericLessThanEquals": {
"kms:RecoveryWindowInDays": "10"
}
}
}
]
}
日期類型(Date and time)
條件操作類型 | 運算子 | 描述 |
日期類型(Date and time) | DateEquals | 日期等於。 |
DateNotEquals | 日期不等於。 | |
DateLessThan | 日期小於。 | |
DateLessThanEquals | 日期小於等於。 | |
DateGreaterThan | 日期大於。 | |
DateGreaterThanEquals | 日期大於等於。 |
樣本:
以下策略在Condition中使用運算子DateLessThan和條件關鍵字acs:CurrentTime,實現RAM使用者只能在指定時間點(北京時間2019年8月12日17:00)之前訪問ECS執行個體。
{
"Statement": [
{
"Action": "ecs:*",
"Effect": "Allow",
"Resource": "*",
"Condition": {
"DateLessThan": {
"acs:CurrentTime": "2019-08-12T17:00:00+08:00"
}
}
}
],
"Version": "1"
}布爾類型(Boolean)
條件操作類型 | 運算子 | 描述 |
布爾類型(Boolean) | Bool | 布爾值( |
樣本:
以下策略在Condition中使用運算子Bool和條件關鍵字acs:MFAPresent,實現只有啟用了MFA的RAM使用者才能訪問ECS執行個體。
{
"Statement": [
{
"Action": "ecs:*",
"Effect": "Allow",
"Resource": "*",
"Condition": {
"Bool": {
"acs:MFAPresent": "true"
}
}
}
],
"Version": "1"
}IP地址類型(IP address)
條件操作類型 | 運算子 | 描述 |
IP地址類型(IP address) | IpAddress | IP地址等於(不包含首尾邊界值)。 |
NotIpAddress | IP地址不等於(不包含首尾邊界值)。 | |
IpAddressIncludeBorder | IP地址等於(包含首尾邊界值)。 說明 僅部分產品支援,建議您測試後使用。 | |
NotIpAddressIncludeBorder | IP地址不等於(包含首尾邊界值)。 說明 僅部分產品支援,建議您測試後使用。 |
樣本:
以下策略在Condition中使用運算子IpAddress和條件關鍵字acs:SourceIp,實現RAM使用者只能通過192.0.2.0/24和203.0.113.2訪問ECS執行個體。
{
"Statement": [
{
"Action": "ecs:*",
"Effect": "Allow",
"Resource": "*",
"Condition": {
"IpAddress": {
"acs:SourceIp": [
"192.0.2.0/24",
"203.0.113.2"
]
}
}
}
],
"Version": "1"
}