阿里云访问控制权限RAM.md
概述
在实际应用当中,经常会遇到权限分配的问题,例如需要给CDN管理系统开通CDN刷新的权限,需要给不同业务线的人开通不同的OSS权限。
阿里云提供了访问控制RAM来实现权限的分配。
权限分配的模型
用户属于群组,群组绑定策略,策略控制权限大小。
策略
我们创建一个新策略时,系统会提示可以使用现有模板,模板包含了一些基本策略。如下图
我们打开一个策略,可以看到如下内容,如红框所示,就是一个Policy,一个策略可以有好多的Policy
Policy分析
Policy 有以下几种基本元素
效力(Effect)
授权效力包括两种:允许(Allow)和拒绝(Deny)。
资源(Resource)
资源是指被授权的具体对象。
比如,访问策略“允许张三对资源 SampleBucket 执行 GetBucket 操作”中的资源是“SampleBucket”。
操作权限(Action)
操作方法是指对具体资源的操作。
比如,访问策略“允许张三对资源 SampleBucket 执行 GetBucket 操作”中的操作是“GetBucket”。
限制条件(Condition)
限制条件是指授权生效的限制条件。
限制条件用的不多,不多说。资源(Resource)和操作权限(Action)都上哪里去找呢?
当然是官方文档。
例如要找CDN的Resource和Action,就去官网帮助文档的”CDN > 开发手册 > API 手册 > RAM资源授权-CDN > CDN API鉴权规则”,这里面可以找到Resource和Action。
范例
这里我们以SLB为例,写一个简单范例,要求只能操作已存在SLB实例属性,不能新增删除SLB,也不能修改其他的SLB属性。
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": "ecs:DescribeInstances",
"Resource": "*"
},
{
"Effect": "Allow",
"Action": "slb:Set*",
"Resource": [
"acs:slb:*:*:loadbalancer/i-001"
]
},
{
"Effect": "Allow",
"Action": "slb:AddBackendServers",
"Resource": [
"acs:slb:*:*:loadbalancer/i-001"
]
},
{
"Effect": "Allow",
"Action": "slb:Describe*",
"Resource": "*"
}
]
如上,赋予了ECS的DescribeInstances权限,用来读取ECS列表,slb:Describe读取SLB信息,slb:Set用来设置SLB属性,slb:AddBackendServers用来添加后端ECS。
转载请注明:IPCPU-网络之路 » 阿里云访问控制权限RAM