RCP语法介绍
下面以STS的自定义策略为例,说明策略的语法。
{
"Version": "5.0",
"Statement": [
{
"Effect": "Deny",
"Principal": "*",
"Action": [
"sts:agencies:assume"
],
"Condition": {
"Bool": {
"g:PrincipalIsService": [
"false"
]
}
}
}
]
}
策略结构
策略结构包括Version(策略版本号)和Statement(策略权限语句)两部分,其中Statement元素的值可以是多个对象组成的数组,表示不同的权限约束。

策略参数
策略参数包含Version和Statement两部分,下面介绍策略参数详细说明。
| 参数 | 是否必选 | 含义 | 值 | |
|---|---|---|---|---|
| Version | 必选 | 策略的版本。 | 5.0(不可自定义) | |
| Statement: 策略的授权语句 | Statement Sid | 可选 | 策略语句标识符。您可为语句数组中的每个策略语句指定Sid值。 | 用户自定义字符串(包含业务含义)。 |
| Effect:作用 | 必选 | 定义Action中的操作权限是否允许执行。 |
| |
| Principal | 必选 | 身份主体类型。 | 例如:"Principal": "*" :表示身份主体类型为所有身份。 | |
| Action:授权项 | Deny时可选 | 操作权限。 | 格式为“服务名:资源类型:操作” 例如“sts:agencies:assume”:表示获取资源访问的临时安全凭据权限,其中sts为服务名,agencies为资源类型,assume为操作。 | |
| Condition:条件 | Deny时可选。 | 格式为“条件运算符:{条件键:[条件值1,条件值2]}”。 如果您设置多个条件,同时满足所有条件时,该策略才生效。 示例: "Bool":{"g: PrincipalIsService":["false"]}:表示当不是云服务发起的请求时该条statement生效。 | ||
| Resource:资源类型 | 可选 未指定时,Resource默认为“*”,策略应用到所有资源。 | 策略所作用的资源。 | Deny时,可选择“*”或具体资源,格式为“服务名:region:domainId:资源类型:资源路径”, 资源类型支持通配符号*,通配符号*表示所有。 示例:"iam:*:*:agency:*":表示所有的委托。 | |
| NotResource: 排除在策略外的资源类型 | 可选 未指定时,参考Resource。 | 策略不作用的资源。 | ||
RCP中不支持以下元素:
- NotPrincipal
- NotAction
运算符
运算符与条件键、条件值一起构成完整的条件判断语句,当请求信息满足该条件时,策略才能生效。运算符可以增加后缀“IfExists”,表示对应请求值不存在或请求值存在且满足条件时均使策略生效,如“StringEqualsIfExists”表示请求值不存在或请求值等于条件值均使策略生效。详情请参见运算符。