如何使用日誌來追蹤 Amazon Redshift 資料庫叢集中的活動?

2 分的閱讀內容
0

如何在 Amazon Redshift 叢集上執行資料庫稽核?

簡短描述

Amazon Redshift 提供三種記錄選項:

稽核日誌和 STL 資料表會記錄資料庫層級活動,例如哪些使用者登入以及何時登入。這些資料表也會記錄這些使用者執行的 SQL 活動以及執行時間。CloudTrail 會追蹤在服務層級執行的活動。

**注意:**若要使用外部資料表檢視日誌,請使用 Amazon Redshift Spectrum。如需詳細資訊,請參閱使用 Amazon Redshift Spectrum 分析資料庫稽核日誌的安全性和合規性

解決方法

稽核日誌和 STL 資料表

下表比較稽核日誌和 STL 資料表。選擇適合您的使用案例的記錄選項。

稽核日誌STL 資料表
必須啟用。若要啟用稽核記錄,請按照使用主控台設定稽核使用 Amazon Redshift CLI 和 API 設定記錄的步驟進行操作。在資料倉儲叢集中的每個節點上自動提供。
除非您定義 Amazon S3 生命週期規則以自動封存或刪除檔案,否則稽核日誌檔案會無限期儲存。如需詳細資訊,請參閱對象生命週期管理日誌歷史記錄會儲存兩到五天,視日誌用量和可用磁碟空間而定。若要延長保留期,請使用 GitHub 上 AWS 實驗室中的 Amazon Redshift 系統對象持續性公用程式
存取稽核日誌檔案不需要存取 Amazon Redshift 資料庫。存取 STL 資料表需要存取 Amazon Redshift 資料庫。
檢閱 Amazon S3 中儲存的日誌不需要資料庫運算資源。針對 STL 資料表執行查詢需要資料庫運算資源,就像執行其他查詢一樣。
使用時間戳記,您可以將程序 ID 與資料庫活動關聯。叢集重新啟動不會影響 Amazon S3 中的稽核日誌。並非總是可以將程序 ID 與資料庫活動關聯,因為叢集重新啟動時可能會回收程序 ID。
將資訊儲存在下列日誌檔案中:
  • 連線日誌
  • 使用者日誌
  • 使用者活動日誌 **注意:**您必須為使用者活動日誌啟用 enable_user_activity_logging 資料庫參數。如需詳細資訊,請參閱啟用記錄。 | 將資訊儲存在多個資料表中。使用下列資料表來檢閱與 S3 稽核日誌中儲存的內容類似的資訊:
  • SVL_STATEMENTTEXT: 提供已在系統上執行的 SQL 命令的完整記錄。合併 STL_DDLTEXT、STL_QUERYTEXT 和 STL_UTILITYTEXT 資料表中的所有資料列。
  • STL_CONNECTION_LOG: 日誌身分驗證嘗試、連線或中斷連線。 | | 記錄使用者活動日誌中的所有 SQL 陳述式。| 執行的查詢都會記錄在 STL_QUERY 中。DDL 陳述式會記錄在 STL_DDLTEXT 中。非 SELECT SQL 命令的文字會記錄在 STL_UTILITYTEXT 中。| | Amazon Redshift 收到陳述式後會立即予以記錄。Amazon S3 上的檔案會以批次方式更新,可能需要幾小時才會顯示。| 每個 SQL 陳述式執行後都產生日誌。| | 記錄誰執行了什麼動作以及該動作發生的時間,但不記錄執行動作花費的時間。| 使用 STARTTIME 和 ENDTIME 欄來確定完成活動花費的時間。若要確定哪個使用者執行了操作,請將 SVL_STATEMENTTEXT (userid) 與 PG_USER (usesysid) 結合使用。| | 您需支付日誌在 Amazon S3 中使用的儲存費用。| STL 資料表儲存無須額外付費。| | 記錄領導節點專屬查詢。| 不記錄領導節點專屬查詢。|

CloudTrail

使用 CloudTrail 收集的資訊,您可以確定成功向 AWS 服務發出的請求、提出請求的人員以及提出請求的時間。如需詳細資訊,請參閱使用 AWS CloudTrail 記錄 Amazon Redshift API 呼叫

除非您定義生命週期規則以自動封存或刪除檔案,否則 CloudTrail 日誌檔案會無限期儲存在 Amazon S3 中。如需詳細資訊,請參閱對象生命週期管理


相關資訊

調校查詢效能

使用者活動日誌版本備註

AWS 官方
AWS 官方已更新 3 年前