访问控制策略语法
本文介绍访问控制的基本元素、语法结构和示例。
基本元素
访问控制Policy包含以下基本元素:content(策略内容)、permission(允许的操作类型)、resource(允许操作的资源)、ids(指定资源的IDs)、type(指定资源的类型)和version(策略版本)。
- contentPolicy的内容包含一组或多组授权详情。每一组授权详情都指定了被授权的资源(resource)和操作(permission)。
- type也就是产品线的servicename,详情请参考支持访问控制的服务
- permission支持3种类型的资源操作,即读(R,指Read)、改(M,指Modify)、删除(D,指Delete)。例如,查看云主机详情是读操作,备份或重启云主机均属于改操作,删除镜像是删除操作。当需要授权多种操作类型时,可以用竖线"|"将操作类型隔开。如,仅授权只读操作时,permission为"R";授权管理员权限时,permission为"R|M|D"。
注:如果授权子账号改权限(M)和删除权限(D),则子账号默认也具有读权限(R)。
- resource被授权的资源由资源类型(type)和资源ID(ids)指定。
- ids指定被授权的一个或多个资源IDs。ids支持通配符,用于授权对象是某一类资源,而不是指定资源ID的场景。
- versionPolicy的版本,v2。
Policy的语法结构
Policy的语法结构所示。
Policy的语法应符合JSON格式。如果你创建的授权策略不符合JSON语法,将无法保存成功。很多在线JSON格式检查工具都可以检查策略的格式错误。
Policy的语法描述policy={content,version}
其中Content的描述可以包含一组或多组Permission和Resource对:
content="content":[{permission,resource},{permission,resource}]
permission中的内容为(以管理员权限为例):
"permission":"R|M|D"
resource中需要指定资源的类型和IDs:
"resource":[{ids,type}]
ids中的可指定一个或多个资源(以指定资源ID为例):
"ids":["resource-id1","resource-id2"]
type为指定产品线的servicename:
"type":"servicename"