创建或更新自定义管控策略前,您需要了解管控策略的基本元素。管控策略由效果(Effect)、操作(Action)、资源(Resource)和条件(Condition)等基本元素组成。
元素名称 | 描述 |
---|---|
效果(Effect) | 授权效果包括两种:允许(Allow)和拒绝(Deny)。 |
操作(Action) | 操作是指对具体资源的操作。 |
资源(Resource) | 资源是指被授权的具体对象。 |
条件(Condition) | 条件是指授权生效的条件。 |
效果(Effect)
Effect元素用于指定授权的效果是允许或拒绝,是必选元素。Effect元素的取值:Allow和Deny。
示例如下:
"Effect": "Allow"
操作(Action)
Action元素用于描述允许或拒绝的特定操作,是必选元素。Action元素的取值:云服务所定义的API操作名称。
Action元素的格式为<ram-code>:<action-name>
。
ram-code
:云服务的RAM代码。更多信息,请参见支持RAM的云服务的RAM代码列。action-name
:相关的API操作接口名称。
Action元素的值在大部分情况下不区分大小写,但为了保持业务行为的一致性,请按照云服务提供的鉴权文档使用准确的操作前缀<ram-code>
和操作名称<action-name>
。
示例如下:
"Action": [
"oss:ListBuckets",
"ecs:Describe*",
"rds:Describe*"
]
资源(Resource)
Resource元素用于描述被授权的一个或多个对象,适用于基于身份的策略,是必选元素。Resource元素的取值:云服务所定义的资源ARN(Aliyun Resource Name)。
Resource元素的格式为acs:<ram-code>:<region>:<account-id>:<relative-id>
,请按照云服务提供的鉴权文档使用准确的资源ARN。格式说明如下:
acs
:Alibaba Cloud Service的首字母缩写,表示阿里云的公共云平台。ram-code
:云服务RAM代码。更多信息,请参见支持RAM的云服务的RAM代码列。region
:地域信息。对于全局资源(无需指定地域就可以访问的资源),该字段用星号(*)表示。更多信息,请参见地域和可用区。account-id
:阿里云账号ID。例如:123456789012****
。relative-id
:与服务相关的资源描述部分,其语义由具体云服务指定。这部分的格式支持树状结构(类似文件路径)。以OSS为例,表示一个OSS对象的格式为:relative-id = “mybucket/dir1/object1.jpg”
。
示例如下:
"Resource": [
"acs:ecs:*:*:instance/inst-001",
"acs:ecs:*:*:instance/inst-002",
"acs:oss:*:*:mybucket",
"acs:oss:*:*:mybucket/*"
]
条件(Condition)
Condition元素用于指定授权生效的限制条件,是可选元素。Condition元素也称为条件块(Condition Block),它是由一个或多个条件子句构成。一个条件子句由条件操作类型、条件关键字和条件值组成。

条件关键字的名称(key)严格区分大小写,条件值(value)是否区分大小写取决于您使用的条件运算符。例如:针对字符串类型的条件关键字,如果使用StringEquals运算符,则会将策略内容中的值和请求中的值进行匹配,区分大小写。如果使用StringEqualsIgnoreCase运算符,则会将策略内容中的值和请求中的值进行匹配,忽略大小写。
Condition元素的具体说明如下:
- 逻辑说明
- 条件满足:一个条件关键字可以指定一个或多个值,在条件检查时,如果条件关键字的值与指定值中的某一个相同,即可判定条件满足。
- 条件子句满足:同一条件操作类型的条件子句下,若有多个条件关键字,所有条件关键字必须同时满足,才能判定该条件子句满足。
- 条件块满足:条件块下的所有条件子句同时满足的情况下,才能判定该条件块满足。
- 条件操作类型
条件操作类型包括:字符串类型(String)、数字类型(Number)、日期类型(Date and time)、布尔类型(Boolean)和IP地址类型(IP address)。
条件操作类型 支持类型 字符串类型(String) - StringEquals
- StringNotEquals
- StringEqualsIgnoreCase
- StringNotEqualsIgnoreCase
- StringLike
- StringNotLike
数字类型(Number) - NumericEquals
- NumericNotEquals
- NumericLessThan
- NumericLessThanEquals
- NumericGreaterThan
- NumericGreaterThanEquals
日期类型(Date and time) - DateEquals
- DateNotEquals
- DateLessThan
- DateLessThanEquals
- DateGreaterThan
- DateGreaterThanEquals
布尔类型(Boolean) Bool IP地址类型(IP address) - IpAddress
- NotIpAddress
- 条件关键字
- 阿里云通用条件关键字命名格式:
acs:<condition-key>
。通用条件关键字 类型 描述 acs:CurrentTime
Date and time Web Server接收到请求的时间。以ISO 8601格式表示,例如: 2012-11-11T23:59:59Z
。acs:SecureTransport
Boolean 发送请求是否使用了安全信道。例如:HTTPS。 acs:SourceIp
IP address 发送请求时的客户端IP地址。 说明acs:SourceIp
的取值如果是单个IP地址,需要写明具体的IP地址,不能使用该IP地址的IP地址段形式xx.xx.xx.xx/32。例如:10.0.0.1不能写成10.0.0.1/32。acs:MFAPresent
Boolean 用户登录时是否使用了多因素认证(MFA)。 acs:PrincipalARN
String 仅限资源目录管控策略和RAM角色信任策略中使用,用于表示操作执行者的身份。例如: acs:ram:*:*:role/*resourcedirectory*
。说明 目前,只支持指定RAM角色的ARN,且必须为小写英文字母。(您可以在RAM控制台的角色详情页面查看RAM角色的ARN)。 - 阿里云服务级别条件关键字命名格式:
<ram-code>:<condition-key>
。服务级别条件关键字 云服务名称 类型 描述 ecs:tag/<tag-key>
ECS String ECS资源的标签关键字,可自定义。 说明 <tag-key>为标签键,请在使用时替换为实际值。rds:ResourceTag/<tag-key>
RDS String RDS资源的标签关键字,可自定义。 说明 <tag-key>为标签键,请在使用时替换为实际值。oss:Delimiter
OSS String OSS对Object名字进行分组的分隔符。 oss:Prefix
OSS String OSS Object名称的前缀。
- 阿里云通用条件关键字命名格式:
相关文档
管控策略语法和结构与RAM的基本相同。更多信息,请参见权限策略语法和结构。