访问控制策略语法

本文介绍访问控制的基本元素、语法结构和示例。

基本元素

访问控制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"

标签