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权限设定和读取方法:
- 控制台:创建自定义策略(敬请期待)