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