View a markdown version of this page

使用資料庫活動串流來監控 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_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 來設定資料庫活動串流。一般而言,您可如下所示,設定資料庫活動串流:

  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 的非原生稽核欄位

在您啟動資料庫活動串流時,每個資料庫事件都會產生對應的活動串流事件。例如,資料庫使用者可能會執行 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.r6i.*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.r6i.*large

  • db.x1e.*large

  • db.x2iedn.*large

  • db.z1d.*large

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