全部产品
存储与CDN 数据库 安全 应用服务 数加·人工智能 数加·大数据基础服务 互联网中间件 视频服务 开发者工具 解决方案 物联网 钉钉智能硬件
对象存储 OSS

OSS细粒度的权限控制

更新时间:2017-08-23 09:36:24

主账号的Access key对OSS的Bucket控制权限太高,需要对Bucket进行更细粒度的权限控制。主要针对以下资源操作:

  • 部分Bucket
  • Bucket中的部分目录/Object

访问资源主要通过两种方式:

  • API/SDK:可以实现针对部分资源的授权操作。
  • 控制台:登录控制台查看资源,需要调用ListBuckets/ListObjects显示Bucket/Object列表。目前无法针对部分资源授权ListBuckets/ListObjects,所以无法实现控制台登录只访问有权限的部分Bucket或目录。登录控制台会看到所有Bucket和目录/Object。但是操作权限仅限于授权的资源,访问其他没权限的Bucket或者目录会报错。

创建子账户

  1. 创建子账户

    进入RAM管理控制台,选择用户管理->创建用户,打开创建用户对话框,短信验证成功后,子账户创建完成。如下图所示:

    创建用户

  2. 创建子账户的Access key

    单击RAM管理控制台用户管理,找到并单击您创建的子账号进入用户详情页面,单击创建AccessKey,打开验证手机号页面,完成验证并根据提示创建好AccessKey。

  3. 为子账户添加授权策略

    1. RAM管路控制台单击策略管理->新建策略打开创建策略对话框,选择空白模板,界面如下图所示:

      新建策略

    2. 策略内容中输入例如如下的策略:

      1. Policy:
      2. {
      3. "Version": "1",
      4. "Statement": [
      5. {
      6. "Effect": "Allow",
      7. "Action": [
      8. "oss:ListBuckets"
      9. ],
      10. "Resource": [
      11. "acs:oss:::"
      12. ]
      13. },
      14. {
      15. "Effect": "Allow",
      16. "Action": [
      17. "oss:Listobjects"
      18. ],
      19. "Resource": [
      20. "acs:oss:::bucketname"
      21. ]
      22. },
      23. {
      24. "Effect": "Allow",
      25. "Action": [
      26. "oss:GetObject"
      27. ],
      28. "Resource": [
      29. "acs:oss:::bucketname/1/"
      30. ]
      31. }
      32. ]
      33. }
  4. 授权完成之后,使用子账户OSS 管理控制台,此时可以看到列出了所有的bucket,但除了授权的bucket ,其他bucket子账户是没有权限访问的。在bucket私有的情况下只有授权目录下的object获取地址可以打开,其他文件虽然可以获取地址,但访问会报错。

权限控制

  • SDK或者API操作有某个bucket的全部权限,例如如下代码:

    1. {
    2. "Version": "1",
    3. "Statement": [
    4. {
    5. "Effect": "Allow",
    6. "Action": "oss:*",
    7. "Resource": [
    8. "acs:oss:*:*:myphotos",
    9. "acs:oss:*:*:myphotos/*"
    10. ]
    11. }
    12. ]
    13. }
  • SDK或者API操作有bucket部分目录的全部权限,例如如下代码:

    1. {
    2. "Version": "1",
    3. "Statement": [
    4. {
    5. "Effect": "Allow",
    6. "Action": [
    7. "oss:*"
    8. ],
    9. "Resource": [
    10. "acs:oss:*:*:myphotos/hangzhou/2015/*"
    11. ]
    12. },
    13. {
    14. "Effect": "Allow",
    15. "Action": [
    16. "oss:ListObjects"
    17. ],
    18. "Resource": [
    19. "acs:oss:*:*:myphotos"
    20. ],
    21. "Condition":{
    22. "StringLike":{
    23. "oss:Prefix":"hangzhou/2015/*"
    24. }
    25. }
    26. }
    27. ]
    28. }
本文导读目录