站长资源服务器
阿里云OSS访问权限配置(RAM权限控制)实现
简介场景需要将阿里云oss的某个bucket的指定目录授权给测试人员使用,比如指定 myBuket 的 static/material/ 目录。测试人员通过ossbrowser工具来维护这个目录。步骤新建用户在RAM访问控制中新建一个用户为这个用户创建AccessKey自定义权限策略输入名称、备
场景
需要将阿里云oss的某个bucket的指定目录授权给测试人员使用,比如指定 myBuket 的 static/material/ 目录。
测试人员通过ossbrowser工具来维护这个目录。
步骤
新建用户
在RAM访问控制中新建一个用户
为这个用户创建AccessKey
自定义权限策略
输入名称、备注、选择“脚本配置”,通过自己写脚本来配置权限
脚本内容如下:
{ "Version": "1", "Statement": [ { "Effect": "Allow", "Action": "oss:ListObjects", "Resource": "acs:oss:*:*:myBuket", "Condition": { "StringLike": { "oss:Delimiter": "/", "oss:Prefix": [ "", "static/", "static/material/*" ] } } }, { "Effect": "Allow", "Action": "oss:*", "Resource": [ "acs:oss:*:*:myBuket/static/material/*" ] } ] }
这个脚本指定 myBucket 下的 static/material/ 目录可以访问(任何权限)
。
要访问这个目录,则这个目录的所有父目录都要有ListObjects权限,否则进不去。
因此该脚本分为两部分,即两个Effect配置:
第一部分是配置material/所有父目录的ListObjects权限
{ "Effect": "Allow", "Action": "oss:ListObjects", "Resource": "acs:oss:*:*:myBuket", "Condition": { "StringLike": { "oss:Delimiter": "/", "oss:Prefix": [ "", "static/", "static/material/*" ] } } }
第二部分配置materinal的所有权限,Action为“oss:*”表示操作OSS的所有权限
{ "Effect": "Allow", "Action": "oss:*", "Resource": [ "acs:oss:*:*:myBuket/static/material/*" ] }
配置权限
添加权限时从自定义策略中选择上面定义的权限即可
打开ossbrowser
用上面配置的accessKeyId和AccessKeySerect
预设路径一定要设置刚才的 oss://myBuket/static/material
点击登入即可。
oss的API权限也是这么控制的。
参考
通过OSSborrower进行OSS授权管理
RAM子账户授权OSS单个bucket中部分文件的访问权限
使用RAM对OSS进行权限管理