阿里云存储服务 + 关注
手机版

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

  1. 云栖社区>
  2. 阿里云存储服务>
  3. 博客>
  4. 正文

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

figo168hf 发布时间:2018-08-07 22:00:55 浏览599 评论0

摘要: 通过RAM Policy授权子账号在进行图片样式处理。

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

【云栖快讯】云栖专辑 | 阿里开发者们的20个感悟,一通百通  详情请点击

网友评论