全部产品
云市场

RAM子账户授权OSS单个bucket中部分文件的访问权限

更新时间:2019-07-12 15:25:06

场景

用户需要访问某个bucket下的某个目录下的所有文件,但是该bucket下的其他目录不允许该用户访问。

解决方法

  1. 创建子账户

    1. 登录RAM管理控制台,创建RAM子账号。详情请参见创建 RAM 用户
  2. 自定义授权策略

    1. RAM管理控制台单击权限管理->权限策略管理->新建权限策略
    2. 新建自定义权限策略对话框,配置权限策略。界面如下图所示。配置RAM策略
    • 策略名称:自定义。
    • 备注:自定义
    • 配置模式:选择脚本配置。
    • 策略内容:输入如下策略:
      1. Policy:
      2. {
      3. "Version": "1",
      4. "Statement": [
      5. {
      6. "Effect": "Allow",
      7. "Action": [
      8. "oss:ListBuckets",
      9. "oss:GetBucketStat",
      10. "oss:GetBucketInfo",
      11. "oss:GetBucketAcl"
      12. ],
      13. "Resource": [
      14. "acs:oss:*:*:*"
      15. ]
      16. },
      17. {
      18. "Effect": "Allow",
      19. "Action": [
      20. "oss:Listobjects"
      21. ],
      22. "Resource": [
      23. "acs:oss:*:*:bucketname"
      24. ]
      25. },
      26. {
      27. "Effect": "Allow",
      28. "Action": [
      29. "oss:GetObject"
      30. ],
      31. "Resource": [
      32. "acs:oss:*:*:bucketname/1/*"
      33. ]
      34. }
      35. ]
      36. }
  3. 授权完成之后,使用子账户登录OSS 管理控制台,此时可以看到列出了所有的bucket,但除了授权的bucket,其他bucket是没有权限访问的。在bucket私有的情况下只有授权目录下的object获取地址可以打开,其他文件虽然可以获取地址,但访问会报错。