本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用資料庫活動串流來監控 Amazon RDS
透過使用資料庫活動串流,您就可以監控資料庫活動的近乎即時的串流。
主題
資料庫活動串流概觀
作為 Amazon RDS 資料庫管理員,您需要保護資料庫並遵守合規與法規要求。其中一項策略是整合資料庫活動串流與監控工具。透過這種方式,您可以監控和設定 資料庫中稽核活動的警示。
外部和內部都有安全威脅。若要防範內部威脅,您可以設定資料庫活動串流功能來控制管理員對資料串流的存取。Amazon RDS 資料庫管理員沒有存取收集、傳輸、儲存和處理串流的權限。
內容
資料庫活動串流運作方式
Amazon RDS 會近乎即時地將活動推送至 Amazon Kinesis 資料串流。系統會自動建立 Kinesis 串流。從 Kinesis,您可以設定 Amazon Data Firehose 和 等 AWS 服務 AWS Lambda ,以取用串流並存放資料。
重要
在 Amazon RDS 中使用資料庫活動串流功能是一項免費功能,但 Amazon Kinesis 會收取資料串流費用。如需詳細資訊,請參閱 Amazon Kinesis Data Streams 定價
您可為合規管理設定應用程式以使用資料庫活動串流。這些應用程式可以使用串流來產生警示,並稽核您的 資料庫。
Amazon RDS 支援異地同步備份部署中的資料庫活動串流。於此狀況下,資料庫活動串流會同時稽核主執行個體和備用執行個體。
在 Oracle 資料庫和 Microsoft SQL Server 資料庫中進行稽核
稽核是針對已設定的資料庫執行的監控和記錄動作。Amazon RDS 根據預設不會擷取資料庫活動。您可以自行在資料庫中建立和管理稽核政策。
Oracle 資料庫中的統一稽核
在 Oracle 資料庫中,統一稽核政策是稽核設定的具名群組,您可以使用此群組來稽核使用者行為。政策可以簡單地稽核單個使用者的活動。您也可以建立使用條件的複雜稽核政策。
Oracle 資料庫會寫入稽核記錄,包括從 SYS
稽核記錄至統一稽核權杖,皆會記錄。例如,如果在 INSERT
陳述式期間發生錯誤,標準稽核會指出錯誤編號和所執行的 SQL。稽核權杖位於 AUDSYS
結構描述中的唯讀資料表中。若要存取這些記錄,可以查詢 UNIFIED_AUDIT_TRAIL
資料字典檢視。
一般而言,您可如下所示,設定資料庫活動串流:
-
透過使用
CREATE AUDIT POLICY
命令,建立 Oracle 資料庫稽核政策。Oracle 資料庫會產生稽核記錄。
-
透過使用
AUDIT POLICY
命令,啟用稽核政策。 -
設定資料庫活動串流。
只有符合 Oracle 資料庫稽核政策的活動才會被擷取,並傳送至 Amazon Kinesis Data Streams。在啟用資料庫活動串流時,Oracle 資料庫管理員無法變更稽核政策或移除稽核記錄。
若要進一步了解統一稽核政策,請參閱 Oracle 資料庫安全指南中的關於使用統一稽核政策和稽核來稽核活動
在 Microsoft SQL Server 中進行稽核
資料庫活動串流使用 SQLAudit 功能來稽核 SQL Server 資料庫。
RDS for SQL Server 執行個體包含下列項目:
伺服器稽核 — SQL Server 稽核會收集伺服器或資料庫層級動作的單一執行個體,以及要監控的動作群組。伺服器層級稽核
RDS_DAS_AUDIT
和RDS_DAS_AUDIT_CHANGES
由 RDS 管理。伺服器稽核規格 — 伺服器稽核規格會記錄伺服器層級事件。您可以修改
RDS_DAS_SERVER_AUDIT_SPEC
規格。此規格已連結至伺服器稽核RDS_DAS_AUDIT
。該RDS_DAS_CHANGES_AUDIT_SPEC
規格由 RDS 管理。資料庫稽核規格 — 資料庫稽核規格會記錄資料庫層級事件。您可以建立資料庫稽核規格
RDS_DAS_DB_<name>
,並將其連結至RDS_DAS_AUDIT
伺服器稽核。
您可以使用主控台或 CLI 來設定資料庫活動串流。一般而言,您可如下所示,設定資料庫活動串流:
-
(選用) 使用
CREATE DATABASE AUDIT SPECIFICATION
命令建立資料庫稽核規格,並將其連結至RDS_DAS_AUDIT
伺服器稽核。 -
(選用) 使用
ALTER SERVER AUDIT SPECIFICATION
命令修改伺服器稽核規格,並定義政策。 -
啟用資料庫和伺服器稽核政策。例如:
ALTER DATABASE AUDIT SPECIFICATION [<Your database specification>] WITH (STATE=ON)
ALTER SERVER AUDIT SPECIFICATION [RDS_DAS_SERVER_AUDIT_SPEC] WITH (STATE=ON)
-
設定資料庫活動串流。
只有符合該伺服器與資料庫稽核政策的活動才會被擷取,並傳送至 Amazon Kinesis Data Streams。在啟用資料庫活動串流且政策鎖定時,資料庫管理員無法變更稽核政策或移除稽核記錄。
重要
若已啟用特定資料庫的資料庫稽核規格,且政策處於鎖定狀態,則無法捨棄該資料庫。
如需有關 SQL Server 稽核的詳細資訊,請參閱 Microsoft SQL Server 文件中的 SQL Server 稽核元件
Oracle 資料庫和 SQL Server 的非原生稽核欄位
在您啟動資料庫活動串流時,每個資料庫事件都會產生對應的活動串流事件。例如,資料庫使用者可能會執行 SELECT
和 INSERT
陳述式。資料庫會稽核這些事件,並將其傳送至 Amazon Kinesis Data Streams。
串流中的事件會以 JSON 物件表示。JSON 物件包含 DatabaseActivityMonitoringRecord
,其中包含 databaseActivityEventList
陣列。陣列中的預先定義欄位包含 class
、clientApplication
以及 command
。
根據預設,活動串流不包含引擎原生稽核欄位。您可以設定 Amazon RDS for Oracle 和 Amazon RDS for Oracle,使其能在 engineNativeAuditFields
JSON 物件中包含這些額外欄位。
在 Oracle 資料庫中,整合稽核權杖中的大部分事件都可映射至 RDS 資料活動串流中的欄位。例如,統一稽核中的 UNIFIED_AUDIT_TRAIL.SQL_TEXT
欄位會映射至資料庫活動串流中的 commandText
欄位。但是,如 OS_USERNAME
等 Oracle 資料庫稽核欄位,則不會映射到資料庫活動串流中的預先定義欄位。
在 SQL Server 中,SQLAudit 所記錄的大部分事件欄位都會對應至 RDS 資料庫活動串流的欄位。例如,稽核 sys.fn_get_audit_file
的 code
欄位會對應至資料庫活動串流的 commandText
欄位。但是,如 permission_bitmask
等 SQL Server 資料庫稽核欄位,則不會對應到資料庫活動串流中的預先定義欄位。
如需 databaseActivityEventList 的詳細資訊,請參閱 適用於資料庫活動串流的 databaseActivityEventList JSON 陣列。
資料庫參數群組覆寫
一般而言,您可以透過連接參數群組,在 RDS 中開啟統一稽核功能。但是,資料庫活動串流需要其他配置。為了改善您的客戶體驗,Amazon RDS 會執行下列內容:
-
如果您啟用活動串流,則 RDS for Oracle 會忽略參數群組中的稽核參數。
-
如果您停用活動串流,則 RDS for Oracle 會不再忽略稽核參數。
SQL Server 的資料庫活動串流與您在 SQL 稽核選項中設定的任何參數皆無關。
資料庫活動串流的非同步模式
Amazon RDS 中的活動串流始終為非同步。在資料庫工作階段產生活動串流事件時,工作階段會立即傳回正常的活動。Amazon RDS 會在背景中將活動串流事件變成耐久的記錄。
如果在背景任務中發生錯誤,Amazon RDS 就會產生事件。此事件會指出活動串流事件記錄可能遺失的任何時段的開頭和結尾。非同步模式對資料庫效能的幫助較大,對活動串流精準度的幫助較小。
資料庫活動串流的要求與限制
在 RDS 中,資料庫活動串流具有以下要求和限制:
-
資料庫活動串流需要使用 Amazon Kinesis。
-
AWS Key Management Service 資料庫活動串流需要 (AWS KMS),因為它們一律會加密。
-
將其他加密套用至 Amazon Kinesis 資料串流與已使用 AWS KMS 金鑰加密的資料庫活動串流不相容。
-
您可自行建立和管理稽核政策。與 Amazon Aurora 不同,根據預設,RDS for Oracle 不會擷取資料庫活動。
-
您可自行建立和管理稽核政策或規格。與 Amazon Aurora 不同,根據預設,Amazon RDS 不會擷取資料庫活動。
-
於異地同步備份部署中,僅於主要資料庫執行個體上啟動資料庫活動串流。活動串流會自動稽核主資料庫執行個體和備用資料庫執行個體。容錯移轉期間不需要執行其他步驟。
-
重新命名資料庫執行個體並不會建立新的 Kinesis 串流。
-
RDS for Oracle 不支援 CDB。
-
不支援僅供讀取複本。
區域和版本可用性
每個資料庫引擎的特定版本以及 AWS 區域的功能可用性和支援各自不同。如需有關資料庫活動串流版本和區域可用性的詳細資訊,請參閱 Amazon 中資料庫活動串流支援的區域和資料庫引擎 RDS。
支援資料庫活動串流的資料庫執行個體類別
針對 RDS for Oracle,您可以搭配下列資料庫執行個體類別來使用資料庫活動串流:
-
db.m4.*large
-
db.m5.*large
-
db.m5d.*large
-
db.m6i.*large
-
db.r4.*large
-
db.r5.*large
-
db.r5.*large.tpc*.mem*x
-
db.r5b.*large
-
db.r5b.*large.tpc*.mem*x
-
db.r5d.*large
-
db.r5.large*
-
db.r6i.*large.tpc*.mem*x
-
db.x2idn.*large
-
db.x2iedn.*large
-
db.x2iezn.*large
-
db.z1d.*large
針對 RDS for SQL Server,您可以搭配下列資料庫執行個體類別來使用資料庫活動串流:
-
db.m4.*large
-
db.m5.*large
-
db.m5d.*large
-
db.m6i.*large
-
db.r4.*large
-
db.r5.*large
-
db.r5b.*large
-
db.r5d.*large
-
db.r5.large*
-
db.x1e.*large
-
db.x2iedn.*large
-
db.z1d.*large
如需執行個體類別類型的詳細資訊,請參閱資料庫執行個體類別。