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

同一AWS账户下无法从S3导入Redis RDB备份到ElastiCache

解决ElastiCache导入S3 RDB时“Failed to retrieve from S3”错误

以下是针对同一AWS账户、eu-central-1区域、禁用集群模式场景下的排查和解决步骤:

1. 校验S3桶策略的正确性

先确认你添加的桶策略格式和权限范围是否准确,eu-central-1区域的ElastiCache规范ID确实是540804c33a284a299d2547575ce1010f2312ef3da9b3a053c8bc45bf233e4353,但要确保策略结构符合要求:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::540804c33a284a299d2547575ce1010f2312ef3da9b3a053c8bc45bf233e4353:root"
            },
            "Action": [
                "s3:GetObject",
                "s3:GetObjectVersion"
            ],
            "Resource": "arn:aws:s3:::你的桶名/*"
        }
    ]
}
  • 替换你的桶名为实际存储RDB的S3桶名称
  • 确保Resource字段覆盖到具体的RDB文件(用/*可匹配桶内所有对象)
  • 检查桶内是否存在其他冲突策略(比如拒绝类语句),避免权限被覆盖

2. 检查RDB文件的权限与加密设置

  • 确认RDB文件的ACL权限允许ElastiCache服务主体读取,或者文件所有者为当前AWS账户
  • 如果RDB文件启用了SSE-KMS加密,需要额外给ElastiCache的规范ID添加KMS密钥的解密权限:
    在KMS密钥策略中加入以下语句:
    {
        "Effect": "Allow",
        "Principal": {
            "AWS": "arn:aws:iam::540804c33a284a299d2547575ce1010f2312ef3da9b3a053c8bc45bf233e4353:root"
        },
        "Action": "kms:Decrypt",
        "Resource": "*"
    }
    

3. 验证ElastiCache集群的网络访问能力

  • 如果集群在VPC内:
    • 若使用S3网关端点,检查端点策略是否允许访问目标桶
    • 若无端点,确认子网路由表有指向互联网的路由(NAT/互联网网关),且安全组允许出站HTTPS(443)流量到S3
  • 检查S3桶是否有IP限制策略,是否阻止了ElastiCache集群的IP段访问

4. 确认RDB文件的兼容性

  • 源Redis版本必须与目标ElastiCache Redis版本一致或更低(比如目标是6.2,源不能是7.0)
  • 本地尝试加载该RDB文件,验证文件是否损坏(可在本地Redis实例执行redis-server --dbfilename 你的RDB文件名测试)

5. 借助CloudTrail定位具体错误

在CloudTrail中搜索s3:GetObject操作,查看对应的错误代码:

  • AccessDenied:权限问题,回到前两步校验
  • NoSuchKey:确认RDB文件路径是否正确,桶名和文件名是否输入错误
  • Throttling:可能触发S3请求限额,稍后重试或申请提额

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 17:50:36