跳到主要内容

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: 云平台缩写
  • 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:*:*"
}
]
}