使用資料庫活動串流來監控 Amazon RDS - Amazon Relational Database Service

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

使用資料庫活動串流來監控 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 資料字典檢視。

一般而言,您可如下所示,設定資料庫活動串流:

  1. 透過使用 CREATE AUDIT POLICY 命令,建立 Oracle 資料庫稽核政策。

    Oracle 資料庫會產生稽核記錄。

  2. 透過使用 AUDIT POLICY 命令,啟用稽核政策。

  3. 設定資料庫活動串流。

    只有符合 Oracle 資料庫稽核政策的活動才會被擷取,並傳送至 Amazon Kinesis Data Streams。在啟用資料庫活動串流時,Oracle 資料庫管理員無法變更稽核政策或移除稽核記錄。

若要進一步了解統一稽核政策,請參閱 Oracle 資料庫安全指南中的關於使用統一稽核政策和稽核來稽核活動

在 Microsoft SQL Server 中進行稽核

資料庫活動串流使用 SQLAudit 功能來稽核 SQL Server 資料庫。

RDS for SQL Server 執行個體包含下列項目:

  • 伺服器稽核 — SQL Server 稽核會收集伺服器或資料庫層級動作的單一執行個體,以及要監控的動作群組。伺服器層級稽核 RDS_DAS_AUDITRDS_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 來設定資料庫活動串流。一般而言,您可如下所示,設定資料庫活動串流:

  1. (選用) 使用 CREATE DATABASE AUDIT SPECIFICATION 命令建立資料庫稽核規格,並將其連結至 RDS_DAS_AUDIT 伺服器稽核。

  2. (選用) 使用 ALTER SERVER AUDIT SPECIFICATION 命令修改伺服器稽核規格,並定義政策。

  3. 啟用資料庫和伺服器稽核政策。例如:

    ALTER DATABASE AUDIT SPECIFICATION [<Your database specification>] WITH (STATE=ON)

    ALTER SERVER AUDIT SPECIFICATION [RDS_DAS_SERVER_AUDIT_SPEC] WITH (STATE=ON)

  4. 設定資料庫活動串流。

    只有符合該伺服器與資料庫稽核政策的活動才會被擷取,並傳送至 Amazon Kinesis Data Streams。在啟用資料庫活動串流且政策鎖定時,資料庫管理員無法變更稽核政策或移除稽核記錄。

    重要

    若已啟用特定資料庫的資料庫稽核規格,且政策處於鎖定狀態,則無法捨棄該資料庫。

如需有關 SQL Server 稽核的詳細資訊,請參閱 Microsoft SQL Server 文件中的 SQL Server 稽核元件

Oracle 資料庫和 SQL Server 的非原生稽核欄位

在您啟動資料庫活動串流時,每個資料庫事件都會產生對應的活動串流事件。例如,資料庫使用者可能會執行 SELECTINSERT 陳述式。資料庫會稽核這些事件,並將其傳送至 Amazon Kinesis Data Streams。

串流中的事件會以 JSON 物件表示。JSON 物件包含 DatabaseActivityMonitoringRecord,其中包含 databaseActivityEventList 陣列。陣列中的預先定義欄位包含 classclientApplication 以及 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_filecode 欄位會對應至資料庫活動串流的 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

如需執行個體類別類型的詳細資訊,請參閱資料庫執行個體類別