問題描述
您的請求被RAM Policy策略所拒絕。
問題原因
您發起了對Bucket或Object的訪問請求,但是您的請求命中了採用RAM使用者關聯的RAM Policy中的拒絕策略,因此請求被拒絕。
問題樣本
比如您使用具有如下RAM Policy授權配置的RAM使用者對mybucket發起了PutBucketReferer請求:
{
"Version": "1",
"Statement": [
{
"Effect": "Deny",
"Action": [
"oss:PutBucketReferer"
],
"Resource": [
"acs:oss:*:*:mybucket"
]
}
]
}因為該RAM Policy通過定義Deny規則限制了該RAM使用者對目標Bucket進行PutBucketReferer操作,所以您的請求會被拒絕,並返回該錯誤:
<?xml version="1.0" encoding="UTF-8"?>
<Error>
<Code>AccessDenied</Code>
<Message>Access denied by bucket policy.</Message>
<RequestId>65AF5037***5347E6D09</RequestId>
<HostId>mybucket.oss-cn-hangzhou.aliyuncs.com</HostId>
<AccessDeniedDetail>
<PolicyType>AccountLevelIdentityBasedPolicy</PolicyType>
<AuthPrincipalOwnerId>10323***2056</AuthPrincipalOwnerId>
<AuthPrincipalType>SubUser</AuthPrincipalType>
<AuthPrincipalDisplayName>20587***54611</AuthPrincipalDisplayName>
<NoPermissionType>ExplicitDeny</NoPermissionType>
<AuthAction>oss:PutBucketReferer</AuthAction>
<EncodedDiagnosticMessage>AQIBIAAAACB1******WAaW7O7kNSJdFn5klF//79WvW+QLnFa1ZRhLyP6w7*****4oGB5vXTQZJmWh8tkIRG6vFf7gGLSp8vsVjGwF***Sb6kUQ==</EncodedDiagnosticMessage>
</AccessDeniedDetail>
<Bucket>dinary</Bucket>
<User>205871000474254611</User>
<EC>0003-00000201</EC>
<RecommendDoc>https://api.aliyun.com/troubleshoot?q=0003-00000201</RecommendDoc>
</Error>解決方案
請檢查您發起的請求是否命中了RAM Policy中的Deny策略規則。
此外,如果您的錯誤響應中包含了如上述例子中的EncodedDiagnosticMessage欄位,您可以將該欄位的內容粘貼到RAM許可權診斷頁面排查原因,該操作需要您的帳號擁有ram:DecodeDiagnosticMessage許可權。
如果您缺少該診斷許可權,可以將該欄位的內容提供給帳號管理員,讓帳號管理員訪問RAM許可權診斷頁面來協助排查原因,並根據診斷結果對授權規則進行修改。