RAM 中使用授权策略(Policy)来描述授权的具体内容,授权内容包含以下基本因素:效力(Effect)、资源(Resource)、对资源所授予的操作权限(Action)以及限制条件(Condition)。
效力(Effect)
授权效力包括两种:允许(Allow)和拒绝(Deny)。
资源(Resource)
资源是指被授权的具体对象。
比如,访问策略“允许张三对资源 SampleBucket 执行 GetBucket 操作”中的资源是“SampleBucket”。
操作权限(Action)
操作方法是指对具体资源的操作。
比如,访问策略“允许张三对资源 SampleBucket 执行 GetBucket 操作”中的操作是“GetBucket”。
限制条件(Condition)
限制条件是指授权生效的限制条件。
比如,访问策略“允许张三在2011年12月31日之前对资源 SampleBucket 执行 GetBucket 操作”中的限制条件是“在2011年12月31日之前”。
授权策略样例
下面是一个权限策略实例,它描述的含义:允许对 OSS 的 samplebucket 进行只读操作,条件是请求者的 IP 来源为 42.160.1.0。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
您提供的授权策略样例是一个JSON格式的阿里云Resource Access Management(RAM)策略文档,用于控制对阿里云对象存储服务(OSS)资源的访问权限。下面是对这个策略样例的详细解析:
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": [
"oss:List*",
"oss:Get*"
],
"Resource": [
"acs:oss:*:*:samplebucket",
"acs:oss:*:*:samplebucket/*"
],
"Condition": {
"IpAddress": {
"acs:SourceIp": "42.160.1.0"
}
}
}
]
}
Version: 指定策略文档的版本,这里是"1",表示使用的是第一版策略语言。
Statement: 策略中的一个或多个声明块,每个声明定义了一组访问控制规则。
Effect: 此声明的效果,可以是"Allow"(允许)或"Deny"(拒绝)。此例中为"Allow",意味着满足条件时允许执行指定操作。
Action: 允许或拒绝的操作列表。这里包括了以"oss:List*"和"oss:Get*"开头的所有操作,意味着允许列出(如ListBuckets, ListObjects等)和获取(如GetObject, GetBucketACL等)OSS资源的权限。
Resource: 资源路径,指定了策略适用的具体资源。这里有两个条目:
"acs:oss:*:*:samplebucket"
:匹配名为samplebucket的OSS bucket。"acs:oss:*:*:samplebucket/*"
:匹配samplebucket下的所有对象。星号(*)作为通配符,表示任何对象。
Condition: 条件限制,只有当这些条件被满足时,该策略才生效。本例中的条件是"IpAddress"
,进一步限制了请求者的IP地址必须为"42.160.1.0",即只有来自这个IP的请求才能执行上述允许的操作。
综上所述,这个策略定义了:允许任何用户(在RAM用户体系中,通过其他方式确定具体用户),当其请求来源于IP地址42.160.1.0时,对名为samplebucket的OSS bucket及其内部的所有对象进行只读操作(包括查看、下载等)。这是一种基于IP地址的细粒度访问控制策略,增强了安全性。