最近更新时间:2023-11-16 19:10:43
本文介绍IAM中权限策略的语法和结构,帮助您正确理解权限策略语法,以完成创建或更新权限策略。
运用策略语法前,您应了解策略字符及其使用规则。
{ } [ ] " , :
。= < > ( ) |
。[ <action_string>, <action_string>, ...]
。"Action": [<action_string>] 和 "Action": <action_string>
。<condition_block?>
。("Allow" | "Deny")
。<version_block> = "Version" : ("1")
。元素名称 | 是否必须 | 描述 |
---|---|---|
Version(版本) | 否 | 形如"Version":"2015-11-01" ,用于说明策略文档的版本。目前金山云的策略文档版本只有一个取值,2015-11-01,如果策略中没有Version元素,其默认值为2015-11-01 |
Statement(授权规则) | 是 | 形如"Statement":[{...},{...},{...}] ,策略的主元素,用于说明具体授权规则。每个Statement元素可以包含多条语句,每条语句用 {} 括起来说明。 |
Sid | 否 | 形如"Sid":"1" ,Statement的语句标识符,可被省略,在一个策略中需要保持唯一性。 |
Effect(效力) | 是 | 形如"Effect":"Allow" ,Statement的授权规则的组成元素,每条授权规则必须包括该元素(1)只有两种取值 Allow 或者Deny ,分别表明“显示授权”和“显示拒绝”。(2)权限策略中既有允许(Allow)又有拒绝(Deny)的授权语句时,遵循Deny优先的原则。 |
Action(操作) | 是 | 形如"Action":"iam:CreateUser" ,Statement的授权规则的组成元素,每条授权规则必须包括该元素。(1)操作支持多值,取值为:云服务所定义的API操作名称。 (2)格式: (3)service-name和action-name的值不区分大小写,操作名称可以包含通配符 * 。 |
Resource(资源) | 是 | 形如"Resource":"KRN" ,Resource是被授权的具体资源对象。(1)每种service的resource各不相同,可以使用 * 来表示全体资源对象。(2)同时也遵金山云KRN的统一命名规范,详细格式请查看金山云KRN. |
权限策略结构包括:
policy = {
<version_block?>
<statment_block>
}
<version_block> = "Version" : "2015-11-01"
<statement_block> = "Statement" : [<statement>, <statement>, ...]
<statement> = {
<sid_block?>,
<effect_block>,
<action_block>,
<resoure_block>
}
<sid_block> = "Sid" : <sid_string>
<effect_block> = "Effect" : ("Allow" | "Deny")
<action_block> = "Action" : ( "*" | [<action_string>, <action_string>, ...])
<resoure_block> = "Resource" : ( "*" | [<resoure_string>, <resoure_string>, ...])
<action_string> = "service_name : action_name"
<resource_string> = "KRN"
如:云主机(KEC)管理员的权限的策略文档示例
{
"Version" : "2015-11-01",
"Statement" : [
{
"Effect" : "Allow",
"Action" : "KEC:*",
"Resource" : "*"
}
]
}
纯净模式