【最佳实践】授权子账号进行OSS图片样式设置

1.引子:如何授权子账号在控制台针对指定的Bucket设置图片样式呢?

【使用场景】:某企业内部有众多Bucket,并且不同的Bucket分别指定了Bucket的管理员。目前Bucket A的管理员期望能够针对Bucket A中的图片通过设置图片样式的方式进行通过管理。

目前可以通过授权子账号“AliyunOSSFullAccess”权限的方式在控制台进行图片样式设置。但是赋予子账号“AliyunOSSFullAccess”后,子账号的操作权限过大。该账号能够操作管理所有的Bucket。在企业的实际使用过程中,每个Bucket都是由明确的使用用途,基本不可能授予每个子账号管理所有Bucket的权限。

因此,我们考虑是不是可以通过RAM Policy的方式针对指定的子账号授予指定Bucket的操作管理权限。从而达到如上的预期?

2.配置操作

2.1准备工作:

  • 创建1个子账号;(示例中子账号tmp-user)
  • 创建1个Bucket;(示例中Bucket名称test-beijing-2019)
  • 创建RAM Policy;(示例中的RAM Policy名称 BucketStylePolicy)

2.2 创建RAM Policy:

由于是在请求图片时带上了图片样式处理操作,例如“http://image-demo.oss-cn-hangzhou.aliyuncs.com/example.jpg?x-oss-process=image/resize,h_100”。 因此RAM Policy需要包含2部分的授权:

  • Get Object以及List Objects相关授权;
  • 图片样式处理相关授权;

    其中图片样式相关API操作如下.PS:详细图片样式相关API操作:图片样式API接口
Put Style  //创建图片样式
List Style //获取某个Bucket下所有图片样式信息
Get Style  //获取某个样式(Style)的属性信息,包括样式名称、内容,以及创建和最后修改时间
Delete Style //删除某个图片样式

如下是授予子账号创建、修改、删除图片样式的相关RAM Policy授权:

{
  "Version": "1",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "oss:GetObject",
        "oss:PutObject",
        "oss:GetObjectAcl",
        "oss:PutObjectAcl",
        "oss:ListObjects",
        "oss:GetBucketAcl",
        "oss:Putstyle",
        "oss:Liststyle",
        "oss:Getstyle",
        "oss:Deletestyle"
      ],
      "Resource": [
        "acs:oss:*:*:test-beijing-2019",
         "acs:oss:*:*:test-beijing-2019/*"
      ],
      "Condition": {}
    }
  ]
}

2.3子账号登录控制台进行验证:

1.使用子账号(tmp-user)登录控制台,并且创建style:

image

2.在请求中使用图片样式,例如:https://test-beijing-2019.oss-cn-beijing.aliyuncs.com/0012.jpg?x-oss-process=style/STYLE2
image

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值