admin管理员组文章数量:1794759
【阿里云OSS】403错误,AccessDenied:The bucket you access does not belong to you.
前言
- Browser.js 6.x
官方文档:help.aliyun/document_detail/64040.html GITHUB地址:gitee/mirrors/ali-OSS GITEE镜像地址:github/ali-sdk/ali-oss
示例:列出所有对象(测试bucket,对象数量较少) <html> <head> </head> <body></body> <!-- Introducing online resources --> <script src="aliyun-oss-sdk.min.js"></script> <script type="text/javascript"> const client = new OSS({ region: 'oss-cn-beijing', accessKeyId: 'STS.NTbFYrajjBxfz9zTKxxxxxxx', accessKeySecret: 'GcvcZfGkkEd4fJfQu9gVDMjxvXxxxxxxxxxxxx', stsToken: 'CAISgAJ1q6Ft5B2yfSjIr5fXDePGjLVL9bqNeB/LsEsdfxxxxxxxxxxxxxxxxxxxx...xxxxxxx=', refreshSTSToken: async () => { const info = await fetch('you sts server'); return { accessKeyId: info.accessKeyId, accessKeySecret: info.accessKeySecret, stsToken: info.stsToken } }, refreshSTSTokenInterval: 300000, bucket: 'bucket name' }); client.list().then((result) => { console.log('object list : ', result.objects); }); </script> </html> 遇到错误执行示例后,遇到403错误:AccessDenied:The bucket you access does not belong to you.
分析 现象1- 使用 accessKeyId、accessKeySecret 执行示例,没有错误。
- 使用STS生成的accessKeyId、accessKeySecret、stsToken执行示例,出现403错误。
可以判定错误与STS相关。
现象2- 403错误:AccessDenied:The bucket you access does not belong to you.
经过查找,找到2个相关的文档:
- 阿里云 The bucket you access does not belong to you
- 访问OSS时出现403状态码的排查方法
可以判定错误为:没有权限访问此bucket。
综合现象1和现象2,可以判定错误为:使用STS方式时,没有权限访问此bucket。
错误原因- 与STS方式相关的说明略(可参考这里)。
- 使用STS方式时,需要创建RAM用户,再创建RAM角色。
- 使用STS方式创建授权时,对于Policy:如果指定该权限策略,则STS Token最终的权限策略取RAM角色权限策略与该权限策略的交集;如果不指定该权限策略,则STS Token最终的权限策略取RAM角色的权限策略。
本次错误因RAM角色的权限策略引起:RAM用户具备操作bucket的权限,RAM角色不具备操作bucket的权限。
解决办法为RAM角色添加操作bucket的权限(AliyunOSSFullAccess)。
版权声明:本文标题:【阿里云OSS】403错误,AccessDenied:The bucket you access does not belong to you. 内容由林淑君副主任自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.xiehuijuan.com/baike/1686966403a123305.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论