官网地址html
1. 效力(Effect)
受权效力包括两种:容许(Allow)和拒绝(Deny)。
2. 资源(Resource)
资源是指被受权的具体对象。
3. 操做(Action)
操做是指对具体资源的操做。
4. 限制条件(Condition)
限制条件是指受权生效的限制条件。安全
1. Effect(效力)
Effect 取值 为 Allow 或 Deny。好比,阿里云
"Effect": "Allow"
2. Action(操做列表)
Action 支持多值,取值为云服务所定义的 API 操做名称,其格式定义以下:code
<service-name>:<action-name>
格式说明htm
描述样例对象
"Action": ["oss:ListBuckets", "ecs:Describe*", "rds:Describe*"]
3. Resource(资源列表)
Resource 一般指资源,即操做对象,好比 ECS 虚拟机实例,OSS存储桶。咱们使用以下格式来命名阿里云服务的资源命名。blog
acs:<service-name>:<region>:<account-id>:<relative-id>
格式说明:接口
描述样例资源
"Resource": ["acs:ecs:*:*:instance/inst-001", "acs:ecs:*:*:instance/inst-002", "acs:oss:*:*:mybucket", "acs:oss:*:*:mybucket/*"]
条件限制(Condition)
条件块(Condition Block)由一个或多个条件子句构成。一个条件子句由条件操做类型、条件关键字和条件值组成。条件操做类型和条件关键字在下文中会有详细描述。
条件块判断逻辑
是否知足条件的判断原则以下图所示:
图 2. 是否知足条件的判断原则
具体规则以下:字符串
条件操做类型
支持以下条件操做类型:字符串类型(String)、数字类型(Numeric)、日期类型(Date and time)、布尔类型(Boolean)和 IP 地址类型(IP address)。
每种条件操做类型分别支持以下的方法:
string | Numeric | Date and time | Boolean | IP address |
---|---|---|---|---|
StringEquals | NumericEquals | DateEquals | Bool | IpAddress |
StringNotEquals | NumericNotEquals | DateNotEquals | - | NotIpAddress |
StringEqualsIgnoreCase | NumericLessThan | DateLessThan | - | - |
StringNotEqualsIgnoreCase | NumericLessThanEquals | DateLessThanEquals | - | - |
StringLike | NumericGreaterThan | DateGreaterThan | - | - |
StringNotLike | NumericGreaterThanEquals | DateGreaterThanEquals | - | - |
条件关键字(Condition-key
阿里云服务保留的条件关键字命名格式为:
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:MFAPresent |Boolean |用户登陆时是否使用了多因素认证(二步认证)
云产品能够定义产品级别的条件关键字,格式以下:
<service-name>:<condition-key>
部分云产品定义的条件关键字以下:
产品名称 | 条件关键字 | 类型 | 说明 |
---|---|---|---|
ECS | ecs:tag/
|
String | ECS资源的标签关键字,可由用户自定义 |
RDS | rds:ResourceTag/
|
String | RDS资源的标签关键字,可由用户自定义 |
OSS | oss:Delimiter | String | OSS对Object名字进行分组的分隔符 |
OSS | oss:Prefix | String | OSS Object名称的前缀 |
Policy 样例
以下所示的 Policy 样例中,包含两条受权语句(Statement):
{ "Version": "1", "Statement": [ { "Effect": "Allow", "Action": "ecs:Describe*", "Resource": "acs:ecs:cn-hangzhou:*:*" }, { "Effect": "Allow", "Action": [ "oss:ListObjects", "oss:GetObject" ], "Resource": [ "acs:oss:*:*:mybucket", "acs:oss:*:*:mybucket/*" ], "Condition":{ "IpAddress": { "acs:SourceIp": ["42.120.88.10", "42.120.66.0/24"] } } } ] }