从事前到事后,云数据库 Redis MongoDB 安全体系全揭秘!

作者:陈金元(今远),阿里云管控技术专家

一、整体说明

今远1.png

上图是云数据库Redis&MongoDB的安全体系图,横向是实例控制链路,纵向是实例数据链路,对于控制链路,事前为了避免恶意操作或者误操作的发生,云数据库Redis&MongoDB提供了多个维度的授权机制,并通过风控系统进行释放保护,在极端场景下安全风险事件发生时,通过云监控可以第一时间发现问题,通过控制台以及审计日志可以快速的定位问题,当风险发生后,通过系统提供的各项恢复能力可以快速恢复业务,针对实例删除,可以使用回收站,针对数据删除(比如执行flushall),可以通过控制台数据恢复,shake工具,PITR,DBS等方式快速恢复数据。

Redis&Mongo实例数据链路的安全能力,分为接入层,网络层,代理层(proxy),引擎层,存储层 共5个维度。

接入层,也是访问实例的入口,提供云盾,堡垒机,DMS等产品,云盾和堡垒机是阿里云团队提供的安全解决方案,DMS作为数据库生态工具,提供了完善、成熟的数据安全访问解决方案,从访问和变更两个方面进行安全管控。

网络层,通过VPC进行网络隔离,通过白名单和安全组拦截未经授权的访问,通过SSL加密保证数据传输的安全性。

代理层,通过proxy审计日志,在安全风险发生时可以快速定位到clientip,及时进行阻断。

引擎层,通过Redis账号ACL,高危命令拦截,MongoDB TDE透明数据加密等方式进一步进行安全加固。

存储层,MongoDB在支持原生TDE加密模式的基础上,进一步增加自定义密钥材料的能力,实现从链路到存储的全链路加密支持。

二、事前

自建Redis和MongoDB存在的问题:从控制面,权限未做隔离,从数据面,开源Redis 当前的5.0以及之前的版本均未提供ACL的能力。

在云上,针对OPENAPI和控制台,支持RAM(Resource Access Management)的授权方式,可以使用RAM在主账号的权限范围内创建子账号,给不同的子账号分配不同的权限来允许或拒绝他们对云资源的访问,从而达到授权管理的目的。

与此同时,云数据库Redis&MongoDB也支持使用资源组来进行更细粒度的资源控制需求,通过资源组来支持用户在资源组级别的授权,每个资源组都可以维护不同的实例列表,如果授予子用户a作为资源组rg1的管理员,那么子用户a能够操作资源组rg1下的所有资源,而不能操作其他资源组的资源。

针对数据链路,云上Redis支持账户ACL,可以独立管理账户权限,通过白名单控制访问,并在此基础上通过安全组来优化维护体验,将ecs实例通过安全组进行统一管理,并与redis或者mongodb实例进行关联,每个redis实例最高支持关联10个安全组。

如果恶意用户突破了层层授权的限制,或者正常用户误触发了删除实例,我们还会通过二次提醒,以及风控系统提供的释放保护能力,对实例进行更多的保护,有效杜绝误操作或者恶意释放的可能,同时对于大批量的实例释放,则会自动触发熔断机制,对风险做紧急刹车。
针对数据链路的误操作,比如Redis 通过执行flushall等危险命令进行数据清理,或者执行keys可以阻塞正常的业务访问等等,云数据库Redis提供no_loose_disabled-commands参数来拦截高危命令,支持拦截FLUSHALL、FLUSHDB、KEYS、HGETALL、EVAL、EVALSHA、SCRIPT等风险命令。

三、事中

通过权限和风控系统提供的系统保护,已经可以规避绝大部分的恶意操作或者误操作,在极端情况下安全风险真的发生的时候,对比自建,云数据库Redis&MongoDB可以更快速的定位原因和影响,及时响应,快速恢复业务,通过云监控,可以及时收到告警,快速介入处理,对于控制面的实例释放,通过控制台的界面可以一目了然的看到影响的实例列表和影响业务范围,对于数据链路(比如执行了flushall),通过产品提供的审计日志的能力可以快速锁定来源IP,快速进行阻断,控制风险的进一步蔓延,如下面的图片,通过审计日志的关键词搜索,快速的找到了问题IP。

今远2.png

四、事后

