Policy语法结构

Policy结构包括Policy版本号及授权语句列表。每个授权语句又包含Effect(授权类型)、Resource(资源列表)、Action(对资源所授予的操作权限列表)。

Policy的基本结构如下:

Policy的基本结构

支持语法格式

目前CIAM仅仅支持JSON格式的Policy描述。当创建或更新Policy时,CIAM会首先检查JSON格式的正确性。用户也可以使用一些在线的JSON格式验证器和编辑器来校验JSON文本的有效性。

Policy语法

语法描述:

{
    "Version": "1",
    "Statement":
    [
        {
            "Effect": "Allow | Deny",
            "Action": "*" | [ , , ...],
            "Resource": "*" | [, , ...]
        }
        ...
    ]
}

Policy语法说明:

  • 当前支持的Policy版本为1。
  • 一个Policy可以有多条授权语句(Statement)。每条授权语句要么是Deny,要么是Allow。一条授权语句中,Action是一个支持多个操作的列表,Resource也是一个支持多个对象的列表。
  • 一个用户可以被授予多个Policy,当这些Policy存在多条授权语句既包含有Allow又包含有Deny时,遵循Deny优先(只认Deny不认Allow)原则。
  • 当元素取值为字符串值时,可以支持()模糊匹配。比如,”cos:Get” 可以表示cos的所有以Get开头的API操作名称。

Version

权限策略版本号

Effect

Effect取值为Allow或Deny,代表允许或者拒绝该动作。比如,

"Effect": "Allow"

Action

授权动作,Action取值为云服务所定义的API操作名称,其格式定义如下:

:

格式说明:

  • service-name: 华云服务名称,如cec,cos等;
  • action-name: service相关的api操作接口名称

样例描述:

"Action": ["cos:ListBuckets","cec:Describe*"]

Resource

Resource通常指操作对象,比如CEC虚拟机实例,COS存储对象。我们使用如下格式来命名华云服务的资源。

ccs::::

格式说明:

  • ccs: Chinac Cloud Service的首字母缩写,表示华云公有云平台
  • service-name: 华云服务名称,如cec,cos,rds等
  • region: 数据中心,如果不支持该项,可以使用通配符“*”号来代替
  • account-id: 华云主账户ID,比如 1234567890123456,也可以用“*”代替
  • resource-relative-Id:每个服务定义的资源描述,可使用“*”。如在cos中,"ccs:cos:cn-hangzhou:123456789:bucket/1.txt" 表示一个对象,;

样例描述:

"Resource": ["ccs:cos:cn-hangzhou:1234567890:bucket/1.txt","ccs:cec:cn-hangzhou:*:*"]

Policy样例

下面该样例包含两条授权语句:第1条授权语句是允许对cos的mybucket存储桶中的对象具有读访问权限,第2条授权语句是允许对cec的杭州region所有资源有查看权限。

{
    "Version": "1",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "cos:ListObjects",
                "cos:GetObject"
            ],
            "Resource": [
                "ccs:cos:*:*:mybucket",
                "ccs:cos:*:*:mybucket/*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": "cec:Describe*",
            "Resource": "ccs:cec:cn-hangzhou:*:*"
        }
    ]
}