Based on the SCS-C03 exam guideReport an error
This week dealt not with "logging itself" but with how to turn accumulated logs into signals, and signals into responses. Today we thread the tools of the four days — CloudWatch (threshold detection), Security Hub (aggregation, normalization, scoring), Athena/OpenSearch/Logs Insights (analysis), EventBridge/Security Lake (automation and integration) — into a single flow, and sort out the boundaries that make the exam confuse the tools. The point is not memorizing individual features but answering instantly "why is this tool the answer for this requirement, and why is that tool not."
[Collect] [Detect] [Aggregate/Normalize] [Analyze] [Automate/Respond]
CloudTrail ─┐ CloudWatch ─┐
VPC Flow ───┼─▶ Metric Filter│ Security Hub ─┐ Athena (S3, after the fact)
ELB/R53 ────┤ + Alarm ├─findings─▶ (ASFF normalization) ├──▶ Logs Insights ──┐
App logs ───┘ GuardDuty ───┤ security score/standards │ OpenSearch │
Inspector ───┤ (CIS/FSBP) │ (near real time) │
Macie ───────┘ │ ▼
└──▶ EventBridge ──▶ SNS (notification)
(routing) ──▶ Lambda/SSM (remediation)
──▶ Step Functions (orchestration)
[Unified storage] Security Lake: normalizes the raw logs above into OCSF/Parquet in an S3 data lake — Athena/OpenSearch/SIEM query a single schema
This flow maps the Detect and Respond functions of the NIST CSF onto AWS services. CloudWatch and GuardDuty handle detection, Security Hub handles aggregation and evaluation of detection results, and EventBridge handles orchestration of the response. In exam questions, first identifying "is this requirement detection, aggregation, analysis, or response" usually narrows the candidate services.
What you actually need to run in the exam room is not the diagram above but the order of questions. If you read the passage and ask the following in order, the candidates shrink to one in most questions.
① What is the requirement trying to do?
├─ "I want to find it" → Detection (go to ②)
├─ "I want to gather and see it" → Aggregation → Security Hub (add Config for controls)
├─ "I want to interrogate it" → Analysis (go to ③)
└─ "I want to act automatically" → Response → EventBridge (+ Lambda/SSM/Step Functions)
② What is being detected?
├─ Count of a specific log pattern → CloudWatch metric filter + alarm
├─ Threat behavior, malicious traffic → GuardDuty
├─ Software vulnerabilities → Inspector
├─ Sensitive data → Macie
├─ Permissions exposed externally → IAM Access Analyzer
├─ Configuration deviating from baseline → Config / Security Hub standards
└─ A metric that differs from usual → CloudWatch Anomaly Detection
③ Where is the data, and what is the tense of the question?
├─ CloudWatch Logs + "now" → Logs Insights
├─ S3 + "back then" (one-off, low cost) → Athena (+ partitions, Parquet)
├─ Index + "continuously" (always-on dashboard) → OpenSearch
└─ Organization-wide raw logs + single schema → Security Lake (OCSF)
The branch where mistakes happen most in this tree is the first fork of ①. If you cannot separate "detection" from "aggregation", you waver between Security Hub and GuardDuty. The test is simple — if the passage says "find out what happened", it is detection; if it says "view in one place what several tools have already found out", it is aggregation.
The second place where mistakes are common is ③. The same phrase "log analysis" fits all three tools, so you must look in the passage for the data location and for any mention of cost or immediacy. "Minimize cost" leads almost without exception to Athena, "immediately, without separate loading" to Logs Insights, and "always-on dashboard, full-text search" to OpenSearch.
An area that is easy to confuse. Distinguish by what is being detected.
| Requirement | Answer | Reason |
|---|---|---|
| Alarm on a threshold for a specific log pattern (root use, N login failures) | CloudWatch Metric Filter + Alarm | Pattern within a single log group → number → threshold |
| Malicious IP communication, cryptomining, anomalous use of credentials | GuardDuty | Behavior detection based on threat intelligence and ML |
| CVE vulnerabilities in EC2/containers/Lambda | Inspector | Software vulnerability scanning |
| Discovering PII/sensitive data in S3 | Macie | Data classification and discovery |
| "Unlike usual" for a metric that varies by time of day | CloudWatch Anomaly Detection | ML band for an arbitrary metric |
| Resources shared externally unintentionally (buckets/roles) | IAM Access Analyzer | Analysis of the possibility of external access |
⚠️ Pitfall: Do not pick GuardDuty reflexively for the vague phrase "detect security anomalies." What is anomalous decides it — a threshold on a specific API call means CloudWatch, threat behavior means GuardDuty, vulnerabilities mean Inspector, sensitive data means Macie.
Data location and timing decide.
| Requirement | Answer | Key criterion |
|---|---|---|
| Large volumes of logs stored in S3, one-off SQL, low cost | Athena | Data = S3, after the fact, one-off |
| Query logs that are in CloudWatch Logs immediately | Logs Insights | Data = CloudWatch Logs, immediate |
| Near-real-time dashboards, full-text search, repeated correlation | OpenSearch | Indexing, always-on operation |
| Organization-wide logs in a single normalized schema | Security Lake (+Athena/OpenSearch) | OCSF normalized repository |
🎯 Scenario: "Investigating an incident from 90 days ago, the logs are only in S3, and cost must be minimized" → Athena + partitioning. "The logs are in CloudWatch Logs and we need it immediately during incident response" → Logs Insights. "The SOC monitors with an always-on dashboard" → OpenSearch. Even the same "log analysis" splits by location and timing.
The three services cluster around the similar phrase "organization security state" and cause confusion.
Config → Configuration evaluation (do settings meet the rules?) → The engine behind Security Hub standards
Security Hub → Aggregation and scoring of findings (dashboard) → ASFF format
Security Lake→ Normalized repository of raw logs (for analysis) → OCSF format
⚠️ Pitfall: The phrase "normalize multiple sources" is used for both, which causes confusion. Normalization, aggregation, and scoring of detection findings is Security Hub (ASFF). Normalized storage and analysis of raw logs is Security Lake (OCSF). The format name (ASFF vs OCSF) is the decisive clue.
Scenario A — Detect root use immediately and notify
$.userIdentity.type = "Root" ..., metricValue=1, defaultValue=0.Sum, period 300, threshold ≥1, notBreaching, N=1/M=1.Average statistic, a missing defaultValue, a single-Region trail, a missing SNS KMS key policy.Scenario B — Unify security posture across multiple accounts
Scenario C — Automatically remediate CRITICAL findings
source=aws.securityhub, Severity.Label=CRITICAL, Workflow.Status=NEW.Scenario D — Post-incident forensics
Scenario E — The logs went quiet
StopLogging events) → are events arriving in CloudWatch Logs → is the metric filter matching (metric graph) → alarm state history → SNS subscription and KMS key policy.treat-missing-data=breaching).Scenario F — So many alerts that nobody looks
Scenario G — The same control fails hundreds of times
Mature organizations run these as layers. Hot (recent, frequently queried) = OpenSearch, warm/cold (long-term, occasional investigation) = S3 + Athena, normalization hub = Security Lake, findings plane = Security Hub, automation nervous system = EventBridge. The insight common to practice and the exam is that no single tool does everything, and that each tool's cost model (always-on cluster vs pay-per-scan) governs the layering decision.
One theme recurred throughout all of week 8 — this plumbing stops without errors. Wherever it breaks, nothing appears on screen, and it even looks calm. A considerable number of exam questions point at exactly this spot.
| Where it broke | Symptom | How to check | Structural fix |
|---|---|---|---|
| The trail does not send to CloudWatch Logs | The metric filter is always 0 | The metric graph is flat | Heartbeat alarm |
| Log group KMS key policy missing | Log ingestion fails | The service principal in the key policy | Policy validation at deployment |
defaultValue and Sum not set | The alarm never fires | The alarm history is empty | Standard template (IaC) |
| SNS topic KMS policy missing | The alarm is in ALARM but there is no notification | Compare alarm state against delivery history | Synthetic event delivery test |
| Config recorder stopped or scope narrowed | Controls are NO_DATA, the score rises | Track the number of evaluated controls | Look at the score and the control count together |
| Security Hub aggregation Region not specified | CRITICAL findings in other Regions are not seen | Check the finding count per Region | Configure the aggregation Region |
| Cross-account bus permission on one side only | Events do not reach the center | Whether the DLQ is backing up | Alarm on DLQ backlog itself |
| Response handler failure | There are findings but no action | Step Functions execution history | Retry + DLQ + archive replay |
| Periodic job stopped | Stateful risk is left unattended | Time of the last successful run | Run heartbeat |
| Data events not enabled | Cannot answer "what was taken" | The trail's event selectors | Enable in advance (cannot be applied retroactively) |
The last row is especially important. Logging is not applied retroactively. Other failures, once found and fixed, return to normal from that point on, but the period during which data events were not enabled remains a gap forever. This is why the principle learned in week 7 remains fully valid in week 8.
Two sentences recur in post-mortem reports of cloud breaches — "The signal was already in the logs" and "The alarm went off but nobody responded." In the 2013 Target breach, the fact that security tool alerts fired but did not lead to a response was publicly pointed out through reports such as the US Senate report, and in major cloud breach cases as well, the time taken to discover the breach, more than the breach itself, was repeatedly cited as the problem. The two sentences look like different failures, but the cause is one — the path by which signals reach people and automation was never designed. What week 8 covered is, in the end, that path. The transformation that turns logs into numbers (day1), the normalization that gathers many judgments into one schema (day2), the queries that interrogate what has accumulated (day3), and the routing that connects signals to actions (day4). If any one segment is missing, even with all the rest in place, the result is the same as "not detected."
On all four days the same problem appeared in a different face. On day1 it was alarms multiplying too much, on day2 it was control results growing as many as the number of resources, on day4 it was automation instead increasing alerts. On the exam it appears as the stereotyped sentence "reduce noise but do not create blind spots."
There is one dividing line between right and wrong answers — does it reduce detection, or does it reduce reach?
| Approach | Right/Wrong | Reason |
|---|---|---|
| Separate channels by severity | Right | All detection is kept, only reach is adjusted |
| Require persistence with N of M and composite alarms | Right | Only one-off false positives are filtered |
| Suppress approved exceptions together with a reason | Right | Findings and records remain |
| Aggregate medium and lower severities into a summary | Right | The trend must still be reviewed |
| Group tickets per resource | Right | Converted into a unit that can be handled |
| Delete metric filters and alarms | Wrong | Permanent blind spot |
| Raise thresholds substantially | Wrong | Becomes transparent to low-and-slow attacks |
| Disable standards and integrations | Wrong | Loss of source visibility |
| Add to the detector's trusted list | Wrong | No findings are generated |
| Send everything to on-call | Wrong | Ends with nobody looking = detection stops |
It is interesting that the last two rows pair up. Sending too little and sending too much reach the same result — the signal does not reach people. Alert design should be judged not by "how much to send" but by "is it an amount the recipient can act on every time."
defaultValue=0 + Alarm Sum is the pair for count detection. The heartbeat alarm alone is the exception (breaching).SECURITY_CONTROL) come along too.In case the exam asks "what should be done first," the build order is summarized in one view.
0. Secure the raw logs CloudTrail (all Regions, organization) → S3 (separate Log Archive account)
+ dual delivery of only the logs you will alarm on to CloudWatch Logs
* Not retroactive — first of all; decide now whether data events are needed
▼
1. Configuration evaluation base Enable the AWS Config recorder in each account and Region
* Without this, every Security Hub standard is meaningless
▼
2. Threshold detection CIS monitoring set: metric filters + alarms + heartbeat
▼
3. Aggregation and standards Enable Security Hub → CIS → FSBP → consolidated control results
→ delegated administrator + central configuration + aggregation Region
▼
4. Query capability Athena tables (partition projection) + workgroup guardrails
(if always-on monitoring is needed, add Firehose → OpenSearch)
▼
5. Response automation EventBridge rules → reversible actions automatic / irreversible ones behind an approval gate
+ DLQ + archive + routing by severity
▼
6. Organization-wide standardization Security Lake (OCSF) — when third-party SIEM or multi-account analysis is needed
There is logic in this order. A lower step does not hold without the step above it. Without Config there are no standards, without logs there are no queries, and without aggregation there is no single automation. On the exam, the answer to a question asking "what to do first" is almost always a prerequisite lower down — just as the answer to "standard controls are not being evaluated" is enabling Config.
Week 8 in one sentence: "Logs are not something to pile up but something to convert into signals, normalize and gather, query, and respond to automatically." CloudWatch is thresholds on a single signal, Security Hub is aggregation and scoring of findings, Athena/OpenSearch/Logs Insights are analysis according to location and timing, EventBridge is response routing, and Security Lake is the OCSF normalization hub.
From the perspective of exam preparation, this week leaves three reflexes.
And from the perspective of practice, one thing remains. This pipeline works best on the day it is built, and afterwards it quietly goes stale. The Config scope narrows, new accounts drop out of automatic enrollment, the subscriber of the alert channel leaves the company, and the response handler's permissions are revoked. None of it raises an error. So the last component of a detection pipeline is always a mechanism that watches the pipeline itself — heartbeat alarms, DLQ backlog monitoring, run records of periodic jobs, and regular synthetic event delivery tests. In week 9 we place the actual detection services (GuardDuty, Detective, Inspector) on top of this plumbing and cover how to read the findings they produce.
defaultValue=0 + Sum) from the heartbeat alarm exception (breaching)Click a choice to reveal the answer and explanation.
Question 1
Which service combination correctly maps to "discover whether PII is stored in S3," "scan EC2 for CVE vulnerabilities," and "detect communication with malicious IPs," respectively?
Question 2
The logs are in CloudWatch Logs, and during incident response you want to query them immediately, without separate ingestion, to see the AccessDenied trend. What is the most suitable tool?
Question 3
You want to aggregate the findings of multiple detection services (GuardDuty, Inspector, Macie) into a single format and view the CIS/FSBP standards pass rate as a security score. Separately, you also want to normalize organization-wide raw logs into the OCSF standard so a SIEM can query them. Which service is each?
Question 4
An alarm that detects 5 or more failed console logins in 5 minutes from CloudTrail logs does not work. Which two things should be checked together in the configuration?
Question 5
You build a pipeline in which, when GuardDuty detects EC2 cryptomining, it automatically isolates the instance, creates a forensic EBS snapshot, and notifies the security team. Which set includes everything that must be considered for operational hygiene?