基于SLS构建RDS审计合规监控
簡介: 數(shù)據(jù)庫是企業(yè)業(yè)務的數(shù)據(jù)核心,其安全方面的問題在傳統(tǒng)環(huán)境中已經(jīng)成為泄漏和被篡改的重要根源。因此,對數(shù)據(jù)庫的操作行為尤其是全量 SQL 執(zhí)行記錄的審計日志,就顯得尤為重要。
背景
數(shù)據(jù)庫是企業(yè)業(yè)務的數(shù)據(jù)核心,其安全方面的問題在傳統(tǒng)環(huán)境中已經(jīng)成為泄漏和被篡改的重要根源。因此,對數(shù)據(jù)庫的操作行為尤其是全量 SQL 執(zhí)行記錄的審計日志,就顯得尤為重要。
SLS聯(lián)合RDS推出RDS SQL審計功能,將RDS SQL審計日志實時投遞到SLS中;SLS提供實時查詢、可視化分析、告警等功能。
RDS SQL審計日志記錄了對數(shù)據(jù)庫執(zhí)行的所有操作,這些信息是系統(tǒng)通過網(wǎng)絡協(xié)議分析所得,對系統(tǒng)CPU消耗極低,不影響SQL執(zhí)行效率。RDS SQL審計日志包括但不限于如下操作:
? 數(shù)據(jù)庫的登錄和退出操作。
? DDL(Data Definition Language)操作:對數(shù)據(jù)庫結構定義的SQL語句,包括CREATE、ALTER DROP、TRUNCATE、COMMENT等。
? DML(Data Manipulation Language)操作:SQL操作語句,包括SELECT、INSERT、UPDATE、DELETE等。
? 其他SQL執(zhí)行操作,包括任何其他通過SQL執(zhí)行的控制,例如回滾、控制等。
? SQL執(zhí)行的延遲、執(zhí)行結果、影響的行數(shù)等信息。
此外,SLS還針對RDS的操作合規(guī)進行監(jiān)控,及時發(fā)現(xiàn)RDS的配置異常,確保數(shù)據(jù)庫安全。
RDS日志審計--采集
目前RDS SQL審計日志采集到SLS有兩種方式:
? 云產(chǎn)品采集渠道
優(yōu)點:少量且同地域實例采集場景下配置簡單。
缺點:不支持跨地域、跨賬號;不支持實例動態(tài)發(fā)現(xiàn)。如果需要跨地域跨賬號,需要自建數(shù)據(jù)加工任務。
? 日志審計渠道
優(yōu)點:
支持跨賬號、跨地域中心化采集,便于審計報表分析。
支持實例發(fā)現(xiàn),一鍵開啟自動采集;并支持通過采集策略控制采集范圍。
缺點:
需要AK授權或手動授權來開啟日志審計APP。
會自動開啟采集實例的SQL洞察功能,且不支持自動關閉。如果需要關閉SQL洞察,需要首先整體關閉日志審計RDS采集功能或者通過采集策略控制實例不采集,然后到RDS控制臺逐個實例關閉SQL洞察。
?
云產(chǎn)品采集渠道
單賬號同地域采集場景(只能將RDS審計日志采集到同地域的日志庫中)
? SLS控制臺首頁“接入數(shù)據(jù)”區(qū)域,選擇“RDS 審計”。下文以采集張家口實例為例說明。
?
? 因為采集的實例位于張家口,所以需要在張家口新建或者選擇已存在的project及l(fā)ogstore。
? 注意:采集的RDS實例審計日志僅支持同地域采集。
?
? “數(shù)據(jù)源配置”頁,完成RAM授權后可以查看張家口所有的RDS實例信息,默認日志投遞功能是關閉的。之后可以根據(jù)日志采集需求,勾選相應的“開通投遞”按鈕,開啟對應實例的日志投遞功能。
?
? 至此就完成了SQL審計日志的采集開啟,跳轉到上述配置的logstore下即可查看RDS實例日志。
?
跨地域、跨賬號采集場景
因為云產(chǎn)品采集渠道有只能將RDS審計日志采集到同地域的日志庫的限制,所以要打破這個限時實現(xiàn)跨賬號跨地域采集,就必須要自建跨域或者跨賬號數(shù)據(jù)加工任務。
因為自建數(shù)據(jù)加工任務需要比較復雜的授權,這里不再詳細介紹。如有需要,詳見:
1、配置自定義角色授權
2、最佳實踐:跨地域傳輸數(shù)據(jù)
3、最佳實踐:多目標Logstore數(shù)據(jù)分發(fā) 中的“跨賬號分發(fā)”部分。
?
由此可見,云產(chǎn)品采集渠道僅僅在簡單采集場景下具有便捷采集的優(yōu)勢,但是在處理跨地域、跨賬號采集時不僅數(shù)據(jù)同步鏈路較長,而且還需要比較復雜的授權過程;而且當實例變更(甚至新的實例出現(xiàn))時,需要手動維護同步鏈路,維護成本極高。而日志審計渠道恰恰可以很好的解決跨地域、跨賬號采集,實例變更維護成本高的痛點。
日志審計采集渠道
日志審計授權
建議使用阿里云RAM用戶操作。
? 創(chuàng)建阿里云RAM用戶,并賦予該用戶AliyunRAMFullAccess、AliyunLogFullAccess權限,創(chuàng)建AK。
? 登錄上述RAM用戶,在SLS控制臺選擇“日志審計服務”。
?
? 首次進入需要進行授權才能開啟。這里輸入第一步創(chuàng)建的AK,并選擇審計日志存儲的中心Project地域即可。
?
? 如果出現(xiàn)如下頁面說明已經(jīng)授權完成。之后就可以根據(jù)采集日志的需要開啟對應的云產(chǎn)品日志,例如這里需要采集操作審計(Actiontrail)日志及RDS SQL審計日志。
?
配置SQL審計采集
本文重點描述如何開啟RDS SQL審計日志并通過采集策略管理日志采集范圍。SQL審計日志開啟首先需要進行采集策略配置。完整的語法說明詳見采集策略文檔。這里列出一些常用的策略方案。
? 采集特定區(qū)域的實例日志。例如:只采集杭州、上海的實例。
?
? 不采集特定標簽的實例。例如:給測試實例打上type標簽取值test。
?
? 只采集限定的實例日志。
?
SQL審計
?
RDS日志審計--報表
基于SLS的SQL審計日志提供了3張審計報表:
? RDS審計中心:主要展現(xiàn)了所有數(shù)據(jù)庫的SQL執(zhí)行指標、分布、趨勢等信息。例如:PV、UV、操作數(shù)據(jù)庫/數(shù)據(jù)表等的統(tǒng)計。
? RDS審計安全中心:主要展現(xiàn)了所有數(shù)據(jù)庫的失敗SQL和危險SQL,以及大批量刪除或修改事件的詳情、分布和趨勢等。
? RDS審計性能中心:主要展現(xiàn)了所有數(shù)據(jù)庫的具體性能指標,例如SQL執(zhí)行峰值、SQL執(zhí)行的平均時間、慢SQL的具體分布與來源等。
RDS日志審計--告警
SLS日志審計新發(fā)布了內(nèi)置告警規(guī)則,其中針對于RDS SQL審計提供了19條內(nèi)置規(guī)則(后續(xù)還會不斷擴展)。
規(guī)則查看
通過SLS首頁-> 日志審計服務-> 控制臺左側審計告警 -> 規(guī)則配置/告警規(guī)則,就可以進入審計告警規(guī)則配置頁面。規(guī)則主要分為兩類:
? SQL審計類規(guī)則(RDS安全):主要針對SQL的執(zhí)行異常進行監(jiān)控。例如,慢SQL、或批量刪除等。
? 前提:通過日志審計APP開通RDS SQL審計日志采集。
? RDS操作合規(guī)規(guī)則:主要是基于CIS規(guī)則,對RDS的操作配置進行監(jiān)控。
? 前提:通過日志審計APP開通Actiontrail操作日志采集。
?
告警配置
行動策略配置
? 釘釘渠道通知
? 下圖樣例:所有告警都發(fā)送釘釘通知。
?
? 短信/語音渠道通知:
? 下圖樣例:當告警級別大于嚴重時,向“SLS審計內(nèi)置用戶組”發(fā)送語音告警。具體的通知人的電話等情況,詳見創(chuàng)建用戶和用戶組。
?
告警樣例
接下來,我們用兩個具體的例子來介紹RDS審計告警的使用。
SQL審計樣例--慢SQL審計
開啟告警
? 根據(jù)用戶需要設置告警參數(shù)。例如,慢SQL檢測閾值,過濾白名單等。
? 點擊開啟按鈕,告警即可開啟。
?
?
構造異常
? 測試數(shù)據(jù)集
? 慢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)# 索引字段經(jīng)過運算后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)? 告警監(jiān)控到慢SQL,并發(fā)起告警通知。
?
RDS操作合規(guī)樣例--實例訪問白名單異常配置
?
作者:燁陌
原文鏈接
本文為阿里云原創(chuàng)內(nèi)容,未經(jīng)允許不得轉載
總結
以上是生活随笔為你收集整理的基于SLS构建RDS审计合规监控的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 大流量场景下如何云淡风轻地进行线上发布?
- 下一篇: 基于DataWorks搭建新零售数据中台