要给某个子用户访问某个目录的文件的权限怎么设计呢?
比如:bucket名称是loveos,loveos下面有目录user,这user目录下面又有子目录ava
那我要让子用户只能访问这个ava文件夹,可以在这个ava文件夹里面上传、下载,删除等各种操作,这个要怎么实现呢?
思路:首先建立一个子用户账号,然后再设计一个权限策略,再把设计好的权限授权给该用户。
实施步骤:
首先我们要打开RAM访问控制https://ram.console.aliyun.com/overview
可以在里面根据提示先建立子用户,用户建好后新建一个权限策略,方法如下图:
起一个策略的名称,名称和描述都可随意写,配置模式选“脚本配置”,如下图:
脚本代码我也贴出来,供参考:
{
"Statement": [
{
"Effect": "Allow",
"Action": "oss:*",
"Resource": "acs:oss:*:*:loveos/user/ava/*"
},
{
"Effect": "Allow",
"Action": "oss:ListObjects",
"Resource": "acs:oss:*:*:loveos",
"Condition": {
"StringLike": {
"oss:Prefix": [
"",
"user/",
"user/ava/",
"user/ava/*"
]
},
"StringEquals": {
"oss:Delimiter": "/"
}
}
},
{
"Effect": "Allow",
"Action": [
"oss:ListBuckets"
],
"Resource": "acs:oss:*:*:*"
}
],
"Version": "1"
}
这个策略已在“OSS控制台客户端”上登陆测试通过,被授权的子用户,可以在ava文件夹内进行上传、下载、删除文件等操作,但不允许删除文件夹,如果让删除,可把下面的代码去掉就可以了。
"StringEquals": {
"oss:Delimiter": "/"
}
温馨提示:删除了这段代码,前面那个“逗号”也就不需要了,跟着删除即可,要不语法会报错的。
很简单的代码,抛砖引玉,写出来方便自己以后查阅,也供有需要的朋友做个参考。