在众多开源缓存技术中,Redis无疑是目前功能最为强大,应用最多的缓存技术之一,但是原生Redis版本在安全方面非常薄弱,很多地方不满足安全要求,如果暴露在公网上,极易受到恶意攻击,导致数据泄露和丢失。
针对DCS的Redis实例,您在使用过程中,可参考如下建议:
- 网络连接配置
- 敏感数据加密后存储在Redis实例,且实例不开启公网访问。
对于敏感数据,尽量加密后存储。如无特殊需要,尽量不使用公网访问。
- 对安全组设置有限的、必须的允许访问规则。
安全组与VPC均是用于网络安全访问控制的配置,以端口最少放开原则配置安全组规则,降低网络入侵风险。
- 客户端应用所在ECS设置防火墙。
客户端应用所在的服务器建议配置防火墙过滤规则。
- 设置实例访问密码。
- 配置实例白名单。
- Redis-cli使用
- 隐藏密码
安全问题:通过在redis-cli指定-a参数,密码会被ps出来,属于敏感信息。
解决方案:修改Redis源码,在main方法进入后,立即隐藏掉密码,避免被ps出来。
- 禁用脚本通过sudo方式执行
安全问题: redis-cli访问参数带密码敏感信息,会被ps出来,也容易被系统记录操作日志。
解决方案:改为通过API方式(Python可以使用redis-py)来安全访问,禁止通过sudo方式切换到dbuser账号使用redis-cli。