Detection is 16% of SCS-C03. Questions give you a workload or an organization and ask which logs to turn on, where to send them, which detective service fits, and why an alert or log line never arrived. Expect “across all accounts, including new ones” and “with the least operational effort” wording. The answer is usually an organization-wide, delegated-administrator setup with logs centralised in a separate account.
Monitoring requirements and health checks
Start from the workload: what can go wrong, who can touch it, and which signals would show it.
- Control-plane activity (who called which API): CloudTrail.
- Resource configuration (what changed, is it compliant): AWS Config.
- Network behaviour: VPC Flow Logs, Route 53 Resolver query logs, transit gateway flow logs, Network Firewall logs.
- Host and application behaviour: CloudWatch agent, application logs, GuardDuty Runtime Monitoring.
- Threats and anomalies: GuardDuty. Sensitive data: Macie. Vulnerabilities: Inspector.
Resource health checks are part of monitoring. Route 53 health checks can monitor an endpoint, another health check set (calculated), or a CloudWatch alarm (the way to monitor private resources, because Route 53 checkers sit on the public internet). ELB target group health checks decide whether a target gets traffic. CloudWatch alarms, composite alarms (AND/OR over other alarms to cut noise), and anomaly detection alarms turn metrics into alerts. Alerts go to SNS or EventBridge, then on to people or automation.
CloudWatch metric filters
A metric filter turns log patterns (for example failed console logins in CloudTrail logs) into a metric you can alarm on. This is the classic CIS-benchmark pattern: CloudTrail → CloudWatch Logs → metric filter → alarm → SNS. Metric filters work only on data arriving after creation and don’t backfill.
Aggregating security and monitoring events
| Service | Aggregates | Notes |
|---|---|---|
| Security Hub (CSPM and the newer unified experience) | Findings from GuardDuty, Inspector, Macie, Config, Access Analyzer, Firewall Manager, partners | Normalised to ASFF, and OCSF in the newer experience. Standards: AWS Foundational Security Best Practices, CIS, PCI DSS, NIST 800-53. Cross-Region aggregation with a home Region |
| Security Lake | Raw logs and findings from AWS and third parties, as a data lake | Stores in S3 as Parquet in OCSF schema. Subscribers query with Athena or get data access/notifications |
| EventBridge | Events routed to targets | Cross-account/Region event buses for central handling |
| CloudWatch cross-account observability | Metrics, logs, traces from source accounts into a monitoring account | Uses OAM sink and links |
| AWS Config aggregator | Config data and compliance across accounts and Regions | Authorised by organization or per-account |
Security Hub aggregates findings; Security Lake aggregates logs. If the question says “all raw logs from several sources in a normalised, queryable form”, pick Security Lake. If it says “single pane of prioritised findings and compliance scores”, pick Security Hub.
Organization-wide setup
For GuardDuty, Security Hub, Macie, Inspector, Detective, Config and Security Lake: designate a delegated administrator account (not the management account) with Organizations, turn on auto-enable for new accounts, and enable in all Regions you use. Members can’t turn the service off when the admin owns it.
GuardDuty
Managed threat detection. It analyses CloudTrail management and data events, VPC Flow Logs, DNS logs independently; you don’t have to enable those logs yourself. Optional protection plans:
| Plan | Covers |
|---|---|
| S3 Protection | S3 data events: unusual access, exfiltration, disabling of block public access |
| EKS Protection | Kubernetes audit logs |
| Runtime Monitoring | OS-level events in EC2, ECS (including Fargate) and EKS via a security agent |
| Malware Protection for EC2 | Scans EBS volumes when a finding suggests malware; keeps no snapshot unless set |
| Malware Protection for S3 | Scans new objects uploaded to a bucket |
| RDS Protection | Anomalous login activity on Aurora and RDS |
| Lambda Protection | Network activity from Lambda functions |
| Extended Threat Detection | Correlates signals across plans into attack sequences |
Facts that are tested: findings are in the Region where they occur; there’s a 30-day free trial; trusted IP lists suppress alerts for known addresses, threat lists add known-bad ones; suppression rules auto-archive noise; findings export to S3 (needs a KMS key) and fire EventBridge events. Finding names follow ThreatPurpose:ResourceType/ThreatFamily (for example UnauthorizedAccess:EC2/SSHBruteForce, Backdoor:EC2/C&CActivity.B!DNS, CryptoCurrency:EC2/BitcoinTool.B, Exfiltration:S3/..., Policy:S3/BucketBlockPublicAccessDisabled, UnauthorizedAccess:IAMUser/InstanceCredentialExfiltration.OutsideAWS).
GuardDuty does not read your application logs, block traffic, or modify anything. It detects; EventBridge plus automation responds.
Macie
Discovers and protects sensitive data in S3: PII, financial data, credentials. Automated sensitive data discovery samples objects continuously; classification jobs scan chosen buckets on demand or on a schedule. Uses managed data identifiers and custom data identifiers (regex plus keywords). Macie also evaluates bucket security posture (public access, no encryption, shared outside the organization). Findings are policy findings (bucket posture) and sensitive data findings (content). Findings go to Security Hub and EventBridge. Macie is S3-only; for databases, export to S3 first.
Detective and Inspector (quick placement)
- Detective builds a behaviour graph from CloudTrail, VPC Flow Logs, GuardDuty findings and EKS audit logs to investigate and run root cause analysis. See the incident-response notes.
- Inspector continuously scans EC2, ECR images and Lambda functions for vulnerabilities, and EC2 for network reachability. See the infrastructure notes.
Automated assessments
Skill: regular assessments and investigations.
- AWS Config conformance packs: a bundle of Config rules and remediation actions deployed as a unit (and across an organization), usually from a template such as an operational best-practices pack. Evaluates continuously and reports compliance.
- Config rules: managed (prebuilt), custom with Lambda, or custom with Guard (policy-as-code). Trigger types: configuration change or periodic.
- Systems Manager State Manager: keeps instances in a desired state on a schedule through associations, for example making sure the agent is installed or a setting stays applied.
- Security Hub automated checks run continuously against the enabled standards.
- Inspector rescans on new CVEs and new packages; no schedule needed.
Logging solutions
CloudTrail
| Item | Detail |
|---|---|
| Event history | Last 90 days of management events, free, per Region, not configurable |
| Trail | Delivers to S3 (and optionally CloudWatch Logs, SNS). Multi-Region trail recommended |
| Organization trail | Created in the management or delegated admin account; logs every member account; members can see but not change it |
| Event types | Management (default on), data (S3 object, Lambda invoke, DynamoDB item: off by default, extra cost), Insights (unusual API call rate or error rate), network activity events (VPC endpoint calls) |
| CloudTrail Lake | Managed event data store with SQL queries, retention up to 7 years (extendable options), can ingest events from other sources; supports organization event data stores |
| Log file integrity validation | SHA-256 digests with RSA signing, delivered hourly; use validate-logs to prove logs weren’t altered |
| Encryption | SSE-S3 by default; SSE-KMS optional (the key policy must allow CloudTrail) |
Protect the log bucket: a dedicated log archive account, bucket policy letting only cloudtrail.amazonaws.com write, S3 Object Lock or MFA delete, and SCPs preventing StopLogging and DeleteTrail.
CloudWatch Logs
- Dedicated logging account: use cross-account observability or subscription filters with a destination in the logging account (a Kinesis stream or Firehose behind a CloudWatch Logs destination with a resource policy).
- CloudWatch agent (unified agent) collects logs and system metrics from EC2 and on-premises servers. It needs an instance profile with
CloudWatchAgentServerPolicyand a config file (often kept in Parameter Store). - Logs Insights: query language for ad hoc analysis within a log group (and across groups/accounts). Live Tail streams logs live.
- Retention is per log group; default is never expire. Export to S3 for long-term or use subscription filters for real time. A log group allows two subscription filters.
- Data protection policies mask sensitive data in logs (see data protection notes).
Log sources by network design
| Source | Captures | Notes |
|---|---|---|
| VPC Flow Logs | IP traffic metadata (not payload) per VPC, subnet or ENI | Destinations: S3, CloudWatch Logs, Firehose. Custom format adds fields. Doesn’t log DNS to the VPC resolver, instance metadata (169.254.169.254), DHCP, or Windows licence traffic |
| Transit gateway flow logs | Traffic through a TGW attachment | Useful for east/west traffic between VPCs and on-premises |
| Route 53 Resolver query logs | DNS queries from VPC resources | Spot DNS tunnelling, malware domains. Shareable across accounts through RAM |
| Route 53 Resolver DNS Firewall | Blocks or alerts on domain lists | Pair with the query logs |
| AWS Network Firewall | Alert and flow logs | To S3, CloudWatch Logs or Firehose |
| ELB access logs | Request-level logs to S3 | Off by default |
| CloudFront | Standard (access) logs to S3, real-time logs to Kinesis | Needed for edge forensics |
| AWS WAF | Full request logs to S3, CloudWatch Logs, Firehose | Log bucket/group names must start with aws-waf-logs-; filter and redact fields |
| S3 server access logs / data events | Object-level access | Data events are the more complete, reliable option |
Log storage, lakes and third parties
- Land logs in S3 (central bucket, lifecycle to Glacier, Object Lock for evidence) and make them queryable with Athena (partition projection saves cost).
- Security Lake collects native AWS sources (CloudTrail, VPC Flow Logs, Route 53 Resolver logs, Security Hub findings, WAF logs, and others) and custom sources in OCSF. It has a delegated admin, can roll up Regions into a single one, and gives subscribers either data access (read the S3 data through Lake Formation) or query access. Partner SIEMs subscribe this way.
- To third-party tools: Firehose to an HTTP endpoint (Splunk, Datadog), Kinesis consumers, or Security Lake subscribers.
Analysis, normalisation and correlation
| Need | Service |
|---|---|
| Ad hoc search of recent logs in CloudWatch | Logs Insights |
| SQL over logs in S3 (CloudTrail, Flow Logs, ALB) | Athena (Glue catalog; Security Lake tables) |
| Full-text search, dashboards, correlation, alerting at scale | OpenSearch Service (fed by Firehose or subscription filters; OpenSearch Ingestion pipelines) |
| Parse or enrich records in flight | Lambda (as Firehose transformation or stream consumer) |
| Dashboards over many data sources | Amazon Managed Grafana |
| Prioritised findings | Security Hub |
Troubleshooting monitoring and logging
When logs or alerts are missing, walk the path: source enabled → permissions → delivery path → destination policy → encryption key → filters/limits.
| Symptom | Likely cause |
|---|---|
| Lambda writes no logs | Execution role lacks logs:CreateLogGroup, CreateLogStream, PutLogEvents (AWSLambdaBasicExecutionRole), or a log group KMS key blocks it |
| API Gateway has no access/execution logs | Stage logging not on, or the account-level CloudWatch role ARN isn’t set in API Gateway settings |
| CloudFront logs missing | Logging not enabled, S3 bucket ACL/policy doesn’t allow delivery, or wrong bucket Region/format; real-time logs need an IAM role |
| Agent sends nothing | Wrong agent config JSON, agent not started, role missing CloudWatchAgentServerPolicy, no route to the CloudWatch endpoint (private subnet without NAT or VPC endpoint) |
| CloudTrail gaps | Trail not multi-Region, data events not selected, bucket policy changed, KMS key policy denies CloudTrail, trail stopped |
| Flow logs not appearing | Delivery role or bucket policy wrong, log group is encrypted with a key the service can’t use; records can lag by several minutes |
| Subscription filter silent | Destination resource policy doesn’t allow the source account, or the destination stream is throttled |
| Metric alarm stays in INSUFFICIENT_DATA | Metric filter pattern never matches, or the filter was made after the events |
| GuardDuty findings missing for some accounts | Member not enabled/invited, not in that Region, or plan not on |
| Config shows no recording | Recorder stopped, resource type not selected, delivery channel bucket policy broken |
Always check CloudTrail for the denied API call that explains a failed delivery, and Access Analyzer/policy simulator for permission puzzles.
Common traps
- CloudTrail Event history is not a long-term store; build a trail.
- Data events and Insights are not on by default.
- A trail in one Region doesn’t cover others unless it’s multi-Region (organization trails are multi-Region as set up).
- GuardDuty needs no flow log or DNS log setup, but it also can’t be queried as raw logs. Use Flow Logs separately for investigation.
- Security Hub only shows findings from services that are enabled and integrated.
- Macie is for S3 only.
- Delegated admin is not the management account; use the management account only for the initial designation.
Exam checklist
- Pick GuardDuty (threats), Macie (S3 sensitive data), Inspector (vulnerabilities), Config (configuration compliance), Security Hub (aggregate findings), Detective (investigate), Security Lake (normalised log lake).
- Set up organization-wide with a delegated admin and auto-enable; centralise logs in a log archive account.
- Know CloudTrail event types, 90-day history, integrity validation, organization trail and CloudTrail Lake.
- Know each network log source and what it can’t see.
- Match tool to analysis need: Logs Insights, Athena, OpenSearch, Grafana, Lambda.
- Troubleshoot missing logs by checking role, resource policy, KMS key, route and configuration.
- Config conformance packs and State Manager automate repeated assessments.