examlab .net 用最有效率的方法,考取最有價值的證照
本篇導覽 約 27 分鐘

集中式日誌——CloudTrail 與 VPC Flow Logs

5,400 字 · 約 27 分鐘閱讀 ·

SCS-C02 Domain 2 Task 2.3/2.4 集中式日誌全攻略:CloudTrail 組織追蹤、VPC Flow Logs、Route 53 Resolver 查詢日誌、CloudWatch Logs 跨帳號傳送、S3 Object Lock 日誌不可竄改性、CloudTrail 摘要檔完整性驗證,以及日誌遺失的深度排錯決策樹——bucket policy 拒絕、KMS key policy 拒絕、IAM role 缺口、log group 資源政策...

立即做 20 題練習 → 免費 · 不用註冊 · SCS-C02

集中式日誌是 Domain 2 所有其他管控機制的基礎——若缺乏一份針對每個帳號、每個區域都能防竄改、完整且可查詢的事件紀錄,威脅偵測就是在猜謎,事件回應就是在考古,合規舉證就是在說謊。在 SCS-C02 考試中,集中式日誌是 Domain 2(安全日誌與監控,佔比 18%)中 Task 2.3(設計與實作日誌解決方案)和 Task 2.4(排查日誌問題)的核心錨點。Security Specialty 考試在排錯方面比 SAP-C02 要求更嚴格——你會遇到一個情境:CloudTrail 顯示「追蹤已啟用」但 S3 中沒有任何物件出現,或 VPC Flow Log 設定顯示「啟用中」但 Athena 回傳零筆資料,而你必須將故障追溯到 bucket policy、KMS key policy、IAM role 或 log group 資源政策中的某一具體行。

本指南從安全工程師的角度出發,涵蓋集中式日誌架構(CloudTrail 組織追蹤、VPC Flow Logs、Route 53 Resolver 查詢日誌、CloudWatch Logs 跨帳號傳送至 Log Archive 帳號),並深入剖析考試最愛考的排錯決策樹:日誌遺失、目的地 AccessDenied、KMS 加密失敗、日誌檔驗證不符,以及跨帳號傳送錯誤。本指南也涵蓋日誌完整性保證——CloudTrail 摘要檔、S3 Object Lock 的 WORM 不可竄改性,以及能通過稽核和法律調查的監管鏈模式。

什麼是 SCS-C02 情境下的集中式日誌?

AWS 的集中式日誌是一門學科:將每一條安全相關的日誌流——CloudTrail 管理事件與資料事件、VPC Flow Logs、Route 53 Resolver 查詢日誌、CloudWatch Logs、ALB 存取日誌、WAF 日誌——從每個成員帳號傳送至一個獨立、強化的 Log Archive 帳號,讓安全工程師能從單一位置對整個組織進行調查、偵測,並舉證完整性。SCS-C02 對集中式日誌的評判聚焦三個維度:完整性(每個帳號、每個區域、每條相關日誌流都被擷取)、完整性保護(日誌無法被入侵工作負載的攻擊者竄改或刪除),以及可運作性(當某個環節出問題時,安全工程師能在幾分鐘而非幾天內診斷並恢復)。

SCS-C02 與 SAP-C02 測驗集中式日誌的不同之處

解決方案架構師 Professional 考試測試架構選擇——給定 30 天改造期限,選擇正確的 CloudTrail Lake、Security Lake 和 SIEM 訂閱者組合。Security Specialty 考試測試機制與故障模式——給定 CloudTrail 日誌在三天前停止出現在 S3 的事實,找出確切的錯誤配置。預期 SCS-C02 題目會貼出一份 bucket policy、KMS key policy 或 IAM role 信任政策,並詢問「傳送為何失敗?」正確答案需要逐行閱讀政策。

安全工程師需負責的六條集中式日誌流

一套完整的集中式日誌設定會將六條日誌流匯入 Log Archive bucket:CloudTrail 管理事件(控制平面 API 呼叫)、CloudTrail 資料事件(S3 GetObject、Lambda Invoke、DynamoDB GetItem,針對特定資源)、VPC Flow Logs(IP 層網路元資料)、Route 53 Resolver 查詢日誌(VPC 工作負載的每次 DNS 解析)、CloudWatch Logs(透過 subscription filter 轉送的 OS 層與應用程式日誌),以及服務專屬日誌(ALB 存取、WAF 完整流量、S3 伺服器存取)。每條日誌流有不同的傳送機制、不同的 IAM 權限介面,以及不同的故障模式——而所有六條流必須匯聚至一個不可竄改的存檔。

白話文解釋

集中式日誌是一個六個 AWS 服務搶同一個段落的主題。三個具體類比能讓結構清晰易懂。

類比一:企業園區保全 CCTV 與日誌簿系統

把企業園區想像成有十五棟大樓(你的 AWS 成員帳號)、一個中央警衛室(你的 Log Archive 帳號),以及一個調查台(你的 Security/Audit 帳號)。集中式日誌就是讓每棟大樓的每次門禁刷卡、每個攝影機畫面、每位訪客簽名,都以防竄改的方式搭配完整的證據監管鏈,送達中央警衛室。

記錄每次刷卡與每扇門事件的大樓門禁帳本就是 CloudTrail——不論哪棟大樓刷的卡,每次 API 呼叫都被寫入主帳本。存放一次性寫入光碟並密封在鎖箱中的 CCTV 錄影機就是啟用 Object Lock Compliance 模式的 S3 Log Archive bucket——一旦錄影落地,在法規保留期限內任何人都無法編輯或刪除。每個停車場的廣角攝影機就是 VPC Flow Logs——擷取每輛進出的車(封包),但不記錄車內裝了什麼。記錄每通打給前台電話的訪客無線電派遣員就是 Route 53 Resolver 查詢日誌——每次工作負載的 DNS 查詢(查找)。翻閱十年刷卡記錄的調查員用 SQL 做搜尋的筆記本就是 CloudTrail Lake。當中央警衛室發現某天的錄影缺失時,排錯流程是:攝影機有沒有電源(IAM role 是否掛載)、纜線有沒有接到錄影機(S3 bucket policy 是否允許服務主體)、錄影機有沒有儲存空間(KMS key policy 是否允許加密),以及有沒有人絆倒斷路器(OU 層級的 SCP)。這個流程正是 SCS-C02 Task 2.4 的排錯樹。

類比二:銀行分行金庫網絡