通过监控告警和日志审计我们已经快速定位到问题,对风险IP也进行了及时阻断,下一步当然是快速恢复数据,云数据库Redis和MongoDB支持了非常多样化的恢复能力,对于误操作或者恶意操作释放实例,通过我们提供的回收站能力,可以快速进行重建恢复,数据会回到释放前的状态,同时保持相同的访问地址。

针对非实例级别的数据被误操作或者破坏的场景,使用各种数据恢复能力也可以快速恢复数据,比如备份集数据恢复和备份集克隆实例,前者使用备份集的数据替换当前实例的数据,备份集克隆实例则会重新生成一个新的实例,具有独立的链接地址,用于进行数据恢复,对当前实例的数据无影响。

对于误释放的实例,备份集默认只会保留8天,也就是说,在这种场景下,8天之后已经无法使用回收站或者备份集直接恢复数据,这种情况下如果本地有下载过备份文件,则可以使用RedisSHAKE或者MongoSHAKE进行数据恢复,在控制台中的备份均支持下载,释放也会提示进行备份,登录可以链接Redis或者MongoDB实例的ecs服务器,然后下载并解压对应的shake工具,修改配置文件后,启动shake即可使用备份文件快速恢复数据。

除此之外,也可以使用云上的数据库DBS服务进行定期的备份,也可以非常方便的进行事后恢复。

原文链接

本文为云栖社区原创内容,未经允许不得转载。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/516319.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

TeaDSL:支持任意 OpenAPI 网关的多语言 SDK 方案

正在上传…重新上传取消 导读 在以云计算为主角的开发者视界中,OpenAPI 是绝对的主角。要发短信,用 OpenAPI;要管理资源,用 OpenAPI;要管理权限,用 OpenAPI。如果一个 OpenAPI 解决不了你的问题&#xff…

Vue如何循环提取对象数组中的值

