iam权限
IAM权限
通过IAM,您可以在云账号中创建IAM用户,并使用策略来控制IAM用户对云资源的访问范围。
IAM权限是作用于云资源的,IAM权限定义了允许和拒绝的访问操作,以此实现云资源权限访问控制。
对于OS2,IAM权限的OS2权限是作用于OS2所有的桶和对象的。如果要授予IAM用户操作OS2资源的权限,则需要向IAM用户进行策略绑定。
1. 策略结构和语法
策略结构包括:Version(策略版本号)和Statement(策略权限语句),其中Statement可以有多个,表示不同的授权项。每条策略权限语句Statement包括授权效力(Effect)、操作(Action)、资源(Resource)和条件(Condition)。
策略语法示例
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": "os2:ListObjects",
"Resource": "ycs:os2:*:*:myphotos"
},
{
"Effect": "Allow",
"Action": "os2:GetObject",
"Resource": "ycs:os2:*:*:myphotos/*"
}
]
}
Effect
Allow/Deny,Deny优先。
Action
Action分为以下三大类:
- Service级别操作:对应的是GetService操作,用来列举所有属于该用户的Bucket列表。
- Bucket级别操作:操作的对象是Bucket,其名称和相应的接口名称一一对应。
- Object级别操作:操作的对象是Object,其名称和相应的接口名称一一对应。
具体的Action和API接口的对应关系如下:
- Service级别
| API | Action |
|---|---|
| Get Bucket List | os2:ListBuckets |
| Put Bucket | os2:PutBuckets |
Bucket级别
| API | Action |
|---|---|
| Get Bucket Objects | os2:ListObjects |
| Put Bucket ACL | os2: PutBucketAcl |
| Get Bucket ACL | os2: GetBucketAcl |
| Delete Bucket | os2:DeleteBucket |
| Get Bucket Multipart Uploads | os2: ListMultipartUploads |
| Put Bucket Lifecycle | os2:PutBucketLifecycle |
| Get Bucket Lifecycle | os2:GetBucketLifecycle |
| Delete Bucket Lifecycle | os2:DeleteBucketLifecycle |
Object级别
| API | Action |
|---|---|
| Put Object | os2:PutObject |
| Initiate Multipart Upload | |
| Upload Part | |
| Complete Multipart Upload | |
| Get Object | os2:GetObject |
| Get Object Info | |
| Copy Object | os2:CopyObject |
| Upload Part Copy | |
| Delete Object | os2:DeleteObject |
| Put Object ACL | os2:PutObjectAcl |
| Get Object ACL | os2:GetObjectAcl |
| Get Multipart Upload Parts | os2:ListParts |
| Abort Multipart Upload | os2: AbortMultipartUpload |
| Restore Object | os2:RestoreObject |
Resource
在OSS中,Resource指代某个具体资源或者某些资源,支持通配符星号 ﹡ 。单个IAM Policy允许包含多个Resource。
Resource规则:
ycs:os2:{region}:{bucket_owner}:{bucket_name}/{object_name}
注意:
针对Bucket级别的Resource设置,不需要在{bucket_name}之后添加正斜线 ⁄ 以及{object_name} ,即:
ycs:os2:{region}:{bucket_owner}:{bucket_name}
region字段当前仅支持设置为通配符星号 ﹡ 。
Condition
Condition代表IAM权限的一些条件,可以设置对于 ycs:UserAgent 的检查、 ycs:SourceIp的检查,还可以使用 os2:Prefix 项在调用 GetBucket 时对资源进行限制。
OS2支持的Condition如下:
| API | Action |
|---|---|
| ycs:SourceIp | 指定普通IP网段,支持通配符星号 ﹡ 。 |
| ycs:UserAgent | 指定HTTP User-Agent头。 类型:字符串。 |
| ycs:SecureTransport | 请求的协议类型。如果请求是HTTP协议,则为HTTP,如果是HTTPS协议,则为HTTPS。 |
| os2:Prefix | 用于ListObjects请求时,列举指定前缀的Object。 |
| ycs:AccessId | 请求中携带的AccessId。 |
IAM权限设定和读取方法:
- 控制台:创建自定义策略(敬请期待)

