使用AccessKey登录ossbrowser时出现“You are forbidden to list buckets”报错

更新时间:
复制 MD 格式

问题描述

使用阿里云OSS图形化管理工具ossbrowser,您可以快速完成存储空间(Bucket)和文件(Object)的相关操作。在ossbrowser工具安装完成之后,RAM子账号使用AccessKey登录ossbrowser时,出现“AccessDenied:You are forbidden to list buckets”报错。

问题原因

用于登录的RAM子账号没有Bucket的访问权限。

解决方案

使用RAM账号登录ossbrowser时出现报错,请参见以下操作进行解决:

  • 若您用于登录的RAM子账号无Bucket访问权限,请根据您实际需求,参见以下操作进行授权后,重新登录。更多授权管理方法请参见权限管理。

    • 授权RAM子账号访问指定资源的权限:请参见基于Bucket Policy实现跨账号访问OSS。

    • 授权RAM子账号访问所有Bucket的管理权限:您可以使用阿里云主账号登录RAM访问控制台,创建管理员子账号,对账号授予以下权限。如何为RAM用户授权,请参见为RAM用户授权。

      说明

      注意:使用RAM子账号登录之前,需要为RAM子账号配置 AliyunOSSFullAccess、 AliyunRAMFullAccess和 AliyunSTSAssumeRoleAccess的权限。

  • 若您用于登录的RAM子账号仅有部分存储空间(Bucket)或部分文件(Object)的访问权限,请在预设OSS路径中添加访问路径,并选择Bucket所在区域。详细配置方法请参见安装并登录ossbrowser。

    说明

    注意: 预设OSS路径格式为 oss://[$Bucketname]/[$Path],其中 [$Bucketname]为Bucket名称,[$Path]为Bucket下的文件夹。 例如,授权访问存储空间examplebucket下文件夹examplefolder下的文件或子文件夹,则填写 oss://examplebucket/examplefolder/。

    若需授权 RAM 子账号对指定目录进行增删改查,需配置包含 GetObject、PutObject、DeleteObject 和 ListObjects 操作权限的 RAM Policy。其中 ListObjects 操作通过 Condition 中的 StringLike 限定 oss:Prefix,将访问范围限制在指定目录前缀内。RAM Policy 示例如下:

    {
      "Version": "1",
      "Statement": [
        {
          "Effect": "Allow",
          "Action": ["oss:GetObject", "oss:PutObject", "oss:DeleteObject"],
          "Resource": ["acs:oss:*:*:examplebucket/resource/*"]
        },
        {
          "Effect": "Allow",
          "Action": ["oss:ListObjects"],
          "Resource": ["acs:oss:*:*:examplebucket"],
          "Condition": {
            "StringLike": {
              "oss:Prefix": ["resource/*", ""]
            }
          }
        }
      ]
    }
    
    说明

    说明:oss:Prefix 中的 resource/* 表示允许列举 resource/ 目录下的对象;空字符串 "" 表示允许从 Bucket 根目录开始列举,二者需同时配置,否则可能无法正常浏览目录结构。

    重要

    注意:预设OSS路径结尾的 / 为必需项,缺少该斜杠会导致 ossbrowser 无法正确解析路径。例如,授权访问存储空间 examplebucket 下文件夹 resource 时,应填写 oss://examplebucket/resource/,而非 oss://examplebucket/resource。

相关文档

适用于

  • 对象存储OSS