数据如下,提取name和callcount 第一种: getQueryCallStatistics("sesp1", this.provinceId).then((res) > {let arr [];let arr1 [];let arr2 [];let arr3 [];let arr4 [];this.xunshiMap res.data.callstatistics;res.data.callst…

Node.js 从门详解 (二)

目录1. 模块化的基本概念1.1 什么是模块化1.2 模块化规范2. Node.js 中模块化2.1 Node.js 中模块的分类2.2 加载模块2.3 Node.js中的模块作用域2.3.1 什么是模块作用域2.3.2 模块作用域的好处2.4 对外共享模块作用域中的成员2.4.1 module对象2.4.2 module.exports对象2.4.3 共享…

分享实录 | 阿里巴巴测试环境管理实践概述

正在上传…重新上传取消 【以下为分享实录,有删节】 测试环境管理之困 正在上传…重新上传取消 互联网产品的服务通常是由 Web 应用、中间件、数据库和许多后台业务程序组成,一套运行环境就是一个自成一体的小生态。部署软件产品的正式发布版本&#…

高校毕业生:今年“太惨了”,网友:更惨的可能还在后头!

受疫情影响,今年的就业形势基本上没跑了:“各行各业,大小企业,全面缩招!”据国家统计局7月份的最新数据显示:20-24岁大专及以上人员(主要为新毕业大学生)失业率比去年同期高 3.3 个百…

uniapp利用腾讯地图接口获取当前定位城市及计算两经纬度的实际距离

文章目录一、注册腾讯地图1. 申请开发者密钥(key)2. 开通webserviceAPI服务3. 下载SDK二、导入SDK2.1. 解压复制2.2. 页面导入三、实现3.1. 先创建实例。3.2. 获取经纬度3.3. 监控四、计算二点距离4.1. 官网地址4.2. 代码4.3. 测试一、注册腾讯地图 1. …

Gartner 企业级网络设备市场份额报告:阿里云负载均衡增速全球第一

4月8日,Gartner发布最新的全球企业级网络设备市场份额报告,阿里云负载均衡(SLB)增速全球第一,单季度营收环比增长35.1%,远超欧美传统厂商或是云服务厂商。 负载均衡被誉为IT系统的流量管家,它可…

放弃 Windows 后 ,开源操作系统能成为主流桌面系统吗?

来源 | CSDN责编 | 郑丽媛头图 | CSDN下载自东方IC在近十几年里,总是能听到世界各地的国家或者地方政府在尝试用开源系统代替Windows作为政府办公系统,尤其在今年微软正式宣布停止对Windows 7的更新维护服务后,很多数年来一直使用的Windows 7…

Sentinel 1.7.2 发布,完善开源生态及扩展性

Sentinel 1.7.2 正式发布,带来了 Logger SPI 扩展机制、Zuul 2.x 网关流控、SOFARPC 适配等多项特性和改进。下面我们来一起探索一下 Sentinel 1.7.2 的重要特性。 多样化的适配模块 到目前为止,Sentinel 已覆盖微服务、API Gateway 和 Service Mesh 三…

微信开发者工具:Failed to load font ************** net::ERR_CONNECTION_RESET问题解决办法

如果微信开发者工具前几天用的好好的突然出现 VM541:1 Failed to load font https://img.yzcdn.cn/vant/vant-icon-d3825a.ttf net::ERR_CONNECTION_RESET 这个错误说明。可能原因是微信开发者工具发布了新版本,你需要更新一下开发工具的版本,就能解决这…

从 DevOps 到 NoOps,Serverless 技术的落地方式探讨

Serverless 技术正以一种全新的方式,帮助云上客户进一步节省云的使用成本,实践 NoOps 理念,同时,他也正深刻变革着开发者们的编程模式,所谓“Write locally, compile to the cloud”。 本文将介绍 Serverless 技术来降…

uni-app中使用腾讯位置服务实现小程序地图选点功能

文章目录1. 官方文档2. 小程序添加插件3. HBuilder配置4. 配置代码5. 页面代码1. 官方文档 技术选定(地图选点插件) (对应官网:https://lbs.qq.com/miniProgram/plugin/pluginGuide/locationPicker ) 2. 小程序添加…

8000字 | 32 张图 | 一文搞懂事务+隔离级别+阻塞+死锁

来源 | 悟空聊架构(ID:PassJava666)头图 | CSDN下载自视觉中国事务1.1 什么是事务为单个工作单元而执行的一系列操作。如查询、修改数据、修改数据定义。1.2 语法「(1)显示定义事务的开始、提交」BEGIN TRANINSERT IN…

uni-app中使用腾讯地图sdk(解析经纬度)获取用户所在位置信息

前言: 技术选定 https://lbs.qq.com/dev/console/custom/apply 具体步骤: 注册开发者账号、申请密钥、开通webserviceAPI服务、下载小程序SDK、微信后台配置请求request域名。 ( 请按官方完成以上操作:https://lbs.qq.com/mini…

4月数据库流行度排行出炉:MySQL 成事实王者

2020年4月DB-Engines 数据库流行度排行出炉。在本月的排行榜上,Oracle 较上月微涨 4.78 分,MySQL 微涨 8.62 分,甲骨文公司成为最大赢家。而微软的两个产品 Microsoft SQL Server 下降 14.43 分,Microsoft Access 下降 3.22分&…

MySQL 在 Mac 环境下的安装

目录 Mac 系统配置 MySql 数据库1. 安装 MySql 数据库2. 安装 MySql Workbench 可视化工具Mac 系统配置 MySql 数据库 1. 安装 MySql 数据库 1.1 双击打开安装包 mysql-8.0.19-macos10.15-x86_64.dmg: 1.2 双击 mysql-8.0.19-macos10.15-x86_64.pkg 运行安装包,并点击 继续…

微信小程序console.log出来的是object的问题解决方法

在开发微信小程序的时候,从后台传过来的数据没有问题,但是在开发的过程中,console.log出来的结果为object。 解决方案: 把加好改为逗号,即可

超大福利 | 这款免费 Java 在线诊断利器,不用真的会后悔!

线上系统为何经常出错?数据库为何屡遭黑手?业务调用为何频频失败?连环异常堆栈案,究竟是哪次调用所为? 数百台服务器意外雪崩背后又隐藏着什么?是软件的扭曲还是硬件的沦丧? 走进科学带你了解 A…

面试官:因为这个语言,我淘汰了90%的人!!

很多人都有这样的经历:大量重复性工作;日报、周报、各种报,无穷无尽;不计其数的数据提取琐碎繁杂的事务让工作的效率极低。如果可以一键完成就好了。对这些问题来说,最高效的解决途径就是 Python。1991 年,…

MySQL在Windows 环境中的安装

文章目录 MySQL 在 Windows 系统下的安装MySQL 在 Windows 系统下的安装 双击 mysql-installer-community-8.0.19.0.msi,启动 MySQL 安装程序。 如果弹框提示如下的警告信息,证明你的电脑需要安装额外的 .NET Framework 依赖包。此时,先退出 MySQL 的安装程序,然后双击 ND…