如何限制AWS Serverless ElastiCache默认用户的访问权限
限制AWS Serverless ElastiCache(Redis)默认用户的安全方案
AWS Serverless ElastiCache for Redis的default用户确实无法删除,也不能直接修改其权限字符串,但可以通过以下几种方式彻底限制它的访问能力,消除安全隐患:
1. 清空默认用户的密码
默认用户如果没有绑定任何密码,就无法通过密码认证方式登录集群,这是最直接的限制手段:
- 进入AWS ElastiCache控制台,定位到你的Serverless Redis集群
- 进入「用户管理」页面,选中
default用户 - 点击「修改用户」,清空所有密码字段后保存更改
- 操作完成后,任何主体都无法通过密码方式使用
default用户访问集群
2. 启用IAM认证并拦截默认用户访问
如果你的架构依赖IAM认证访问Redis,可以通过IAM策略彻底锁死默认用户:
- 在集群配置的「安全」选项中开启IAM认证
- 创建IAM策略,仅允许你自定义的用户访问集群,明确拒绝
default用户的所有操作:{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "elasticache:Connect", "Resource": "arn:aws:elasticache:<区域>:<账号ID>:user:<集群ID>/<自定义用户名>" }, { "Effect": "Deny", "Action": "elasticache:Connect", "Resource": "arn:aws:elasticache:<区域>:<账号ID>:user:<集群ID>/default" } ] } - 将该策略附加到需要访问集群的IAM角色/用户上,确保默认用户无任何IAM权限关联
3. 用Redis命令禁用默认用户权限
通过具备高权限的自定义用户登录,执行Redis原生命令限制默认用户:
# 登录自定义高权限用户 redis-cli -h <集群端点> -p <端口> -u redis://<自定义用户名>:<密码>@<集群端点>:<端口> # 清空默认用户的登录密码 CONFIG SET requirepass "" # 重命名或禁用高危命令,防止意外访问造成破坏 CONFIG SET rename-command FLUSHDB "" CONFIG SET rename-command KEYS "" CONFIG SET rename-command CONFIG ""
执行后可通过CONFIG REWRITE将配置持久化到集群参数组中
4. 结合VPC与安全组强化边界控制
- 将ElastiCache集群部署在私有VPC子网,安全组仅开放Redis端口(默认6379)给指定可信资源(如业务EC2、Lambda函数)
- 配置VPC端点策略,仅允许指定IAM主体访问ElastiCache服务,进一步缩小访问范围
核心注意事项
- 永远不要共享
default用户的密码,一旦设置过密码必须立即清空 - 定期审计ElastiCache访问日志,排查是否有
default用户的登录尝试 - 自定义用户权限遵循最小权限原则,仅授予必要的命令和键空间访问权限
内容的提问来源于stack exchange,提问作者Deepak
相关产品推荐
相关产品推荐

