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

AWS ElastiCache Redis跨账号迁移:集群配置与S3权限问题

解决方案:ElastiCache Redis跨账号迁移问题处理

一、控制台创建1节点0分片Redis集群

要创建非集群模式(0分片、单节点)的ElastiCache Redis集群,需在创建流程中明确选择非集群引擎:

  • 进入ElastiCache控制台,点击「创建集群」
  • 在「选择引擎」环节,选择Redis(非集群模式)(默认选项是「Redis(集群模式)」,会强制生成至少1分片)
  • 后续配置选择「0个副本节点」、「非多AZ部署」,完成创建后即可得到1节点、0分片的目标集群

二、CLI创建时S3权限错误排查

针对No permission to access S3 object: mybucket/folder/file.rdb错误,按以下步骤逐一验证:

1. 修正Bucket Policy中的ElastiCache身份配置

ElastiCache访问S3需使用区域特定的规范ID而非服务端点,以eu-west-1区域为例,规范ID为c4c1ede66af54110b8e2c51971d30417(其他区域需参考AWS官方文档确认)。修改Bucket Policy的Stmt15399483语句:

{
  "Sid": "Stmt15399483",
  "Effect": "Allow",
  "Principal": {"CanonicalUser": "c4c1ede66af54110b8e2c51971d30417"},
  "Action": ["s3:GetObject", "s3:ListBucket", "s3:GetBucketAcl"],
  "Resource": ["arn:aws:s3:::mybucket", "arn:aws:s3:::mybucket/*"]
}

注:无需单独指定文件路径,mybucket/*已覆盖所有对象

2. 确认S3桶与集群区域匹配

ElastiCache快照服务仅能访问同区域的S3桶,确保待创建的Staging集群与S3桶均处于eu-west-1区域

3. 调整S3桶的阻止公共访问设置

进入S3桶的「权限」标签,查看「阻止公共访问」:

  • 若开启了「阻止所有公共访问」,需勾选「例外:允许来自AWS服务的访问」;或在确保桶内资源安全的前提下关闭该设置

4. 给RDB文件添加ACL权限

由于文件仅支持编辑ACL,需单独给目标RDB文件授予读取权限:

  • 进入S3桶,找到folder/file.rdb,点击「权限」>「编辑对象ACL」
  • 添加权限:选择「Canonical user」,输入对应区域的ElastiCache规范ID,授予「读取」权限

5. 验证CLI命令与IAM用户权限

  • 确认CLI命令参数正确,示例:
    aws elasticache create-cache-cluster --cache-cluster-id staging-redis --engine redis --cache-node-type cache.t3.micro --num-cache-nodes 1 --s3-bucket mybucket --s3-key folder/file.rdb --region eu-west-1
    
  • 检查执行CLI的IAM用户(my-user)是否拥有elasticache:CreateCacheCluster权限,可通过IAM控制台的「权限模拟」功能验证

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 01:45:32