我们有一个附加到我们的 SQL Server 实例的选项组,用于备份到 S3 存储桶。当我们尝试使用 rds_backup_database
存储过程运行备份时,我们收到以下错误:
[2021-03-18 20:20:22.260] Aborted the task because of a task failure or an overlap with your preferred backup window for RDS automated backup.
[2021-03-18 20:20:22.270] Task has been aborted
[2021-03-18 20:20:22.270] Access Denied
我读到的所有内容都表明,这意味着用于备份和还原选项组的 IAM 角色对 S3 存储桶没有适当的权限。
然而,一切似乎都配置正确。这是该角色的权限配置。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:ListBucket",
"s3:GetBucketLocation"
],
"Resource": [
"arn:aws:s3:::sabmssqldevbackups"
]
},
{
"Effect": "Allow",
"Action": [
"s3:GetObjectMetaData",
"s3:GetObject",
"s3:PutObject",
"s3:ListMultipartUploadParts",
"s3:AbortMultipartUpload"
],
"Resource": [
"arn:aws:s3:::sabmssqldevbackups/sabmssqldev/*"
]
}
]
}
至于备份窗口,它被配置为午夜刚过半小时,所以我们不能与之冲突。
另一个特点是我们的 RDS 实例位于区域 us-east-2a
中。我找不到关于 us-east-2a
是什么的任何信息。当您可以选择区域时,您无法选择它。我们的 S3 存储桶应该在 us-east-2
中。这两个区域是否相同,或者这种不匹配是我们无法执行备份的原因?
我认为您正在尝试在自动 RDS 备份窗口中执行到 s3 的备份,因此 RDS 将终止您的本机 SQL 备份/恢复。解决此问题的方法是永远不要在计划的 RDS 备份窗口周围运行本机 SQL 备份/恢复命令,或者将其更改为不同的时间: [
](https://i.stack.imgur.com/kBgH9 .png)