想像一個全國銀行有十五家分行(成員帳號)、一個中央存檔金庫(Log Archive 帳號),以及一個舞弊調查團隊(Security 帳號)。集中式日誌就是讓每家分行的每張交易單、每份電匯指示、每條稽核軌跡,都能以銀行等級的防竄改證據送達中央金庫。

附有密碼學雜湊值的交易日誌就是啟用日誌檔完整性驗證的 CloudTrail——每小時,銀行公布一份包含每個日誌檔 SHA-256 雜湊值的摘要檔案,並以只有 AWS 持有的 RSA 金鑰簽署。若任何人在傳送後竄改日誌,驗證就會失敗。從每家分行取走密封袋並送達中央金庫的保全快遞服務就是 CloudTrail 跨帳號傳送至 S3 的流程,而 bucket policy 充當金庫門口的警衛——快遞必須穿著正確制服(cloudtrail.amazonaws.com 服務主體)並出示正確的 SourceArn ID,袋子才會被接收。供十年保留期使用的金庫保險格就是 S3 Object Lock Compliance 模式。舞弊團隊用來檢視每筆交易的顯微鏡就是 CloudTrail 資料事件——沒有它,團隊只能證明某位經理打開了金庫,但無法確認他們碰了哪些格子。當某家分行回報「我們派了快遞但袋子從未到達」,舞弊團隊按照排錯樹作業:袋子有沒有封好(追蹤狀態是否已啟用)、快遞有沒有接受袋子(KMS key 是否允許解密)、金庫門有沒有打開(bucket policy 是否允許 PutObject),以及地址是否正確(S3 ARN 是否與追蹤設定相符)。整條鏈上任何一個缺失都會在銀行的 CloudTrail 自我監控中留下 AccessDenied 的線索。

類比三:醫院急診部的病歷管理

想像一個地區醫療網絡有十五家診所(成員帳號)、一個中央病歷部(Log Archive 帳號),以及一個感染管制小組(Security 帳號)。集中式日誌就是讓每次病患就診——每張處方、每個檢驗結果、每個生命徵象、每份醫師筆記——都以可舉證的監管鏈複製到中央存檔,供醫療事故和法規稽查使用。

電子健康記錄系統就是 CloudTrail——記錄每家診所每項臨床行動的單一簽署事實來源。生命徵象遙測串流就是 VPC Flow Logs——高量持續資料,顯示每家診所的進出流量。感染篩查派遣日誌就是 Route 53 Resolver 查詢日誌——每次可能顯示病患接觸不安全環境的對外查詢。監管鏈信封就是 CloudTrail 摘要檔——一個防竄改的包裝,證明記錄未被竄改。存放在保稅倉庫並密封信封的法規存放金庫就是 S3 Object Lock Compliance 模式。當病歷部回報「第 7 診所已停止傳送記錄 48 小時」,醫療長執行排錯清單:本地終端有沒有登入(CloudTrail 追蹤狀態)、醫師有沒有處方權(傳送用的 IAM role)、印表機有沒有連線(S3 bucket policy)、碳粉匣有沒有裝好(KMS key policy),以及有沒有進行消防演習(SCP 豁免)阻斷網路?每筆缺少的記錄都指向一個具體的故障介面,安全工程師必須知道哪個介面會產生哪種症狀。

集中式日誌在 SCS-C02 的參考架構

考試假設你熟悉 Security Reference Architecture (SRA) 的配置。記住這些區塊——考試答案會直接對應其中。

三種帳號角色

  • Log Archive 帳號 — 持有 S3 bucket,接收 CloudTrail、Config、VPC Flow Logs、Resolver 查詢日誌、ALB 存取日誌和 WAF 日誌。Bucket policy 授予相關服務主體的跨帳號寫入權限。KMS key policy 授予這些主體加密與解密的權限。S3 Object Lock Compliance 模式強制執行 WORM 保留期。
  • Security/Audit 帳號 — 託管偵測工具委派管理員(GuardDuty、Security Hub、Inspector v2、Macie、Detective、Access Analyzer)、用於 SQL 鑑識的 CloudTrail Lake 事件資料存儲、CloudWatch 跨帳號可觀測性監控帳號,以及傳送至 SIEM 的 Firehose pipeline。
  • 成員工作負載帳號 — 產生日誌,但不基於安全目的在本地保留。本地 CloudWatch Logs 可能存在供應用程式除錯;安全相關的日誌流必須流出到 Log Archive bucket。

為何需要兩個帳號而非一個

Log Archive 帳號持有原始證據——對產生者唯寫、對稽核人員唯讀、受 Object Lock 保護。即使是 SOC 分析師也無法從中刪除。Security 帳號持有主動工具——GuardDuty 主控台、Security Hub 儀表板、CloudTrail Lake 查詢主控台。角色分離意味著即使 SOC 分析師憑證遭入侵,也無法摧毀證據存檔;即使 Log Archive 憑證遭入侵,也無法關閉偵測工具。這種分離是考試的重要訊號。

集中式日誌必須使用獨立的 Log Archive 帳號和 Security 帳號,這兩個帳號必須與管理帳號及任何工作負載帳號分開。 將日誌 bucket 放在管理帳號中違反最小權限原則,並讓證據暴露在管理帳號遭入侵的風險下。將偵測工具放在 Log Archive 帳號中,則讓分析師憑證暴露在與證據存檔相同的爆炸半徑中。SRA 分割——Log Archive(不可變儲存)、Security 帳號(主動工具)、管理帳號豁免於兩者——是每道 SCS-C02 集中式日誌架構題的答案模式。

CloudTrail 組織追蹤——基礎

CloudTrail 是第一條集中式日誌流。若沒有組織追蹤,所有其他日誌流都是不完整的,因為攻擊者可以停用各帳號的追蹤。

組織追蹤的運作機制

組織追蹤在管理帳號或委派管理員帳號建立,並套用至組織中每個現有及未來成員帳號的每個區域。追蹤傳送至 Log Archive 帳號中的一個 S3 bucket。成員帳號無法停用、修改或讀取組織追蹤的設定——只有管理帳號或委派管理員才能操作。這是對抗入侵工作負載帳號的攻擊者試圖關閉日誌記錄的結構性防禦。

管理事件 vs 資料事件

管理事件(預設開啟,第一份免費)記錄控制平面 API 呼叫——RunInstancesCreateRolePutBucketPolicy資料事件(預設關閉,依事件計費)記錄資料平面活動——每次 S3 GetObject、每次 Lambda Invoke、每次 DynamoDB GetItem。SCS-C02 會測試你是否知道資料事件需要明確啟用。對於「證明此 bucket 中哪些物件被外洩」這類鑑識問題,必須有資料事件;若未事先啟用,就無法回答。

