配置AWS S3桶策略失误致全权限丢失(含Root用户),求解决方案
恢复被错误桶策略锁死的AWS S3桶访问权限
你应用的这个桶策略通过Deny效果拒绝了所有主体(Principal: "*")对目标桶的所有S3操作,由于S3桶策略的拒绝规则优先级最高,即使是账户根用户也会被拦截。以下是两种可靠的恢复方法:
方法一:使用AWS CLI强制删除桶策略
- 确保本地已安装AWS CLI,若未安装直接下载配置即可。
- 使用账户根用户的Access Key和Secret Key配置CLI,运行命令:
按提示输入根用户的凭证信息。aws configure - 执行删除桶策略的命令,替换
bucket-name为你的实际桶名称:
执行成功后,即可恢复对桶的正常访问。aws s3api delete-bucket-policy --bucket bucket-name
方法二:通过管理员IAM用户绕过(CLI不可用时)
- 登录AWS IAM控制台,创建一个新IAM用户,勾选“控制台访问”并设置临时密码。
- 给该用户附加
AdministratorAccess权限策略,确保拥有最高权限。 - 用这个新管理员用户登录AWS控制台,直接进入目标S3桶的“权限”页面,找到桶策略编辑器,删除错误的策略内容并保存。
后续正确配置建议(实现单个IAM用户访问+公共文件夹)
如果你要实现原本的需求,可使用如下桶策略(替换占位符为你的实际信息):
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::你的AWS账户ID:user/指定IAM用户名" }, "Action": "s3:*", "Resource": [ "arn:aws:s3:::bucket-name", "arn:aws:s3:::bucket-name/*" ] }, { "Effect": "Allow", "Principal": "*", "Action": "s3:GetObject", "Resource": "arn:aws:s3:::bucket-name/public-folder/*" } ] }
同时需在S3桶的“公共访问设置”中,关闭“阻止所有公共访问”(或仅保留必要的限制项),确保公共文件夹的访问正常生效。
内容的提问来源于stack exchange,提问作者Adam Lambert
相关产品推荐
相关产品推荐

