文档中心 访问控制 Policy 结构和语法

Policy 结构和语法

更新时间:2023-12-13 19:54:45

Policy 结构

Policy 结构包括:版本号及授权语句(Statement)列表。
每条授权语句包括:Effect(授权效力)、Action(操作列表)、Resource(资源列表)。

运用 Policy 语法的前提条件

运用 Policy 语法前,首先应了解 Policy 字符及其使用规则。

  • Policy 字符
    Policy 中所包含的 JSON 字符:{ } [ ] " , :。
    描述语法使用的特殊字符:= < > ( ) |。

Policy 字符使用规则

  • 当一个元素允许多值时,使用逗号和省略号来表达。例如:[ , , …]。
说明:在所有支持多值的元素中,使用单值进行表达也是有效的,且两种表达方式效果相同。例如: "Action": \[\] 和 "Action":
  • 元素带有问号表示此元素是一个可选元素。
  • 多值之间用竖线 | 隔开,表示取值只能选取这些值中的某一个。例如:(“Allow” | “Deny”)。
  • 使用双引号的元素,表示此元素是文本串。例如: = “Version” : (“1”)。

Policy 语法说明

版本: 当前支持的 Policy 版本为 1。
授权语句: 一个 Policy 可以有多条授权语句。

  • 每条授权语句的效力是Allow或Deny 。
说明:一条授权语句中,Action(操作)和 Resource(资源)都支持多值。
  • 每条授权语句都支持独立的限制条件(Condition)(暂未支持)。
说明:一个条件块可以支持多种条件操作类型,以及多种条件的逻辑组合。

Deny 优先原则: 一个用户可以被授予多个权限策略,当这些权限策略同时包含Allow和 Deny时,遵循 Deny 优先原则。
元素取值:

  • 当取值为数字(Number)或布尔值(Boolean)时,与字符串类似,需要使用双引号。
  • 当元素取值为字符串值(String)时,支持使用*和?进行模糊匹配。
  • 代表 0 个或多个任意的英文字母。
说明:例如:ecs:Describe* 表示 ecs 的所有以 Describe 开头的 action。
  • ? 代表 1 个任意的英文字母。

Policy 格式检查

IAM 仅支持 JSON 格式。当创建或更新权限策略时,IAM 会首先检查 JSON 格式的正确性。

  • 关于 JSON 的语法标准请参考 RFC 7159 。
  • 您也可以使用一些在线的 JSON 格式验证器和编辑器来校验 JSON 文本的有效性。
本篇文档内容对您是否有帮助?
有帮助
我要反馈
提交成功!非常感谢您的反馈,我们会继续努力做到更好!