CloudTrail Insights——異常 API 偵測

CloudTrail Insights(付費附加功能)標示管理事件中的異常模式——DeleteObject 的突然激增、AssumeRole 的異常集中、某個從未使用過的區域被首次使用。Insights 發現發布至 EventBridge 以觸發自動回應。對於集中式日誌,Insights 在組織追蹤層級運行,因此跨帳號橫向移動能被偵測到。

S3 傳送——Bucket Policy 解析

Log Archive bucket policy 需要三個陳述句才能讓 CloudTrail 成功傳送:一個針對 bucket 本身的 s3:GetBucketAcl,一個針對各帳號日誌前綴路徑且附帶 bucket-owner-full-control ACL 條件的 s3:PutObject,以及一個將 aws:SourceArn 鎖定至追蹤 ARN 的 Condition 區塊以防範 confused-deputy 攻擊。缺少其中任何一項都會在追蹤狀態中產生特定的失敗特徵:「傳送失敗——AccessDenied」,主體為 cloudtrail.amazonaws.com

CloudTrail 日誌的 KMS 加密

若 Log Archive bucket 使用 SSE-KMS(建議),KMS key policy 必須允許 CloudTrail 服務主體執行 kms:GenerateDataKey*,並附帶相同的 aws:SourceArn 條件。忘記這一點是最常見的集中式日誌中斷原因之一——bucket policy 看起來正確,但每次 PutObject 都失敗,因為 CloudTrail 在上傳前無法產生資料金鑰來加密物件。

CloudTrail 追蹤寫入 SSE-KMS 加密的 bucket 時,需要三個政策權限,而非一個。 S3 bucket policy 必須允許 CloudTrail 服務主體執行 PutObject。KMS key policy 必須允許 CloudTrail 服務主體執行 GenerateDataKey。而且兩個政策都必須包含指向追蹤 ARN 的 aws:SourceArn 條件。S3 主控台不會清楚地顯示 KMS 相依性,因此追蹤可以已設定、加密可以已啟用、追蹤狀態會顯示「記錄中」,但零個物件會落地。追蹤的最近傳送錯誤訊息是診斷介面——在讀取任何政策之前先讀它。

日誌檔完整性驗證——CloudTrail 如何證明防竄改

CloudTrail 日誌檔完整性驗證每小時在 S3 平行前綴(AWSLogs/<account>/CloudTrail-Digest/)產生一份摘要檔案,其中包含前一小時傳送的每個日誌檔的 SHA-256 雜湊值,以及由 AWS 持有的 RSA 私鑰簽署的數位簽章。每份摘要檔案也包含前一份摘要的 SHA-256 雜湊值,形成雜湊鏈。要進行驗證,安全工程師執行 aws cloudtrail validate-logs --trail-arn <arn> --start-time <ts>;CLI 從 S3 摘要前綴取得摘要,對實際日誌檔物件重新計算雜湊值,驗證摘要上的 RSA 簽章,並從追蹤的第一次傳送起向後走遍整個鏈。任何日誌檔或任何摘要的修改都會導致驗證失敗,並輸出確切的失敗檔案。

日誌檔驗證對監管鏈的重要性

在法律調查和法規稽核中,問題不只是「日誌記錄了什麼」,還包括「你能證明它在傳送後未被竄改嗎?」CloudTrail 摘要雜湊鏈提供了這個證明——即使攻擊者入侵了 bucket 並修改了日誌檔,摘要不符也是可偵測的,而且這條鏈會精確揭示是何時發生的。在每條集中式日誌追蹤上始終啟用完整性驗證;稽核人員期望看到它,而法庭也將簽署的摘要視為可採納的密碼學證據。

VPC Flow Logs——網路層集中式日誌

VPC Flow Logs 擷取每個穿越 VPC、子網路或 ENI 的封包的 IP 層元資料。它是集中式日誌的第二根支柱。

在哪裡啟用 Flow Logs

三種粒度:VPC 層級(VPC 中的每個 ENI,最易於全組織推行)、子網路層級(聚焦於特定層,如 DMZ),或 ENI 層級(針對性排錯)。針對 SCS-C02 基準覆蓋,在每個帳號每個區域的每個 VPC 啟用 VPC 層級 Flow Logs——透過 Config 受管規則 vpc-flow-logs-enabled 加上 SSM 自動修復,或透過管理帳號的 CloudFormation StackSets 自動化。

Flow Log 傳送的 IAM Role

Flow Logs 需要一個 IAM role,由 VPC Flow Logs 服務扮演(assume)以寫入目的地。對於 S3 目的地,服務使用服務連結結構——不需要 role。對於 CloudWatch Logs 目的地,需要一個客戶管理的 IAM role,具備 logs:CreateLogGrouplogs:CreateLogStreamlogs:PutLogEventslogs:DescribeLogStreams 權限,且信任政策允許 vpc-flow-logs.amazonaws.com 扮演它。忘記一個權限會導致部分傳送——log group 被建立但沒有事件落地,或事件落地但沒有建立任何 stream。

自訂 Flow Log 格式

預設 flow log 格式有十四個欄位。自訂格式額外增加二十個——包括 vpc-idsubnet-idinstance-idtcp-flagspkt-srcaddrpkt-dstaddrflow-directiontraffic-path。對於安全鑑識,務必使用自訂格式。預設格式缺少 tcp-flags(用於區分僅有 SYN 的連接埠掃描與已建立連線所需),也缺少 pkt-srcaddr/pkt-dstaddr(用於識別 NAT 改寫封包後的原始來源所需)。

目的地選擇與取捨

  • S3(建議用於存檔) — 直接傳送,依年/月/日分區,長期儲存成本低廉,可用 Athena 查詢。
  • CloudWatch Logs — 在產生帳號的 log group 中,再透過 subscription filter 傳送至 Firehose 進行跨帳號處理。每 GB 費用較高,但可啟用即時 CloudWatch Logs Insights 查詢和 metric filter 警報。
  • Amazon Data Firehose — 直接傳送供即時 SIEM 使用,支援 Lambda 轉換。

Flow Logs 不擷取的內容

