全部产品
云市场
    RAM子账户授权OSS单个bucket中部分文件的访问权限

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

更新时间:2019-09-29 17:04:24

场景

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

解决方法

  1. 创建子账户

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

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