问题描述
请求被STS Token Policy所拒绝。
问题原因
该报错是获取STS Token代码中的Policy参数的授权问题导致。
问题示例
比如下面Java获取Token的Demo代码所示,其中的Policy设置代表Token的Policy权限设置,最终的Token权限是用户角色的授权和代码中Policy权限的交集:
解决方案
请结合您调用的OSS接口,检查您代码中Policy参数的授权策略,排查Policy中的授权是否正确。更多信息,请参见使用STS临时访问凭证访问OSS。其中临时访问凭证最终获取的权限是步骤四:为角色授予上传文件的权限设置的角色权限和步骤五:获取临时访问凭证中Policy设置权限的交集。请通过以下示例检查您在这两个步骤中设置的权限交集。
示例一
步骤四设置的角色权限为
AliyunOSSFullAccess
系统权限,步骤五Policy中设置了oss:PutObject
权限,则临时访问凭证最终获取的权限为oss:PutObject
,即仅支持执行向指定Bucket上传文件的操作。示例二
步骤四设置的角色权限为
oss:PutObject
系统权限,步骤五Policy中设置了oss:GetObject
权限,则临时访问凭证最终未获取任何权限,即无法向指定Bucket执行任何操作。