Policy 基本元素是授权策略的基本组成部分,RAM 中使用授权策略来描述授权的具体内容,掌握 Policy 基本元素的基本知识可以更合理的使用授权策略。
Policy 基本元素
使用授权策略之前需要了解 Policy 基本元素。
元素名称 | 描述 |
---|---|
效力(Effect) | 授权效力包括两种:允许(Allow)和拒绝(Deny)。 |
操作(Action) | 操作是指对具体资源的操作。 |
资源(Resource) | 资源是指被授权的具体对象。 |
限制条件(Condition) | 限制条件是指授权生效的限制条件。 |
Policy 元素使用规则
- 效力(Effect)
取值为 Allow 或 Deny,例如:
"Effect": "Allow"
。 - 操作(Action)
Action 支持多值,取值为云服务所定义的 API 操作名称。
说明 操作是指对具体资源的操作,多数情况下 Action 与云产品的 API 一一对应,但也有例外。各产品支持的 Action 列表请参见各产品关于 RAM 授权的文档,您可以在支持RAM的云服务中查询相关文档的链接。格式:
<service-name>:<action-name>
。service-name
:阿里云产品名称。例如:ecs、rds、slb、oss 以及 ots 等。action-name: service
:相关的 API 操作接口名称。
描述样例:
"Action": ["oss:ListBuckets", "ecs:Describe*", "rds:Describe*"]
- 资源(Resource)
Resource 通常指资源,即操作对象。
格式:
acs:<service-name>:<region>:<account-id>:<relative-id>
。acs
:Alibaba Cloud Service 的首字母缩写,表示阿里云的公有云平台。service-name
:阿里云产品名称。例如:ecs、rds、slb、oss 以及 ots 等。region
:地域信息。如果不支持该项,可以使用通配符*
来代替。account-id
:账号 ID。例如:1234567890123456
,可以用*
代替。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 Block)由一个或多个条件子句构成。一个条件子句由条件操作类型、条件关键字和条件值组成。
图 1. 条件块判断逻辑 逻辑说明:
- 条件满足:一个条件关键字可以指定一个或多个值,在条件检查时,如果条件关键字的值与指定值中的某一个相同,即可判定条件满足。
- 条件子句满足:同一条件操作类型的条件子句下,若有多个条件关键字,所有条件关键字必须同时满足,才能判定该条件子句满足。
- 条件块满足:条件块下的所有条件子句同时满足的情况下,才能判定该条件块满足。
条件操作类型
条件操作类型包括:字符串类型(String)、数字类型(Numeric)、日期类型(Date and time)、布尔类型(Boolean)和 IP 地址类型(IP address)。
条件操作类型 支持类型 字符串类型(String) - StringEquals
- StringNotEquals
- StringEqualsIgnoreCase
- StringNotEqualsIgnoreCase
- StringLike
- StringNotLike
数字类型(Numeric) - 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>
阿里云产品级别条件关键字命名格式:
<service-name>:<condition-key>
表 1. 通用条件关键字 通用条件关键字 类型 说明 acs:CurrentTime Date and time Web Server 接收到请求的时间。以 ISO 8601 格式表示,例如:2012-11-11T23:59:59Z。 acs:SecureTransport Boolean 发送请求是否使用了安全信道。例如:HTTPS。 acs:SourceIp IP address 发送请求时的客户端 IP 地址。 acs:MFAPresent Boolean 用户登录时是否使用了多因素认证。 表 2. 产品级别条件关键字 产品名称 条件关键字 类型 说明 ECS ecs:tag/<tag-key> String ECS 资源的标签关键字,可自定义。 RDS rds:ResourceTag/<tag-key> String RDS 资源的标签关键字,可自定义。 OSS oss:Delimiter String OSS 对 Object 名字进行分组的分隔符。 OSS oss:Prefix String OSS Object 名称的前缀。
在文档使用中是否遇到以下问题
更多建议
匿名提交