简介: 数据库是企业业务的数据外围,其平安方面的问题在传统环境中曾经成为透露和被篡改的重要本源。因而,对数据库的操作行为尤其是全量 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 bymysql> 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操作合规样例--实例拜访白名单异样配置
作者:烨陌
原文链接
本文为阿里云原创内容,未经容许不得转载