阿里云子账号Policy授权规则明细
Policy结构
基本元素
1. 效力(Effect)
授权效力包括两种:允许(Allow)和拒绝(Deny)。
2. 资源(Resource)
资源是指被授权的具体对象。
3. 操作(Action)
操作是指对具体资源的操作。
4. 限制条件(Condition)
限制条件是指授权生效的限制条件。
Policy 元素使用规则
1. Effect(效力)
Effect 取值 为 Allow 或 Deny。比如,
"Effect": "Allow"
2. Action(操作列表)
Action 支持多值,取值为云服务所定义的 API 操作名称,其格式定义如下:
<service-name>:<action-name>
格式说明
- service-name: 阿里云产品名称,如 ecs, rds, slb, oss, ots 等。
- action-name: service 相关的 API 操作接口名称。
描述样例
"Action": ["oss:ListBuckets", "ecs:Describe*", "rds:Describe*"]
3. Resource(资源列表)
Resource 通常指资源,即操作对象,比如 ECS 虚拟机实例,OSS存储桶。我们使用如下格式来命名阿里云服务的资源命名。
acs:<service-name>:<region>:<account-id>:<relative-id>
格式说明:
- acs: Alibaba Cloud Service 的首字母缩写,表示阿里云的公有云平台。
- service-name: 阿里云提供的服务名字,如 ecs, oss, ots 等。
- region: 地域信息。如果不支持该项,可以使用通配符“*”号来代替。
- account-id: 账号 ID,比如 1234567890123456,也可以用“*”代替。
- relative-id: 与服务相关的资源描述部分,其语义由具体服务指定。这部分的格式描述支持类似于一个文件路径的树状结构。以 oss 为例,relative-id = “mybucket/dir1/object1.jpg” 表示一个 OSS 对象。
描述样例
"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):
- 第 1 条授权语句是允许对华东 1(杭州)地域的所有 ecs 资源有查看权限(ecs:Describe*);
- 第 2 条授权语句是允许对 oss 的 mybucket 存储桶中的对象具有只读访问权限(oss:ListObjects,
{ "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"] } } } ] }
- XE7 & IOS开发之开发账号(3):证书、AppID、设备、授权profile的申请使用,附Debug真机调试、Ad hoc下iPA文件生成演示(XCode5或以上版本推荐,有图有真相)
- 阿里云windows开放tomcat 8080端口(修改防火墙规则)
- 关于mysql授权账号权限时的空密码问题
- IOS第四天-新浪微博 -存储优化OAuth授权账号信息,下拉刷新,字典转模型
- Route-Policy 路由策略 规则详解
- win7系统,如何设置ftp的授权规则,使得匿名用户不提供用户名和密码直接访问ftp站点?
- 国民技术金融级安全芯片Z32HUB获阿里云ID² INSIDE商标授权
- Activation.main: 警告: sun.rmi.activation.execPolicy 系统属性未被指定且 ExecPermissions/ExecOptionPermissions均未被授权
- ahjesus linux连接阿里云ubuntu服务器并更改默认账号和密码,以及创建子账户
- 理想银行账号的规则
- 阿里云ESC Nginx下为WordPress添加伪静态规则
- 阿里云服务器 memcached未授权访问漏洞
- # [高级版]阿里云IoT物联网平台通过规则引擎获取设备上下线状态
- 从零开始开发微信小程序(三):微信小程序绑定系统账号并授权登录之微信端
- 阿里云幸运券优惠券领取和使用规则
- 写个页面检查阿里云的账号是否存在
- 如何使用支付宝账号授权登录网站
- c#实现Google账号登入授权(OAuth 2.0)并获取个人信息
- laravel policy用户授权
- c#实现Google账号登入授权(OAuth 2.0)并获取个人信息