SCS-C02 常見陷阱。Flow Logs 擷取:往返 169.254.169.254(執行個體元資料服務)的流量、DHCP 流量、往返位於 169.254.169.253 的 Amazon DNS 解析器的流量(改用 Resolver 查詢日誌)、往返預設 VPC 路由器保留 IP 的流量、封包酬載內容(僅元資料),以及從未到達 ENI 的流量(主機內環迴)。若問題是「如何查看工作負載解析了哪些 DNS 名稱」,Flow Logs 無法回答——必須使用 Route 53 Resolver 查詢日誌。

VPC Flow Logs 不擷取對 Amazon DNS 解析器的 DNS 查詢、執行個體元資料服務請求,或封包酬載。 安全工程師常常假設「我有 flow logs,所以我可以看到 DNS 外洩」——實際上不行。對位於 169.254.169.253 的 AWS 受管解析器的 DNS 查詢和對 169.254.169.254 的 IMDS 呼叫都明確地被排除在 Flow Logs 之外,而且酬載從不被擷取。透過 Route 53 Resolver 查詢日誌偵測 DNS 外洩。透過 CloudTrail(偵測使用該 role 的 STS 呼叫)或透過強制 IMDSv2 加上 GuardDuty UnauthorizedAccess:EC2/MetadataDNSRebind 偵測 IMDS 濫用。考試會設置一個情境:「我們有完整的 Flow Logs 但找不到惡意網域」——答案是啟用 Resolver 查詢日誌。

Route 53 Resolver 查詢日誌——DNS 支柱

DNS 查詢日誌是第三條高價值日誌流,也是集中式日誌建置中最常被忽略的一條。

啟用 Resolver 查詢日誌

以每個 VPC 為單位設定,目的地為 CloudWatch Logs、S3 或 Firehose。建議的集中化模式:在 Networking 或 Security 帳號建立查詢日誌設定,透過 AWS RAM 分享給所有成員帳號,並在每次 VPC 建立時關聯。對於 Log Archive bucket 目的地,bucket policy 需要 logs.amazonaws.com(是的,即使是 S3 傳送也透過 CloudWatch Logs 服務主體)搭配適當的 aws:SourceArn 條件。

記錄的內容

關聯 VPC 中任何資源發出的每次 DNS 查詢:查詢名稱、類型、回應代碼、回應記錄、來源 VPC 和 ENI。對私有託管區域的查詢、轉送至地端解析器的查詢,以及對公共權威名稱伺服器的查詢都會被擷取。

偵測使用案例

  • 惡意軟體 C2 — 對已知惡意網域的查詢;GuardDuty 的 Backdoor:EC2/C&CActivity.B!DNS 發現就是從這條日誌流產生的。
  • DNS 外洩 — 對單一可疑網域的大量 TXT 查詢。
  • 未授權 DNS — 工作負載繞過內部解析器直接查詢 8.8.8.8(結合 Flow Logs 進行完整重建)。

CloudWatch Logs 跨帳號傳送

CloudWatch Logs 收集 OS、應用程式和 Lambda 日誌。跨帳號傳送至 Security 帳號是這些日誌流的集中化模式。

Subscription Filter

log group 上的 subscription filter 將符合條件的事件傳送至以下其中一個目的地:Firehose、Kinesis Data Stream、Lambda,或 CloudWatch Logs 跨帳號目的地。Filter pattern 可類似 SQL——{ ($.eventName = "ConsoleLogin") && ($.responseElements.ConsoleLogin = "Failure") } 只轉送失敗的主控台登入。

跨帳號目的地

Security 帳號中的 CloudWatch Logs 目的地是一個包裝 Kinesis stream 或 Firehose 的具名端點。成員帳號建立指向目的地 ARN 的 subscription filter。目的地的存取政策授予特定成員帳號 ID 執行 logs:PutSubscriptionFilter 的權限。忘記將新的成員帳號 ID 添加到目的地存取政策是「新帳號的日誌從未出現在中央 pipeline」這個經典排錯場景的根本原因。

Log Group 資源政策——被遺忘的權限介面

log group 可以有自己的資源政策,授予其他 AWS 服務或帳號寫入它的權限。常見需求:Route 53 Resolver 查詢日誌設定寫入 Networking 帳號的 log group,但另一個帳號的真實來源解析器需要資源政策允許 logs:CreateLogStreamlogs:PutLogEvents。忘記附加資源政策是 SCS-C02 經典排錯陷阱——設定看起來正確,IAM role 看起來正確,但 log group 資源層級的拒絕阻斷了寫入。

對於不透過明確 IAM role 寫入 CloudWatch Logs 的服務(Route 53 Resolver、EventBridge 日誌記錄、AWS Network Firewall 日誌記錄),log group 本身需要一個資源政策,授予服務主體呼叫 CreateLogStream 和 PutLogEvents 的權限。 這與任何 IAM role 無關——許多 AWS 服務使用服務主體直接寫入的模式。資源政策缺失的症狀是「功能已設定,但 log group 是空的,主控台看不到任何錯誤。」修復方法是使用 AWS 主控台精靈(選擇現有 log group 時會自動建立資源政策),或使用 aws logs put-resource-policy 手動寫入資源政策。在 SCS-C02 考試中,這個介面的測試情境是某條特定日誌流(通常是 DNS 或防火牆)遺失,而其他日誌流正常運作。

集中式日誌排錯——日誌遺失的決策樹

本節是 SCS-C02 Task 2.4 的核心。熟記這些決策樹。

CloudTrail 未傳送至 S3

症狀:追蹤狀態顯示「記錄中」但 S3 中沒有任何物件,或追蹤狀態面板顯示「最近傳送錯誤:AccessDenied」或「KMSAccessDenied」或類似訊息。

