Amazon CloudTrail 是一項 AWS 服務,它能幫助你監控和記錄你在 AWS 帳戶中的活動。簡單來說,它就像你 AWS 帳戶的飛行記錄器或監視器,記錄了誰在什麼時間、從哪裡、執行了什麼操作。
Amazon CloudTrail 的核心概念與功能
CloudTrail 的主要目標是提供帳戶活動的透明度,這對於安全稽核、營運故障排除和合規性要求至關重要。
- 活動日誌記錄 (Activity Logging):
- 事件記錄:CloudTrail 會記錄 AWS 帳戶中的所有 API 呼叫和非 API 事件。這包括透過 AWS 管理控制台、AWS SDKs、命令列工具和其他 AWS 服務進行的操作。
- 詳細資訊:每個記錄的事件都包含了詳細資訊,例如:
- 執行者 (Who):執行操作的使用者身份(IAM 使用者、IAM 角色、根使用者)。
- 操作內容 (What):執行了什麼 AWS API 操作(例如 RunInstances、PutObject、CreateTable)。
- 操作時間 (When):操作發生的確切時間。
- 操作來源 (Where):操作的來源 IP 位址。
- 涉及資源 (Which):操作涉及的 AWS 資源(例如 EC2 實例 ID、S3 儲存桶名稱)。
- 其他細節:包括使用者代理、事件來源、錯誤代碼等。
- Trail (追蹤):
- 配置記錄範圍:一個「追蹤」是 CloudTrail 的主要配置單元。你可以配置一個追蹤來記錄所有 AWS 區域的事件,或僅記錄特定區域的事件。
- 日誌傳遞目標:追蹤會將記錄的事件傳遞到指定的 Amazon S3 儲存桶,這也是你保存和分析日誌的主要位置。你也可以選擇將日誌傳遞到 Amazon CloudWatch Logs,方便實時監控和警報。
- 事件歷史記錄 (Event History):
- CloudTrail 控制台提供了過去 90 天的事件歷史記錄,你可以在這裡快速查詢和篩選最近的事件。這對於即時故障排除和安全調查很有用。
- 洞察 (Insights):
- CloudTrail Insights 是一項進階功能,它會持續監控你的 AWS 帳戶活動,並自動偵測不尋常的活動模式。例如,如果突然出現異常大量的 API 呼叫,或者有人從不尋常的位置登入,Insights 會發出警報,幫助你快速識別潛在的安全威脅或營運問題。
- 日誌檔案完整性驗證 (Log File Integrity Validation):
- CloudTrail 提供了日誌檔案完整性驗證功能。它會定期為日誌檔案建立數位簽章和雜湊 (hash),你可以使用這些雜湊來驗證日誌檔案自交付到 S3 後是否被修改、刪除或篡改,這對於合規性非常重要。
Amazon CloudTrail 的應用場景
- 安全稽核與合規性 (Security Auditing & Compliance):
- 「誰做了什麼?」:輕鬆回答安全審查員和合規性團隊提出的問題,例如「誰刪除了這個 S3 儲存桶?」「誰更改了這個 IAM 策略?」。
- 符合法規要求:許多合規性標準(如 HIPAA、PCI DSS、ISO 27001)都要求對系統活動進行詳細記錄,CloudTrail 是滿足這些要求的關鍵工具。
- 營運故障排除 (Operational Troubleshooting):
- 當應用程式或服務出現問題時,可以檢查 CloudTrail 日誌,找出最近導致問題的 API 呼叫或配置更改。
- 了解資源的生命週期事件,例如何時啟動或終止了 EC2 實例。
- 帳戶活動監控 (Account Activity Monitoring):
- 透過與 CloudWatch Logs 整合,你可以建立警報,當特定敏感操作發生時(例如建立新的 IAM 使用者、禁用多因素驗證),立即收到通知。
- 監控未經授權的 API 呼叫嘗試,偵測潛在的攻擊行為。
- 資源變化追蹤 (Resource Change Tracking):
- 追蹤 AWS 資源的配置變更歷史,了解誰在何時更改了什麼,這對於配置管理和災害恢復非常有用。
Amazon CloudTrail 的優勢
- 全面記錄:記錄你 AWS 帳戶中的幾乎所有操作。
- 高透明度:提供詳細的事件日誌,幫助你了解帳戶中發生的一切。
- 安全與合規:提供日誌完整性驗證,並滿足多項合規性要求。
- 全託管服務:你無需管理任何底層基礎設施,AWS 會自動處理日誌的收集、儲存和交付。
- 易於整合:可與 Amazon S3、CloudWatch Logs、AWS Lambda、Amazon Athena 等服務整合,用於日誌儲存、監控、分析和自動化響應。
Amazon CloudTrail 的計費方式
Amazon CloudTrail 的計費方式是按使用量付費 (pay-as-you-go),主要根據你記錄的管理事件數量和數據事件數量。主要計費項目包括:
- 管理事件 (Management Events):
- 這些事件記錄了對 AWS 帳戶中資源執行控制面操作的 API 呼叫(例如創建或刪除資源、更改配置等)。
- 通常,每個帳戶都會有一個免費的 CloudTrail 追蹤,用於記錄管理事件。如果你需要創建額外的追蹤來記錄管理事件,則需要付費。
- CloudTrail Insights 也屬於管理事件範疇,但會產生額外費用。
- 資料事件 (Data Events):
- 這些事件記錄了對資源執行資料面操作的 API 呼叫,這些操作通常數量非常大,且頻繁發生。例如,S3 儲存桶中的
GetObject
(讀取對象) 或PutObject
(上傳對象) 操作,以及 Lambda 函式的Invoke
(調用) 操作。 - 啟用資料事件記錄是額外收費的,因為它們會產生大量的日誌。你可以選擇記錄特定資源的資料事件。
- 這些事件記錄了對資源執行資料面操作的 API 呼叫,這些操作通常數量非常大,且頻繁發生。例如,S3 儲存桶中的
- CloudTrail Insights 事件 (CloudTrail Insights Events):
- 這是 CloudTrail 的進階功能,它會分析你的 CloudTrail 管理事件日誌,並偵測不尋常的 API 活動模式。
- 費用是根據 Insights 處理的管理事件數量來計算。
- S3 儲存和資料傳輸費用:
- 雖然 CloudTrail 本身服務免費部分或有特定收費,但它將日誌傳遞到 S3 儲存桶時,S3 的儲存費用和資料傳輸費用仍會單獨計費。
AWS 提供免費試用層 (Free Tier),通常包括每個 AWS 帳戶一個免費的管理事件追蹤。這對於大多數使用者來說,已經能提供基本的安全和營運日誌記錄。
由於具體價格會因地區、你記錄的事件數量、事件類型(管理或資料)、以及是否啟用 Insights 而有很大差異,建議你查閱 AWS 官方網站的 Amazon CloudTrail 定價頁面 (aws.amazon.com/cloudtrail/pricing/),並使用 AWS 定價計算器 來估算你的具體成本。
總而言之,Amazon CloudTrail 是你在 AWS 雲端環境中維持安全、合規和有效營運的基礎工具。它提供了一個不可或缺的記錄機制,讓你能夠透明地監控和審計你的 AWS 資源活動。