WordPress的W3TC插件对接Amazon S3时ListBuckets操作403报错
排查W3TC插件连接S3时的403 AccessDenied错误
问题根源
报错显示ListBuckets操作被拒绝,因为当前IAM策略的权限仅限定在特定S3 bucket,但ListBuckets是AWS账户级别的操作,无法通过指定单个bucket的ARN来授权,必须使用全局资源(*)才能赋予该权限。
修复方案
修改IAM用户的权限策略,添加单独的ListBuckets权限项,同时保留原有针对目标bucket的操作权限。调整后的策略示例如下:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "s3:ListBuckets", "Resource": "*" }, { "Effect": "Allow", "Action": [ "s3:DeleteObject", "s3:Put*", "s3:Get*", "s3:List*" ], "Resource": [ "arn:aws:s3:::com.fatpigeons.fatpigeons-object-storage", "arn:aws:s3:::com.fatpigeons.fatpigeons-object-storage/*" ] } ] }
额外说明
- 移除了
s3:CreateBucket权限:如果目标bucket已经创建完成,该权限无必要,可缩小权限范围。 - 确认W3TC插件配置:确保插件中已明确指定目标bucket名称,避免插件尝试遍历所有bucket触发权限校验。
内容的提问来源于stack exchange,提问作者piersb
相关产品推荐
相关产品推荐

