新建自定义策略 IfExists条件运算符 IfExists:如果请求的内容中存在关键字,则依照策略所述的条件来处理关键字。如果该关键字不存在,则条件元素的计算结果将为true。 目前仅Bool型和数字类型的运算符支持使用IfExists条件运算符,表达形式:运算符IfExists,例如BoolIfExists、NumericEqualsIfExists。对于…IfExists的使用见示例1和示例2。 示例1 拒绝没有使用MFA认证的控制台请求,不拒绝使用MFA认证的控制台请求和使用密钥的API请求。但如果允许使用MFA认证的控制台请求和使用密钥的API请求,需要再写显性允许语句。 "Effect" : "Deny", "Condition" : { "Bool" : { "ctyun:MultiFactorAuthPresent" : false } } 拒绝没有使用MFA认证的控制台请求及使用密钥的API请求,不拒绝MFA认证的控制台请求。但如果允许MFA认证的控制台请求,需要再写显性允许语句。 "Effect" : "Deny", "Condition" : { "BoolIfExists" : { "ctyun:MultiFactorAuthPresent" : false } } 示例2 允许使用MFA认证在1800秒内的请求及使用密钥的API请求。 "Effect" : "Allow", "Condition" : { " NumericLessThanEqualsIfExists" : { "ctyun:MultiFactorAuthAge " : 1800 } } 允许使用MFA认证在1800秒内的请求,但不允许MFA认证超过1800秒以上及没有使用MFA的请求(包括API请求)。 "Effect" : "Allow", "Condition" : { " NumericLessThanEquals" : { "ctyun:MultiFactorAuthAge " : 1800 } }