天天看点

赋予RAM子用户访问OSS的某个文件夹的权限策略

要给某个子用户访问某个目录的文件的权限怎么设计呢?

比如:bucket名称是loveos,loveos下面有目录user,这user目录下面又有子目录ava

那我要让子用户只能访问这个ava文件夹,可以在这个ava文件夹里面上传、下载,删除等各种操作,这个要怎么实现呢?

思路:首先建立一个子用户账号,然后再设计一个权限策略,再把设计好的权限授权给该用户。

实施步骤:

首先我们要打开RAM访问控制

https://ram.console.aliyun.com/overview 可以在里面根据提示先建立子用户,用户建好后新建一个权限策略,方法如下图:
赋予RAM子用户访问OSS的某个文件夹的权限策略
起一个策略的名称,名称和描述都可随意写,配置模式选“脚本配置”,如下图:
赋予RAM子用户访问OSS的某个文件夹的权限策略
脚本代码我也贴出来,供参考:

{
    "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": "/"
                }           

温馨提示:删除了这段代码,前面那个“逗号”也就不需要了,跟着删除即可,要不语法会报错的。

很简单的代码,抛砖引玉,写出来方便自己以后查阅,也供有需要的朋友做个参考。

继续阅读