決策樹:

  1. 首先讀取追蹤的「最近傳送錯誤」訊息。 AWS 在那裡印出確切原因。大多數工程師跳過這步直接猜測政策。
  2. 若錯誤為 AccessDenied 且 bucket 存在 — 檢查 bucket policy。必要陳述句:針對 bucket 的 s3:GetBucketAcl,以及針對 arn:aws:s3:::<bucket>/AWSLogs/<account-id>/* 且以 cloudtrail.amazonaws.com 服務主體的 s3:PutObject。確認 aws:SourceArn 條件完全符合追蹤 ARN。
  3. 若 bucket policy 看起來正確 — 檢查 bucket policy 或套用至管理帳號的任何組織 SCP 中是否有明確拒絕。SCP 拒絕不會留下友善的訊息;若懷疑是 SCP,使用 IAM Access Analyzer 政策模擬器測試。
  4. 若錯誤為 KMSAccessDenied — bucket 使用 SSE-KMS,KMS key policy 不允許 CloudTrail。在 CloudTrail 服務主體上添加 kms:GenerateDataKey*,並將 aws:SourceArn 條件鎖定至追蹤 ARN。
  5. 若錯誤與限流相關 — 通常是暫時性的,但持續限流表示太多追蹤傳送至同一個 bucket。緩解方法:使用一條組織追蹤而非許多各帳號追蹤。
  6. 若追蹤顯示記錄中但 bucket 有零個物件且無錯誤 — 確認追蹤正在記錄至正確的 bucket(常見錯誤:手動編輯的追蹤設定指向已刪除的 bucket 名稱;CloudTrail 在設定時不驗證 bucket 是否存在)。

VPC Flow Logs 未擷取

症狀:Flow Log 設定顯示「啟用中」但 Athena 回傳零筆資料,或部分覆蓋——某些 ENI 出現而其他 ENI 沒有。

決策樹:

  1. 確認 flow log 狀態——啟用中 vs 失敗。 主控台:VPC → Flow Logs 索引標籤。CLI:aws ec2 describe-flow-logs --filter Name=resource-id,Values=<vpc-id>。若狀態為 Failed,讀取錯誤訊息——通常是缺少 IAM role 權限或目的地不存在。
  2. 對於 S3 目的地——檢查 bucket policy。 必要條件:針對 delivery.logs.amazonaws.com(VPC Flow Logs 服務主體)的 s3:PutObject,附帶 aws:SourceAccount 條件。若啟用 SSE-KMS,也要檢查 bucket KMS policy。
  3. 對於 CloudWatch Logs 目的地——檢查 IAM role。 role 必須具備 logs:CreateLogGrouplogs:CreateLogStreamlogs:PutLogEventslogs:DescribeLogStreams 以及信任 vpc-flow-logs.amazonaws.com 的信任政策。忘記 CreateLogStream 是最常見的部分失敗——log group 存在但是空的。
  4. 檢查日誌格式對齊。 若你在中途從預設格式切換至自訂格式,對原始 Glue 資料表的 Athena 查詢會靜默回傳錯誤的欄位。重新爬取 Glue 資料表並更新 Athena schema。
  5. 檢查取樣設定。 Flow Logs 本身不做取樣,但若你為了節省成本而放置 Lambda 轉換或帶有隨機取樣的 Firehose,這就解釋了為何資料列數偏低。
  6. 檢查未覆蓋的 ENI。 VPC 層級的 Flow Logs 涵蓋設定建立時存在的 ENI 以及之後建立的 ENI——但 Transit Gateway 附件的 ENI、某些設定下的 AWS Lambda Hyperplane ENI,以及服務連結 VPC 中的 ENI 可能不會出現。describe-network-interfaces 的 ENI 清單是事實來源。
  7. 檢查 AWS Health 是否有服務問題。 罕見但真實——VPC Flow Logs 曾有區域傳送延遲;AWS Health 儀表板會顯示這些問題。

CloudWatch Logs 跨帳號 Subscription 未傳送

症狀:成員帳號建立指向 Security 帳號目的地的 subscription filter,但沒有任何日誌事件到達目的地。

決策樹:

  1. 檢查目的地的存取政策。 它必須列出每個允許對目的地 ARN 呼叫 logs:PutSubscriptionFilter 的成員帳號 ID。新帳號必須明確添加。
  2. 檢查附加到目的地的 IAM role。 目的地包裝了 Kinesis Stream 或 Firehose;目的地的 role 必須允許對包裝資源執行 kinesis:PutRecordfirehose:PutRecordBatch
  3. 檢查 Kinesis stream 或 Firehose 本身。 若是 Kinesis,檢查分片數量——在高事件速率下,ProvisionedThroughputExceededException 會導致靜默丟棄。若是 Firehose,檢查目的地的 CloudWatch 錯誤日誌,查看傳送至 S3、OpenSearch 或 Splunk 的錯誤。
  4. 檢查成員帳號中的 log group 資源政策。 某些設定也需要成員帳號的 log group 授予存取——通常對 subscription filter 不必要,但某些進階模式需要。
  5. 用測試事件驗證。 使用符合 filter pattern 的合成事件執行 aws logs put-log-events;觀察目的地的監控指標 IncomingRecords 是否增加。

跨帳號日誌傳送中常見的 AccessDenied 模式

SCS-C02 中最令人沮喪的排錯情形是不說明缺少哪個權限的跨帳號 AccessDenied。常見模式:

  1. aws:SourceAccount 不符。 bucket policy 條件 aws:SourceAccount = 111111111111 拒絕來自任何其他帳號的傳送,即使 bucket policy 授予了服務主體權限。多帳號傳送需要在條件中列出多個來源帳號,或使用參照 aws:PrincipalOrgID 的金鑰條件。
  2. aws:SourceArn 不符。 過度收緊 confused-deputy 防護——將 SourceArn 鎖定至單一追蹤 ARN 的 bucket policy 會拒絕任何其他追蹤的傳送。對於多追蹤傳送,列出多個 ARN 或使用萬用字元模式。
  3. KMS key policy 缺少服務主體。 bucket policy 看起來正常,但 KMS 不允許寫入者加密。追蹤狀態面板中的錯誤訊息明確指出 KMSAccessDenied
  4. OU 層級的 SCP 拒絕了即使是服務主體的 s3:PutObject 某些合規 SCP 阻斷所有對核准 bucket 清單以外的 S3 寫入;若 Log Archive bucket 不在清單上,即使是服務連結的寫入也會失敗。
  5. VPC endpoint policy 拒絕了呼叫。 若 S3 存取透過具有限制性政策的 VPC gateway endpoint,服務連結的寫入可能被阻斷。較少見,但出現在明確提及 VPC endpoint 的考試題目中。

跨帳號日誌目的地政策中,務必包含 aws:SourceArnaws:SourceAccount 條件。 這些是 confused-deputy 防護條件——它們防止另一個客戶的 CloudTrail 追蹤(或其他 AWS 服務)被武器化以寫入你的 bucket。若沒有這些條件,bucket policy 等於說「任何 CloudTrail 都可以在這裡寫入」,這是 AWS 稱之為 confused-deputy 的跨帳號漏洞。有了這些條件,只有你的特定追蹤和你的特定帳號才能寫入。考試會放置一個缺少這些條件的 bucket policy 並詢問「安全風險是什麼?」——答案是 confused deputy 攻擊。

日誌完整性驗證——證明日誌未被竄改

沒有完整性保證的集中式日誌比沒有日誌更糟——能夠編輯日誌的攻擊者可以重寫歷史。

CloudTrail 摘要檔案

如前所述,CloudTrail 的每小時摘要檔案包含每個已傳送日誌檔的 SHA-256 雜湊值,加上前一份摘要的雜湊值,全部由 AWS 持有的 RSA 私鑰簽署。這條鏈從追蹤建立開始串起每個日誌檔;在任何環節竄改都會破壞這條鏈,並可由 aws cloudtrail validate-logs 偵測。

S3 Object Lock 的日誌不可竄改性

S3 Object Lock 在定義的保留期間內,將物件置於 WORM(寫一次讀多次)狀態。兩種模式:

  • Governance 模式 — 具有 s3:BypassGovernanceRetention 的 IAM 主體可以覆蓋鎖定。適合內部防竄改,不適合受監管的工作負載。
  • Compliance 模式 — 即使是 AWS root 帳號也無法刪除或縮短保留期。SEC 17a-4(f)、FINRA 4511 和 CFTC 1.31(c)-(d) 要求此模式。不可逆——一旦在 bucket 上設定 Compliance,就無法退回 Governance。

對於 SCS-C02 集中式日誌,在 Log Archive bucket 上使用 Compliance 模式,保留期符合最長的法規要求(通常 7 至 10 年)。

Object Lock 必須在 Bucket 建立時啟用

Object Lock 是建立 bucket 時設定的屬性——無法事後啟用。改造路徑:建立一個啟用 Object Lock 的新 bucket,重新導向 CloudTrail 和其他傳送,使用 S3 Batch Operations 在複製時套用保留元資料複製歷史物件,然後停用舊 bucket。這在繁忙的日誌 bucket 上需要數週的遷移時間,是 SCS-C02 已知的考點。

生命週期政策與 Object Lock 共存

Compliance 模式防止刪除,但不阻止儲存層轉換。生命週期政策可以按計畫將鎖定的物件從 S3 Standard 移至 Standard-IA、Glacier Instant Retrieval、Glacier Deep Archive,在長期保留尾端將成本降低 95%,同時不破壞 WORM 保證。

CloudTrail Lake 不可竄改性作為替代方案

CloudTrail Lake(SQL 可查詢事件資料存儲)提供自己的不可竄改性——攝入的事件在保留期到期前(最長 10 年)無法被修改或刪除。對於 SQL 鑑識使用案例,Lake 的不可竄改性已足夠,且比執行 Object Lock 驗證更簡單。但對於 SEC 17a-4 等原始證據法規要求,S3 上的 Object Lock 仍是必要的,因為 Lake 目前尚未取得這些法規的認證 WORM 存儲資格。成熟的集中式日誌同時執行兩者——Lake 用於查詢,S3 Object Lock 用於舉證。

S3 Object Lock Compliance 模式是唯一能在 root 帳號遭入侵後依然存活的 AWS 儲存設定。 Compliance 模式意味著即使是 AWS root 帳號也無法在到期前縮短保留期或刪除鎖定的物件——這是設計上的不可逆性。這使其成為符合 SEC 17a-4(f)、FINRA 4511 和 CFTC 法規的合規儲存方案。Governance 模式可被具有特權的 IAM 主體繞過,不滿足這些法規要求。在 SCS-C02 考試中,任何詢問「能在勒索軟體、內部威脅或 root 帳號遭入侵後存活的日誌儲存」的情境,答案是 Compliance 模式;任何對受監管日誌提供 Governance 模式的選項都是錯誤的。

跨帳號日誌傳送模式

集中式日誌從根本上是一個跨帳號傳送問題。掌握這些模式,你就掌握了排錯。

模式一——服務主體跨帳號直接寫入

最常見的模式:成員帳號的 CloudTrail 或 VPC Flow Logs 直接寫入另一個帳號的 Log Archive bucket。bucket policy 授予服務主體(cloudtrail.amazonaws.comdelivery.logs.amazonaws.com)執行 s3:PutObject 的權限,並附帶 aws:SourceAccountaws:SourceArn 條件進行 confused-deputy 防護。無需 IAM role 扮演——服務主體直接以政策授予的權限寫入。

模式二——透過目的地的跨帳號 Subscription Filter

上述 CloudWatch Logs 跨帳號流程。成員帳號 subscription filter → Security 帳號 CloudWatch Logs 目的地 → Security 帳號 Kinesis Firehose → S3 或 SIEM。目的地的存取政策是跨帳號的權限介面。

模式三——用於拉取式聚合的跨帳號 Role

某些模式是反向的——Security 帳號在每個成員帳號中扮演一個 role 以本地讀取日誌。用於偏好拉取架構的 SIEM 連接器。跨帳號 role 的信任政策允許 Security 帳號;role 的權限允許 logs:GetLogEventslogs:FilterLogEvents 等。

模式四——EventBridge 跨帳號事件匯流排

安全發現(Security Hub、GuardDuty)透過 EventBridge 流動。成員帳號預設事件匯流排 → 跨帳號規則指向 Security 帳號的事件匯流排 → SOC 工具從那裡消費。Security 事件匯流排上的 EventBridge 資源政策授予成員帳號執行 events:PutEvents 的權限。

AccessDenied 錯誤清單

對每種模式,AccessDenied 錯誤目錄包括:資源政策中缺少服務主體、缺少 aws:SourceAccountaws:SourceArn 條件導致過寬允許(安全風險)或過窄拒絕(傳送失敗)、KMS key policy 缺少服務主體、log group 資源政策完全缺失、IAM role 信任政策缺少 vpc-flow-logs.amazonaws.com 或其他服務主體、OU 層級的 SCP 拒絕,以及 VPC endpoint policy 拒絕呼叫。

集中式日誌的成本架構

成本很重要,因為過高的日誌成本會迫使工程師停用日誌流,進而產生偵測盲點。

CloudTrail 成本模型

管理事件:組織追蹤的第一份免費;額外副本每 100,000 個事件 $2。資料事件:每 100,000 個事件 $0.10。Insights:每分析 100,000 個事件 $0.35。CloudTrail Lake:攝入 $2.50/GB 加掃描 $0.005/GB。針對安全成熟的百帳號組織預算:依活動量每月 $5,000–$20,000。

VPC Flow Logs 成本

S3 攝入費用:$0.50/GB。高吞吐量生產 VPC 每天可產生 100 GB。企業規模的全組織 flow logs 每月可達 $10,000–$50,000——通常是集中式日誌中最大的成本項目。

搭配生命週期的 S3 儲存

50 帳號組織一年的集中式日誌約 10–50 TB。透過 180 天後移至 Glacier Deep Archive 的生命週期,長期封存資料的成本降至每月約 $0.00099/GB。中型組織十年的 Object Lock 保留期每年可控制在 $10,000 以下。

CloudWatch Logs 成本

CloudWatch Logs:攝入 $0.50/GB 加儲存每月 $0.03/GB。規模化後,每 GB 費用比直接傳送至 S3 貴 5–10 倍。純存檔需求,務必繞過 CloudWatch。

成本驅動的偵測盲點

常見的組織錯誤:在沙盒帳號停用 VPC Flow Logs 以節省成本。沙盒恰好是攻擊者在橫向移動至生產環境前測試的地方——10% 的取樣設定以 10% 的成本保留了偵測能力。永遠不要完全停用。

SCS-C02 集中式日誌常見考試陷阱

陷阱一——沒有資料事件的追蹤已足夠用於 S3 鑑識

錯誤。管理事件不記錄 GetObject。要證明哪些物件被外洩,資料事件必須在事故前已在該 bucket 上啟用。

陷阱二——日誌檔驗證能即時偵測竄改

部分錯誤。驗證是在調查人員執行 aws cloudtrail validate-logs 時事後進行的;它不會即時警報。如需即時竄改警報,在 Log Archive bucket 本身的 s3:DeleteObjects3:PutObject 事件上使用 CloudWatch 警報。

陷阱三——VPC Flow Logs 擷取 DNS 查詢

錯誤。Flow Logs 只記錄 IP 層元資料。對 Amazon 解析器的 DNS 查詢被明確排除。使用 Route 53 Resolver 查詢日誌。

陷阱四——Object Lock Governance 模式是防竄改的

錯誤。Governance 模式可被具有 s3:BypassGovernanceRetention 的 IAM 主體繞過。只有 Compliance 模式才能防止所有刪除。

陷阱五——CloudTrail Insights 記錄每次 API 呼叫

錯誤。Insights 只記錄模型標示的異常模式。標準 CloudTrail 擷取完整的事件日誌;Insights 是疊加在上面的分析層。

陷阱六——Subscription Filter Pattern 語法與 CloudWatch Logs Insights 語法相同

錯誤。Subscription filter pattern 使用特定的 filter-pattern 語法(詞彙、JSON 路徑、metric filter 表達式)。CloudWatch Logs Insights 使用獨立的查詢語言。兩者不可互換。

陷阱七——在現有 Bucket 上啟用 Object Lock

在某些情況下,若未有 AWS Support 介入則不可能。Object Lock 必須在 bucket 建立時啟用。改造路徑是遷移至新 bucket。

陷阱八——Log Group 資源政策對服務寫入是可選的

錯誤。多種 AWS 服務(Route 53 Resolver 查詢日誌、Network Firewall 日誌記錄、EventBridge 日誌目的地)直接透過服務主體寫入,需要 log group 資源政策。純 IAM role 的思維模式不適用於此。

陷阱九——CloudTrail 擷取主控台登入失敗

部分正確。主控台登入失敗被擷取為 ConsoleLogin 事件,在 us-east-1(IAM 事件流向的位置)中 responseElements.ConsoleLogin = "Failure"。若你的 CloudTrail 追蹤是區域性的且排除 us-east-1,你將錯過主控台登入活動。使用多區域追蹤。

陷阱十——集中式日誌只需 CloudTrail 就完整了

錯誤。CloudTrail 涵蓋控制平面 API。VPC Flow Logs、Resolver 查詢日誌、WAF 日誌、ALB 存取日誌和 CloudWatch Logs 是獨立的日誌流,各自需要獨立的集中化設定。

關鍵數字與必記集中式日誌事實

CloudTrail

  • 從管理帳號或委派管理員建立組織追蹤
  • 管理事件:第一份免費。資料事件:需明確啟用,依事件計費
  • 完整性驗證每小時產生 SHA-256 RSA 簽署的摘要檔案
  • 需要多區域追蹤才能擷取 IAM 事件(只流向 us-east-1)

VPC Flow Logs

  • 三種粒度:VPC、子網路、ENI
  • 預設 14 個欄位,自訂 34 個欄位——安全目的務必使用自訂格式
  • 排除 IMDS、AWS DNS 解析器、封包酬載內容
  • 狀態欄位 Failed 表示 IAM role 或目的地設定錯誤

CloudWatch Logs 跨帳號

  • 目的地包裝 Kinesis 或 Firehose,位於 Security 帳號
  • 目的地存取政策列出允許的成員帳號 ID
  • 服務主體直接寫入需要 log group 資源政策

Route 53 Resolver 查詢日誌

  • 以每個 VPC 為單位設定,可透過 RAM 分享
  • 擷取包括私有託管區域在內的每次 DNS 查詢
  • 即使是 S3 目的地,bucket policy 也使用 logs.amazonaws.com 服務主體

S3 Object Lock

  • 必須在 bucket 建立時啟用,無法事後追加
  • Compliance 模式不可逆,即使 root 也無法繞過
  • SEC 17a-4(f)、FINRA 4511、CFTC 1.31(c)-(d) 要求此模式
  • 可與移至 Glacier Deep Archive 的生命週期轉換共存

跨帳號 Bucket Policy 要求

  • 服務主體已被允許
  • aws:SourceAccountaws:SourceArn 條件用於 confused-deputy 防護
  • KMS key policy 授予相同服務主體 kms:GenerateDataKey*

常見問題——集中式日誌排錯熱門問題

Q1——CloudTrail 顯示「記錄中」但 S3 中兩小時沒有任何物件出現。我應該先檢查什麼?

在主控台開啟追蹤,讀取設定頁面頂端的「最近傳送錯誤」欄位。AWS 在那裡印出確切原因——AccessDeniedKMSAccessDeniedBucketNotFound 或限流相關。大多數工程師跳過這步直接猜測政策;讀取錯誤訊息能節省一個小時。若錯誤是 AccessDenied,檢查 bucket policy 中 CloudTrail 服務主體的允許項目,以及符合的 aws:SourceArn。若是 KMSAccessDenied,檢查 KMS key policy 中 CloudTrail 服務主體的 kms:GenerateDataKey*。若是 BucketNotFound,bucket 被重新命名或刪除——重建或更新追蹤目的地。只有在錯誤訊息指出失敗的介面之後,才應開始閱讀政策。

Q2——VPC Flow Logs 設定顯示啟用中但 Athena 回傳零筆資料。問題在哪裡?

三個診斷步驟。第一,在 EC2 主控台確認 flow log 狀態確實是 Active 而非 Failed(Failed 會在行內顯示錯誤)。第二,直接對預期的前綴路徑執行 aws s3 ls 檢查目的地 bucket——若物件存在於 S3 但 Athena 是空的,Glue 資料表分區投影或 Glue Crawler 設定有誤(最常見:當月的分區尚未爬取,或 Hive 式分區路徑與 AWS 寫入的格式不符)。第三,若 S3 確實是空的,檢查 delivery.logs.amazonaws.com 服務主體的 bucket policy 以及 bucket 的 KMS key policy。若目的地是 CloudWatch Logs,檢查 IAM role 的 logs:CreateLogStream——部分權限會產生空的 log stream。

Q3——我如何證明 CloudTrail 日誌檔在傳送後未被竄改?

執行 aws cloudtrail validate-logs --trail-arn <trail-arn> --start-time <ISO-timestamp> --end-time <ISO-timestamp>。CLI 從 S3 摘要前綴取得時間範圍的摘要檔案,對實際日誌檔物件重新計算 SHA-256 雜湊值,使用 AWS 發布的公鑰驗證每份摘要的 RSA 簽章,並向後走遍摘要雜湊鏈,確認每份摘要都連結至前一份。輸出是每個檔案的通過或失敗。對於監管鏈文件,將 CLI 輸出擷取為證據並納入稽核套件。若任何檔案驗證失敗,擷取輸出中印出的具體檔案名稱,為鑑識調查截圖,並視為已確認的完整性破壞。

Q4——Route 53 Resolver 查詢日誌設定顯示已與 VPC 關聯,但 CloudWatch Logs 中沒有任何內容出現。為什麼?

最常見的原因是 log group 資源政策缺少 logs.amazonaws.com 服務主體——Route 53 Resolver 透過 logs.amazonaws.com 服務主體寫入 CloudWatch Logs,而非透過 IAM role,目的地 log group 必須有資源政策授予 logs:CreateLogStreamlogs:PutLogEvents。執行 aws logs describe-resource-policies 檢查現有政策;若政策缺失或未涵蓋目標 log group ARN,附加一個。主控台精靈在你選擇現有 log group 時會自動建立資源政策,所以這個缺口通常只出現在透過 Terraform、CloudFormation 或 CDK 自動化設定,且資源政策資源未被包含的情況下。

Q5——我如何在不失去監管鏈的情況下,將現有的集中式日誌 bucket 遷移以啟用 Object Lock?

Object Lock 無法在現有 bucket 上啟用——必須在 bucket 建立時設定。遷移路徑:(1) 建立一個啟用 Object Lock 且以 Compliance 模式設定所需預設保留期的新 bucket,(2) 更新 CloudTrail 追蹤目的地、VPC Flow Log 目的地、Resolver 查詢日誌目的地,以及任何其他產生者以寫入新 bucket,(3) 確認新傳送在新 bucket 中成功進行至少 24 小時,(4) 使用附有舊 bucket 所有物件清單的 S3 Batch Operations 複製至新 bucket——Batch Operations 支援在複製時套用保留元資料,為遷移的歷史記錄保留 WORM 屬性,(5) 對舊位置和新位置執行 CloudTrail 日誌檔驗證,確認沒有物件在傳輸中遺失或損毀,(6) 將舊 bucket 保留至少合法保留期加一個緩衝期,然後刪除。完整遷移在繁忙的 bucket 上需要數週時間,是 SCS-C02 上最頻繁測試的排錯情境之一。

Q6——一個新的成員帳號加入了組織,其 CloudWatch Logs subscription filter 未傳送至中央目的地。我們忘了什麼?

Security 帳號的目的地存取政策。CloudWatch Logs 跨帳號目的地有一個存取政策,列出每個允許對目的地 ARN 呼叫 logs:PutSubscriptionFilter 的帳號 ID。新帳號必須明確添加——加入組織不會自動授予此權限。執行 aws logs describe-destinations --destination-name-prefix <name> 查看目前的存取政策,然後執行 aws logs put-destination-policy 添加新帳號 ID。透過以下方式自動化:從 AWS Organizations 取得帳號清單,並在每個帳號建立事件(通常是 CreateAccountResult 事件觸發 Lambda 的 EventBridge 規則)時更新目的地政策。

Q7——如何偵測組織追蹤的 CloudTrail 日誌記錄被停用或暫停?

三層防禦。第一,AWS Config 受管規則 cloudtrail-enabled 評估每個帳號是否至少有一條追蹤在記錄;搭配 cloudtrail-s3-dataevents-enabled 要求在敏感 bucket 上啟用資料事件。第二,在追蹤自己的 log group 上建立 CloudWatch metric filter,尋找 StopLoggingDeleteTrailUpdateTrail 事件,透過 SNS 向 SOC 發出警報。第三,合成金絲雀:一個每 15 分鐘執行的 EventBridge 定期規則,從已知 role 呼叫一個無害的 API(sts:GetCallerIdentity),以及一個 Lambda 在 30 分鐘內確認相應事件出現在 CloudTrail Lake 中;缺失的事件觸發警報。這個組合能在幾分鐘內偵測到刪除、暫停、限流和 bucket policy 中斷。

延伸閱讀——集中式日誌排錯的 AWS 官方文件

如需超出 SCS-C02 範圍的深度資料,權威的 AWS 來源包括:AWS CloudTrail 使用者指南(特別是組織追蹤、日誌檔完整性驗證和 bucket policy 章節)、VPC 使用者指南(Flow Logs 章節,包括排錯頁面)、Amazon CloudWatch Logs 使用者指南(跨帳號 subscription、資源政策、IAM 存取控制)、Route 53 開發人員指南(Resolver 查詢日誌)、Amazon S3 使用者指南(Object Lock),以及 IAM 使用者指南(confused deputy 問題)。

AWS Security Reference Architecture (SRA) 白皮書整理了 Log Archive / Security 帳號 / 委派管理員模式。AWS Well-Architected Security Pillar 提供概念性錨點。AWS re:Inforce 偵測與回應場次包含多個關於排查日誌傳送失敗的深度說明。AWS Security Blog 有大量 CloudTrail 和 VPC Flow Logs 排錯文章,與 SCS-C02 題目情境高度吻合。最後,AWS Knowledge Center 是「我設定了 X 但它停止運作了」解答的最佳來源,以症狀為索引。

官方資料來源

更多 SCS-C02 主題