今天一同事在用临时账户对上传到oss服务器的文件进行crc64校验的时候用ossClient对象获取ossObject的时候
提示Access denied by authorizer's policy.
看返回的提示信息应该是权限的问题,同事那边的临时账户是调用我这边的接口来获取,所以我猜想问题应该是在我这边,这个问题通过阿里云提供的文档来看是临时用户没有权限导致的
由于本人刚接触这一块,代码又是以前的人写的,所以一开始没整明白。一边看文档一边向阿里提交了工单协助处理,文档有说到临时账户是基于子账户的权限的,于是登录子账户控制台发现子账户的权限都是有的。这时候阿里回复了我的工单,工单说到是我临时账户policy配置的问题,让我把policy配置成最高操作权限,于是我按它说的给临时账户的policy设置了最大权限,然后重新发布服务,让同事再重试一次,这个时候没有报前面说的错误了,但出现了新的错误:The parameter policy has not passed grammer check.
意思大概就是policy的语法错误,于是检查policy的设置。因为以前有配置要用的权限(权限最小化),所以干脆不管最大权限语法对不对,我直接在原来的policy的action中加了个“getObject”权限,然后又重新打包上传到服务器,重启服务,让同事又重试了一下,看着shell窗口日志一条条打印出来,最后看到成功两字,中间也没报任何异常,心里瞬间松了口气,调了一个下午加晚上终于调通了,这就跟便秘蹲了大半个小时突然一股丹田之气打通任督二脉,瞬间潮起潮落一样,一个字,爽!
另外,在写policy的时候建议大家先在RAM Policy Editor上面写,这个在线编辑器提供了对policy语法的验证。
相关推荐
为使用阿里云的对象存储服务,需要创建 RAM 账户和 OSS 账户。RAM 账户用于访问 OSS,而 OSS 账户用于存储数据。在创建 RAM 账户时,需要将 AliyunOSSFullAccess 权限赋予该账户,以便能够完全控制 Bucket。 设置 ...
阿里云OSS(OpenStorageService)是一种提供海量、安全、低成本、高可靠性的云存储服务。用户可以通过OSS提供的简单REST接口,实现随时随地通过任何互联网设备上传和下载数据。OSS非常适合搭建多媒体分享网站、网盘...
AccessKey分为阿里云账户AccessKey、RAM(Resource Access Management)账户AccessKey和STS(Security Token Service)临时访问凭证,以满足不同权限管理需求。 用户签名验证(Authentication)是OSS安全机制的核心...
OSS官方demo.zip文件包含了一个使用PHP编程语言实现的示例,旨在帮助开发者理解如何利用阿里云的Security Token Service(STS)SDK进行安全的身份验证和临时授权,以便于在OSS上进行文件上传操作。 STS是阿里云提供...
此外,还可以结合阿里云的其他服务,如StsToken(Security Token Service)来获取临时的访问凭证,提高安全性。 参考文献中提到了多个示例,包括使用PHP、Vue.js、ThinkPHP、Laravel、SpringBoot、Yii2.0等开发语言...