基于SLS构建RDS审计合规监控
简介: 数据库是企业业务的数据核心,其安全方面的问题在传统环境中已经成为泄漏和被篡改的重要根源。因此,对数据库的操作行为尤其是全量 SQL 执行记录的审计日志,就显得尤为重要。
背景
数据库是企业业务的数据核心,其安全方面的问题在传统环境中已经成为泄漏和被篡改的重要根源。因此,对数据库的操作行为尤其是全量 SQL 执行记录的审计日志,就显得尤为重要。
SLS联合RDS推出RDS SQL审计功能,将RDS SQL审计日志实时投递到SLS中;SLS提供实时查询、可视化分析、告警等功能。
RDS SQL审计日志记录了对数据库执行的所有操作,这些信息是系统通过网络协议分析所得,对系统CPU消耗极低,不影响SQL执行效率。RDS SQL审计日志包括但不限于如下操作:
• 数据库的登录和退出操作。
• DDL(Data Definition Language)操作:对数据库结构定义的SQL语句,包括CREATE、ALTER DROP、TRUNCATE、COMMENT等。
• DML(Data Manipulation Language)操作:SQL操作语句,包括SELECT、INSERT、UPDATE、DELETE等。
• 其他SQL执行操作,包括任何其他通过SQL执行的控制,例如回滚、控制等。
• SQL执行的延迟、执行结果、影响的行数等信息。
此外,SLS还针对RDS的操作合规进行监控,及时发现RDS的配置异常,确保数据库安全。
RDS日志审计--采集
目前RDS SQL审计日志采集到SLS有两种方式:
• 云产品采集渠道
优点:少量且同地域实例采集场景下配置简单。
缺点:不支持跨地域、跨账号;不支持实例动态发现。如果需要跨地域跨账号,需要自建数据加工任务。
• 日志审计渠道
优点:
支持跨账号、跨地域中心化采集,便于审计报表分析。
支持实例发现,一键开启自动采集;并支持通过采集策略控制采集范围。
缺点:
需要AK授权或手动授权来开启日志审计APP。
会自动开启采集实例的SQL洞察功能,且不支持自动关闭。如果需要关闭SQL洞察,需要首先整体关闭日志审计RDS采集功能或者通过采集策略控制实例不采集,然后到RDS控制台逐个实例关闭SQL洞察。
云产品采集渠道
单账号同地域采集场景(只能将RDS审计日志采集到同地域的日志库中)
• SLS控制台首页“接入数据”区域,选择“RDS 审计”。下文以采集张家口实例为例说明。
• 因为采集的实例位于张家口,所以需要在张家口新建或者选择已存在的project及logstore。
• 注意:采集的RDS实例审计日志仅支持同地域采集。
• “数据源配置”页,完成RAM授权后可以查看张家口所有的RDS实例信息,默认日志投递功能是关闭的。之后可以根据日志采集需求,勾选相应的“开通投递”按钮,开启对应实例的日志投递功能。
• 至此就完成了SQL审计日志的采集开启,跳转到上述配置的logstore下即可查看RDS实例日志。
跨地域、跨账号采集场景
因为云产品采集渠道有只能将RDS审计日志采集到同地域的日志库的限制,所以要打破这个限时实现跨账号跨地域采集,就必须要自建跨域或者跨账号数据加工任务。
因为自建数据加工任务需要比较复杂的授权,这里不再详细介绍。如有需要,详见:
1、配置自定义角色授权
2、最佳实践:跨地域传输数据
3、最佳实践:多目标Logstore数据分发 中的“跨账号分发”部分。
由此可见,云产品采集渠道仅仅在简单采集场景下具有便捷采集的优势,但是在处理跨地域、跨账号采集时不仅数据同步链路较长,而且还需要比较复杂的授权过程;而且当实例变更(甚至新的实例出现)时,需要手动维护同步链路,维护成本极高。而日志审计渠道恰恰可以很好的解决跨地域、跨账号采集,实例变更维护成本高的痛点。
日志审计采集渠道
日志审计授权
建议使用阿里云RAM用户操作。
• 创建阿里云RAM用户,并赋予该用户AliyunRAMFullAccess、AliyunLogFullAccess权限,创建AK。
• 登录上述RAM用户,在SLS控制台选择“日志审计服务”。
• 首次进入需要进行授权才能开启。这里输入第一步创建的AK,并选择审计日志存储的中心Project地域即可。
• 如果出现如下页面说明已经授权完成。之后就可以根据采集日志的需要开启对应的云产品日志,例如这里需要采集操作审计(Actiontrail)日志及RDS SQL审计日志。
配置SQL审计采集
本文重点描述如何开启RDS SQL审计日志并通过采集策略管理日志采集范围。SQL审计日志开启首先需要进行采集策略配置。完整的语法说明详见采集策略文档。这里列出一些常用的策略方案。
• 采集特定区域的实例日志。例如:只采集杭州、上海的实例。
• 不采集特定标签的实例。例如:给测试实例打上type标签取值test。
• 只采集限定的实例日志。
SQL审计
RDS日志审计--报表
基于SLS的SQL审计日志提供了3张审计报表:
• RDS审计中心:主要展现了所有数据库的SQL执行指标、分布、趋势等信息。例如:PV、UV、操作数据库/数据表等的统计。
• RDS审计安全中心:主要展现了所有数据库的失败SQL和危险SQL,以及大批量删除或修改事件的详情、分布和趋势等。
• RDS审计性能中心:主要展现了所有数据库的具体性能指标,例如SQL执行峰值、SQL执行的平均时间、慢SQL的具体分布与来源等。
RDS日志审计--告警
SLS日志审计新发布了内置告警规则,其中针对于RDS SQL审计提供了19条内置规则(后续还会不断扩展)。
规则查看
通过SLS首页-> 日志审计服务-> 控制台左侧审计告警 -> 规则配置/告警规则,就可以进入审计告警规则配置页面。规则主要分为两类:
• SQL审计类规则(RDS安全):主要针对SQL的执行异常进行监控。例如,慢SQL、或批量删除等。
• 前提:通过日志审计APP开通RDS SQL审计日志采集。
• RDS操作合规规则:主要是基于CIS规则,对RDS的操作配置进行监控。
• 前提:通过日志审计APP开通Actiontrail操作日志采集。
告警配置
行动策略配置
• 钉钉渠道通知
• 下图样例:所有告警都发送钉钉通知。
• 短信/语音渠道通知:
• 下图样例:当告警级别大于严重时,向“SLS审计内置用户组”发送语音告警。具体的通知人的电话等情况,详见创建用户和用户组。
告警样例
接下来,我们用两个具体的例子来介绍RDS审计告警的使用。
SQL审计样例--慢SQL审计
开启告警
• 根据用户需要设置告警参数。例如,慢SQL检测阈值,过滤白名单等。
• 点击开启按钮,告警即可开启。
构造异常
• 测试数据集
# 表结构
mysql> desc test;
+-----------------+------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-----------------+------------------+------+-----+---------+----------------+
| id | int(10) unsigned | NO | PRI | NULL | auto_increment |
| title | varchar(100) | NO | MUL | NULL | |
| author | varchar(40) | NO | | NULL | |
| submission_date | date | YES | MUL | NULL | |
+-----------------+------------------+------+-----+---------+----------------+
4 rows in set (0.04 sec)
# 数据
mysql> select * from test limit 5;
+----+--------+---------+-----------------+
| id | title | author | submission_date |
+----+--------+---------+-----------------+
| 1 | title1 | author1 | 2021-01-12 |
| 2 | title1 | author1 | 2021-01-12 |
| 3 | title1 | author1 | 2021-01-12 |
| 4 | title1 | author1 | 2021-01-12 |
| 5 | title1 | author1 | 2021-01-12 |
+----+--------+---------+-----------------+
• 慢SQL
# 使用索引字段group by
mysql> select title, count(1) as cnt from test where submission_date='2021-01-12' group by title;
+--------+-------+
| title | cnt |
+--------+-------+
| title1 | 59392 |
| title2 | 8448 |
+--------+-------+
2 rows in set (0.06 sec)
# 索引字段经过运算后group by,使得索引失效。
mysql> select title, count(1) as cnt from test where day(submission_date)=12 group by title;
+--------+-------+
| title | cnt |
+--------+-------+
| title1 | 59392 |
| title2 | 8448 |
+--------+-------+
2 rows in set (0.58 sec)
• 告警监控到慢SQL,并发起告警通知。
RDS操作合规样例--实例访问白名单异常配置
作者:烨陌
本文为阿里云原创内容,未经允许不得转载
基于SLS构建RDS审计合规监控的更多相关文章
- 基于BootStrap框架构建快速响应的GPS部标监控平台
最近一个客户要求将gps部标平台移植到bootStrap框架作为前端框架,符合交通部796部标只是他们的一个基本要求,重点是要和他们的冷链云物流平台进行适配.我自己先浏览了客户的云物流平台的界面,采用 ...
- [App Store Connect帮助]六、测试 Beta 版本(4.3) 管理 Beta 版构建版本:为 Beta 版构建版本提供出口合规证明
如果您没有完成出口合规证明,则该 Beta 版构建版本的状态为“缺少合规证明”.您可以在 TestFlight 部分中回答必需的出口合规证明问题. 必要职能:“帐户持有人”职能.“管理”职能或“App ...
- K2 BPM_当BPM遇上RPA | 企业合规和风险管理从此更高效_全球领先的工作流引擎
强化企业合规与风险管理已成为全球企业发展的共识,尤其是对于药企.银行.地产这类对于合规性要求高的企业而言,识别预测潜在的管理风险和遵循不断升级的合规义务,是保证企业平稳运行的关键. 如何从流程层面降低 ...
- 基于Kubernetes 构建.NET Core技术中台
今天下午在腾讯云+社区社区分享了<基于Kubernetes 构建.NET Core技术中台>,下面是演讲内容的文字实录. 我们为什么需要中台 我们现在处于企业信息化的新时代.为什么这样说呢 ...
- 有容云:上车 | 听老司机谈Docker安全合规建设
编者注: 本文根据7月19日DockOne社群分享内容整理而成,分享嘉宾蒋运龙,有容云高级咨询顾问,一个IT的老兵,十年来混迹于存储.三网融合.多屏互动.智能穿戴.第三方支付.Docker等行业:经历 ...
- 浅谈 Docker 安全合规建设
通过阅读网上帖子及浏览相关信息,大家可能会产生一种错觉:Docker 安全性不足,对 Docker 导入生产环境持保守态度.不过实际情况是,虽然我们需要对容器的安全性高度关注,但只要使用得当,完全可以 ...
- K2 BPM_采购端到端解决方案,激活合规采购新动能_十年专注业务流程管理系统
「方案背景」企业管理标准化演进之路 企业的成长离不开标准化,企业的可持续发展更离不开标准化.随着市场竞争的日趋激烈,标准化已经成为企业参与市场竞争的战略性手段,也成为企业可持续发展的重要手段.聚焦到采 ...
- 基于Kebernetes 构建.NET Core技术中台
原文:基于Kebernetes 构建.NET Core技术中台 我们为什么需要中台 我们现在处于企业信息化的新时代.为什么这样说呢? 过去企业信息化的主流重心是企业内部信息化.但现在以及未来的企业信息 ...
- GRC: 个人信息保护法, 个人隐私, 企业风险合规治理
声明 个人原创, 转载需注明来源 https://www.cnblogs.com/milton/p/15885344.html 个人信息保护的历史和现状 个人信息保护的立法可追溯至德国黑森州1970年 ...
- 带你了解基于Ploto构建自动驾驶平台
摘要:华为云Solution as Code推出基于Ploto构建自动驾驶平台解决方案. 本文分享自华为云社区<基于Ploto构建自动驾驶平台>,作者:阿米托福 . 2022年6月15日, ...
随机推荐
- springMVC+JDBC:分页示例
文章来源:http://liuzidong.iteye.com/blog/1067492 一 环境:XP3+Oracle10g+MyEclipse6+(Tomcat)+JDK1.5 二 工程相关图片: ...
- Spring Boot学习日记8
学习了yaml文件的配置 <server> <port>8081<port> </server> # k-v键值对 name: xiaoqi #相当于n ...
- 二次元 & 动漫壁纸网站(内容记录)
前言 天天和电脑.手机以及平板等电子设备打交道,一个好看的桌面壁纸图片当然是必不可少的,也曾经分享过<值得珍藏的高清壁纸网站推荐>,各种类型和分辨率的壁纸都有. 今天再分享些「高清二次元& ...
- FPGA中的速度优化
FPGA中的速度优化 一.逻辑设计中的速度概念 逻辑设计速度相关的概念有三个:设计吞吐量.设计延时和设计时序.速度优化策略而言,吞吐量需要提高,延时应该降低,时序应该收敛(时序余量slave越大,收敛 ...
- KingbaseES V8R3 运维案例 -- 单实例环境升级用户认证sha-256
案例说明: 默认KingbaseES V8R3用户认证采用md5加密,有的生产环境对安全要求较高,需要将md5升级到sha-256:如果口令使用 scram-sha-256 设置加密,那么它可以被用于 ...
- 高德地图和echarts结合实现地图下钻(一)
疫情大屏优化-ECharts 地图下钻功能实现 https://www.sohu.com/a/373917631_100123073 全国:100000 北京:110 ...
- python---nltk工具包安装
先在pycharm里安装nltk cmd进入Python输入 import nltk nltk.download()如果下载失败在github上下载语料库:https://github.com/nlt ...
- Ubuntu20.04 LTS国内源安装指定版本Docker/docker-compose
1.卸载旧版本Docker #卸载旧版本docker sudo apt-get remove docker docker-engine docker-ce docker.io #清空旧版docker占 ...
- 技术文档指南:版本说明、网站文案、FAQ、案例研究与内容优化
Release Notes 和产品公告 Release Notes 通常是软件文档的一部分,是在新产品发布时提供给用户的简短.高级摘要.它们包含有关更新的重要信息,包括新功能.增强功能.错误修复,通常 ...
- 双端队列的基本实现【数据结构与算法—TypeScript 实现】
笔记整理自 coderwhy 『TypeScript 高阶数据结构与算法』课程 特性 本质:允许队列在两端进行 入队 和 出队 操作 设计 实现方式:基于 数组 实现 属性: data:存放队列元素 ...