更新时间:2026-02-05 gmt 08:00
策略语法-j9九游会登录
该部分提供了用于在iam中创建json策略的正式语法。提供此语法的目的是为了便于您理解如何构造和验证策略。
策略的json视图
策略在iam控制台中是以json视图表示的。当您创建或编辑json视图时,iam可以执行策略验证以帮助您创建有效的策略。iam可识别json语法错误,而iam access analyzer将提供额外的策略检查和建议,以帮助您进一步优化策略。要了解有关iam access analyzer策略检查的更多信息,请参见验证自定义身份策略。
一些基本的 json 规则介绍如下:
- 各实体间允许使用空格。
- 值使用引号括起来。
- 大部分 json 元素可以采用 json 数组作为值。数组可以采用一个或多个值。如果包含多个值,则数组用方括号 ([ 和 ]) 括起来并用逗号分隔,如以下示例中所示:
"action": ["iam:users:createuserv5", "iam:users:getuserv5", "iam:users:listusersv5", "iam:users:deleteuserv5"]
- 基本json数据类型 (布尔型、数字和字符串) 需符合rfc 7159中的定义。
策略语法约定
策略语法采用以下约定:
- 以下字符是json的结构字符,包含在策略中:
{ } [ ] " , :
- 以下字符是策略语法中的特殊字符,用于策略语法的辅助描述,不包含在策略中:
= < > ( ) |
- 当一个元素允很多个值时,使用重复值、逗号分隔符和省略号 (...) 进行表示。示例:
[
, , ...] 允许多个值时,只包含一个值也是有效的。只有一个值时,尾部不能添加逗号。
- 元素后的问号 (?) 表示该元素是可选的。示例:
- 元素之间的竖线 (|) 表示可选项。在语法中,小括号定义了可选项的范围。示例:
("action" | "notaction")
- 必须为字符串的元素括在双引号 (") 中。示例:
= "version" : ("5.0")
策略语法
下面示例描述了完整的策略语法。有关此示例中采用的约定,请参见策略语法约定。有关更多信息,请参见策略语法说明。
policy = {
,
}
= "version" : ("5.0")
= "statement" : [ , , ... ]
= {
,
,
,
,
}
= "sid" :
= "effect" : ("allow" | "deny")
= ("action" | "notaction") : [ , , ... ]
= "resource" : [ , , ... ]
= "condition" : { }
= {
: { : },
: { : },
...
}
= ( | [ , , ... ] )
= "string"
策略语法说明
- 身份策略整体的大小不能超过6144字节数。
- 一个策略可以包含一组statement。
- 单个元素不能包含同一个键的多个实例。例如,不能在同一statement中包含两个effect块。
- 各个块的描述顺序没有影响。例如,在身份策略中,effect_block、principal_block、action_block 在statement中可以按照任何顺序进行描述。
- principal_block 元素应该包含在资源策略中(例如,obs的桶策略和iam的信任策略),而不会出现在身份策略中。
- 每个字符串值 (sid_string、action_string、resource_string、condition_key_string 、condition_type_string) 都有其自己要求的格式或允许的值。
字符串值的说明
该部分提供了在策略的不同元素中使用的字符串值的详细信息。
- action_string
授权项(action)是三段式的,大小写不敏感,格式为:
: : - service-name:云服务简称,例如 'ecs','vpc';
- type-name:云服务资源类型名称;
- action-name:操作名称。
在action_string中也可以使用通配符,示例如下:"action": [ "iam:users:createuserv5", "iam:users:getuserv5", "iam:users:listusersv5", "iam:users:deleteuserv5" ] "action": [ "iam:*:*" ] "action": [ "*" ] - sid_string
用于标识单个statement,示例如下:
"sid": "11" "sid": "thisstatementid"
- resource_string
表示资源urn,要了解urn的更多信息,请参见使用urn标识华为云资源。您可以在urn的资源部分使用通配符,示例如下:
"resource": [ "iam:*:*:user:*" ] - condition_type_string
标识条件的类型,例如 stringequals和bool 等。有关条件类型的完整列表,请参见json元素参考中的运算符。
"condition": { "stringequals": { "g:username": [ "bob" ] } } - condition_key_string
- condition_value_list
标识 condition_key_string 的值,该值决定了是否满足条件。有关条件类型的值的说明,请参见json元素参考中的运算符。
"condition": { "forallvalues:stringequals": { "g:username": [ "bob", "alice" ] } }
父主题: 策略参考
相关文档
意见反馈
文档内容是否对您有帮助?
提交成功!非常感谢您的反馈,我们会继续努力做到更好!
您可在查看反馈及问题处理状态。
系统繁忙,请稍后重试
如您有其它疑问,您也可以通过华为云社区问答频道来与我们联系探讨