创建或更新自定义管控策略前,您需要了解管控策略的基本元素。管控策略由效果(Effect)、操作(Action/NotAction)、资源(Resource)和条件(Condition)等基本元素组成。
| 元素名称 | 描述 | 
| 效果(Effect) | 授权效果。包括两种: 
 | 
| 操作(Action) | 操作是指对具体资源的操作。在一条策略语句中Action/NotAction只能二选一: 
 | 
| 资源(Resource) | 资源是指被授权的具体对象。 | 
| 条件(Condition) | 条件是指授权生效的条件。 | 
效果(Effect)
Effect元素用于指定授权的效果是允许或拒绝,是必选元素。
Effect元素的取值:Allow和Deny。
当权限策略中既有Allow又有Deny时,遵循Deny优先原则。
示例如下:
"Effect": "Allow"操作(Action/NotAction)
Action元素用于描述允许或拒绝的指定操作,NotAction元素用于描述允许或拒绝时例外的指定操作,即除了NotAction中指定的操作外,其余操作都允许或拒绝。Action/NotAction只能二选一,是必选元素。
Action/NotAction元素的取值:云服务所定义的API操作名称。
Action/NotAction元素的格式:<ram-code>:<action-name>。
- ram-code:云服务的RAM代码。更多信息,请参见支持RAM的云服务的RAM代码列。
- action-name:相关的API操作接口名称。
Action/NotAction元素的值在大部分情况下不区分大小写,但为了保持业务行为的一致性,请按照云服务提供的鉴权文档使用准确的操作前缀<ram-code>和操作名称<action-name>。
示例如下:
- Action示例 - "Action": [ "oss:ListBuckets", "ecs:Describe*", "rds:Describe*" ]
- NotAction示例 - 以下示例表示允许除RAM之外的所有操作。策略中仅列出了允许时的例外操作(ram:*),而不是允许的全部操作列表,策略语句较短。但是,允许的范围比较大,请务必谨慎使用,确保策略符合您的预期。 - { "Effect": "Allow", "NotAction": "ram:*", "Resource": "*" }
资源(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),它是由一个或多个条件子句构成。一个条件子句由条件操作类型、条件关键字和条件值组成。

因为Condition元素为可选元素,所以系统不会强制校验Condition元素的存在性。如要使用Condition元素指定授权生效的限制条件,请使用正确的拼写并注意区分大小写。
条件关键字的名称(key)严格区分大小写,条件值(value)是否区分大小写取决于您使用的条件运算符。例如:针对字符串类型的条件关键字,如果使用StringEquals运算符,则会将策略内容中的值和请求中的值进行匹配,区分大小写。如果使用StringEqualsIgnoreCase运算符,则会将策略内容中的值和请求中的值进行匹配,忽略大小写。
Condition元素的具体说明如下:
- 逻辑说明 - 条件满足:一个条件关键字可以指定一个或多个值,在条件检查时,如果条件关键字的值与指定值中的某一个相同(OR),即可判定条件满足。 
- 条件子句满足:同一条件操作类型的条件子句下,若有多个条件关键字,所有条件关键字必须同时满足(AND),才能判定该条件子句满足。 
- 条件块满足:条件块下的所有条件子句同时满足(AND)的情况下,才能判定该条件块满足。 
 
- 条件操作类型 - 条件操作类型包括:字符串类型(String)、数字类型(Number)、日期类型(Date and time)、布尔类型(Boolean)和IP地址类型(IP address)。 条件运算符含义及示例,请参见条件运算符。 
- 条件关键字 - 阿里云通用条件关键字命名格式: - acs:<condition-key>。- 通用条件关键字 - 类型 - 描述 - acs:CurrentTime- Date and time - Web Server接收到请求的时间。 说明- 使用UTC时间并按照ISO 8601标准。 - 例如:北京时间2023年01月10日20点00分00秒,表示为 - 2023-01-10T20:00:00+08:00或- 2023-01-10T12:00:00Z。- acs:SecureTransport- Boolean - 发送请求是否使用了安全信道。例如:HTTPS。 - acs:SourceIp- IP address - 发送请求时的客户端IP地址。 说明- acs:SourceIp的取值支持具体IP地址和CIDR形式的IP地址段。 禁止将具体IP地址写成CIDR形式,例如:10.0.0.1不能写成10.0.0.1/32。- acs:MFAPresent- Boolean - 用户登录时是否使用了多因素认证(MFA)。 说明- 如果RAM用户安全设置中的登录时必须使用MFA为仅异常登录时使用,那么 - acs:MFAPresent条件就会失效。更多信息,请参见管理RAM用户安全设置。- acs:PrincipalARN- String - 请求主体的身份。仅限在资源目录管控策略和RAM角色信任策略中使用。例如: - acs:ram:*:*:role/*resourcedirectory*。说明- 目前,只支持指定RAM角色的ARN,且必须为小写英文字母。(您可以在RAM控制台的角色详情页面查看RAM角色的ARN)。 - acs:PrincipalRDId- String - 请求主体所属云账号所在的资源目录ID。仅限在RAM角色信任策略和OSS Bucket Policy中使用。 - acs:PrincipalRDPath- String - 请求主体所属云账号所在的资源目录中的路径。仅限在RAM角色信任策略和OSS Bucket Policy中使用。 - acs:RequestTag/<tag-key>- String - 请求中传递的标签信息。<tag-key>为标签键,请在使用时替换为实际值。支持的云服务及资源类型,请参见支持标签的云服务中的资源类型鉴权信息。 - acs:ResourceTag/<tag-key>- String - 请求访问的资源上绑定的标签信息。<tag-key>为标签键,请在使用时替换为实际值。支持的云服务及资源类型,请参见支持标签的云服务中的资源类型鉴权信息。 
- 阿里云服务级别条件关键字命名格式: - <ram-code>:<condition-key>。- 例如:OSS的条件关键字 - oss:Delimiter,用于ListObjects请求时,对Object名字进行分组的字符。- 各云服务的条件关键字,请参见各云服务的授权信息文档。 
 
- 条件示例 - 一条授权语句中的条件是同时满足(AND)的关系,如果您想设置的条件是或(OR)的关系,您需要将条件分别写在两条授权语句中。 - 示例1:限制只有开启了MFA且从IP地址203.0.113.2发起访问的RAM用户才能访问ECS实例。 - { "Version": "1", "Statement": [ { "Effect": "Allow", "Action": "ecs:*", "Resource": "*", "Condition": { "IpAddress": { "acs:SourceIp": [ "203.0.113.2" ] }, "Bool": { "acs:MFAPresent": [ "true" ] } } } ] }- 示例2:限制只有开启了MFA的RAM用户或从IP地址203.0.113.2发起访问的RAM用户才能访问ECS实例。 - { "Version": "1", "Statement": [ { "Effect": "Allow", "Action": "ecs:*", "Resource": "*", "Condition": { "IpAddress": { "acs:SourceIp": [ "203.0.113.2" ] } } }, { "Effect": "Allow", "Action": "ecs:*", "Resource": "*", "Condition": { "Bool": { "acs:MFAPresent": [ "true" ] } } } ] }