AWS Backup备份S3存储桶出现Access Denied报错如何排查解决
AWS S3 按需备份返回 AccessDenied 常见触发原因及解决方案
核心触发原因
你已经排查了桶公开访问配置、Vault访问策略、区域切换,但AccessDenied报错无明细的情况,90%以上是几个容易遗漏的权限链路断点导致:
- 权限校验链路不是只覆盖S3桶和Backup Vault,完整链路包含「提交备份操作的当前身份→AWS Backup服务角色→S3桶权限→S3/Vault关联的KMS密钥权限→组织层面SCP限制」,任意一环出现显式Deny或权限缺失,都会直接返回无权限,且默认不返回具体拒签原因
- S3公开访问配置仅对匿名访问主体生效,AWS Backup使用服务角色访问资源属于认证主体,公开访问规则对该场景完全不生效,这一步排查属于无效操作,排查完成后记得关闭不必要的公开访问配置,避免数据泄露
分步排查修复方案
- 第一步:定位拒签的具体环节
打开AWS CloudTrail事件历史,筛选事件名称为StartBackupJob的最近报错事件,查看事件详情中的userIdentity字段和错误详情:- 如果报错主体是你当前登录的IAM用户/角色:说明你本身没有提交备份任务的权限,需要给当前身份绑定两个核心权限:
backup:StartBackupJob(允许发起备份任务)、iam:PassRole(允许将备份服务角色传递给AWS Backup服务,该权限的资源范围必须限定为你使用的备份服务角色ARN,禁止设置为*) - 如果报错主体是AWS Backup服务:继续往下排查服务侧权限
- 如果报错主体是你当前登录的IAM用户/角色:说明你本身没有提交备份任务的权限,需要给当前身份绑定两个核心权限:
- 第二步:校验AWS Backup服务角色权限
备份任务默认使用的服务角色ARN格式为arn:aws:iam::<你的账号ID>:role/service-role/AWSBackupDefaultServiceRole,做以下校验:- 确认角色已绑定AWS托管策略
AWSBackupServiceRolePolicyForS3Backup,不要随意修改该托管策略的权限 - 如果你的S3桶、Backup Vault使用自定义KMS CMK加密,需要给该角色追加自定义权限,允许对对应KMS密钥执行
kms:Decrypt、kms:GenerateDataKey、kms:CreateGrant操作 - 确认角色没有被权限边界(Permissions Boundary)限制S3、Backup、KMS相关操作权限
- 确认角色已绑定AWS托管策略
- 第三步:校验S3桶侧权限
- 检查S3桶策略,逐条确认所有
Effect: Deny的语句没有覆盖Backup服务角色、backup.amazonaws.com服务主体,常见的触发Deny的策略包括:强制仅允许指定VPC访问、强制MFA认证访问、禁止非指定主体读对象等,如果存在这类Deny,需要在策略的Condition中加例外,放行Backup服务角色的访问 - 如果桶配置了S3访问点,需要同步检查访问点策略,不要存在针对Backup服务的Deny规则
- 如果桶使用自定义KMS CMK加密,需要在KMS密钥策略中同时给Backup服务角色、
backup.amazonaws.com服务主体授予前述三个KMS操作权限,添加aws:SourceArn条件限定来源为你的备份任务/Backup Vault,避免权限过度开放
- 检查S3桶策略,逐条确认所有
- 第四步:校验Backup Vault侧权限
- 检查Vault访问策略,确认没有显式Deny Backup服务角色执行
backup:CreateRecoveryPoint、backup:PutRecoveryPoint操作的规则 - 如果Vault使用自定义KMS CMK加密,和S3侧的KMS配置一致,给服务角色和服务主体加对应的KMS操作权限
- 检查Vault访问策略,确认没有显式Deny Backup服务角色执行
- 第五步:排查组织层面限制
如果你的账号归属AWS Organization,联系组织管理员检查账号所属OU、根节点绑定的SCP(服务控制策略):- 确认没有针对
backup:*、s3:Get*、s3:List*操作的显式Deny - 确认没有强制所有S3访问必须走指定VPC、必须带特定标签才允许访问的规则,这类规则会拦截AWS Backup服务的跨服务访问
- 确认没有针对
- 第六步:确认S3备份功能已启用
进入AWS Backup控制台的「设置-服务 opt-in」页面,确认S3服务已经被勾选为可备份资源,S3备份属于AWS Backup的高级功能,在部分区域不是默认开启状态,未opt-in的情况下发起备份会直接返回无权限。
内容的提问来源于stack exchange,提问作者Benzine
相关产品推荐
相关产品推荐

