You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AWS RDS还原S3中SQL Server备份文件提示Access Denied如何解决

报错根因

你遇到的Access Denied报错和备份文件是否公开无关,RDS读取S3文件是通过你绑定的具备S3_INTEGRATION功能的IAM角色完成的,走的是IAM权限校验,不会用匿名身份访问公开文件,报错的核心原因是角色、权限、配置链路中的某一环出现了问题,常见原因如下:

  • IAM角色的权限策略未授予S3桶和备份文件的读权限
  • IAM角色的信任策略未允许RDS服务代入该角色
  • SQLSERVER_BACKUP_RESTORE选项绑定的IAM角色有误,或选项组未正确附加到RDS实例
  • S3桶自定义Bucket Policy拦截了IAM角色的访问请求
  • 还原命令中填写的S3文件ARN拼写错误,桶名/文件名与实际不匹配

修复步骤

1. 修正IAM角色权限策略

给你绑定的IAM角色附加如下权限策略,替换[bucketname]为你的实际S3桶名:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:ListBucket",
                "s3:GetObject"
            ],
            "Resource": [
                "arn:aws:s3:::[bucketname]",
                "arn:aws:s3:::[bucketname]/*"
            ]
        }
    ]
}

2. 修正IAM角色信任策略

确认角色的信任关系允许RDS服务代入,正确配置如下:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "Service": "rds.amazonaws.com"
            },
            "Action": "sts:AssumeRole"
        }
    ]
}

3. 确认选项组配置生效

  • 进入RDS控制台选项组页面,确认你创建的带SQLSERVER_BACKUP_RESTORE选项的组,已经正确关联了上述配置好的IAM角色ARN
  • 确认该选项组已经附加到你的RDS实例上,配置修改后等待3-5分钟让配置同步完成,不需要重启实例

4. 检查S3桶策略规则

如果你的S3桶配置了自定义Bucket Policy,确认没有规则阻止该IAM角色的GetObject、ListBucket请求,移除针对该角色的限制规则即可。

5. 重新发起还原任务

确认所有配置正确后,重新执行还原命令即可。额外提示:如果你只需要还原这一个完整备份,不需要后续还原差异备份/事务日志,可以把命令里的@with_norecovery=1改成@with_norecovery=0,否则还原完成后数据库会处于恢复中状态无法直接使用。

内容的提问来源于stack exchange,提问作者Baegopa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 22:15:08