Amazon GuardDuty

Amazon GuardDuty - Watching Your Account Without Being Asked

Amazon GuardDuty – Watching Your Account Without Being Asked

A deep, intermediate-level look at how GuardDuty continuously analyzes the signals your AWS account already produces — network flow, DNS queries, API activity, and more — to surface threats no single log file would reveal on its own.

Most security incidents aren’t discovered because someone was staring at a dashboard at the exact right moment — they’re discovered days or weeks later, buried in a log file nobody reviewed in real time. Amazon GuardDuty exists to close that gap by doing the reviewing continuously, automatically, and without anyone having to ship an agent to a single instance. It reads the signals your AWS account is already generating — network flow records, DNS resolution logs, API call history — and applies threat intelligence and machine learning to them so that a compromised credential or a communicating malware process gets flagged in minutes, not discovered in an after-the-fact audit. This guide goes past “it’s AWS’s threat detection service” and into how it’s actually built, how its detections work, and how experienced security teams operate it at scale.

AIntroduction & History

From a re:Invent announcement to the default threat-detection layer for most AWS accounts.

Amazon GuardDuty was announced at re:Invent in November 2017 and became generally available in early 2018. Before it existed, detecting a compromised EC2 instance or a misused IAM credential typically meant either standing up and operating a third-party security information and event management (SIEM) platform, or building custom log analysis pipelines against raw VPC Flow Logs and CloudTrail data — both of which required significant security engineering investment before a single alert ever fired. GuardDuty’s pitch was to make that detection capability available as a service that could be enabled with a single click, with no agents to deploy and no log pipeline to build from scratch.

What made this possible technically was that AWS already had privileged, first-party access to the raw telemetry a detection engine needs — VPC Flow Logs, DNS query logs, and CloudTrail events all already exist inside AWS’s own infrastructure for every account. Rather than requiring a customer to export all of that data to an external system, GuardDuty analyzes it in place, combining it with continuously updated threat intelligence feeds (including feeds from AWS Security, CrowdStrike, and Proofpoint) and machine learning models trained on patterns of known malicious behavior.

Analogy

Think of your AWS account as a building that already has security cameras (Flow Logs), a visitor log (CloudTrail), and a directory lookup service (DNS logs) running for unrelated operational reasons. Before GuardDuty, someone had to manually pull all that footage together after a break-in to figure out what happened. GuardDuty is the security guard who watches all three feeds continuously and taps you on the shoulder the moment something looks wrong — not the analyst who reconstructs it afterward.

1

2017 — Announced at re:Invent

Introduced as a continuous, managed threat detection service analyzing VPC Flow Logs, DNS logs, and CloudTrail events.

2

2018 — General Availability

Launched with finding types covering reconnaissance, instance compromise, and account compromise behaviors.

3

2019–2020 — Multi-account and Organizations support

Added delegated administrator functionality, letting a security team manage GuardDuty centrally across an entire AWS Organization.

4

2021–2022 — S3 Protection, EKS Protection, RDS Protection added

Expanded beyond compute and network telemetry into data-plane events for S3, Kubernetes audit logs, and RDS login activity.

5

2023–2024 — Malware Protection and Extended Threat Detection

Added agentless malware scanning for EBS volumes and S3 objects, plus correlation of findings into multi-stage attack sequences rather than isolated alerts.

It’s worth noting how GuardDuty’s scope has steadily widened from “network and API anomaly detection” toward something closer to a unified detection surface across nearly every layer of an AWS account — compute, network, identity, storage, containers, and databases — while keeping the same core principle from day one: analyze telemetry AWS already has, rather than requiring customers to instrument their own workloads first.

This progression also mirrors a broader shift in how cloud security is generally practiced. In the early days of cloud adoption, a lot of security tooling was ported directly from on-premises data center thinking — deploy an agent, ship logs to a centralized SIEM, build detection rules by hand. GuardDuty represented a different philosophy: since the cloud provider already has privileged visibility into infrastructure-level telemetry that would otherwise require an agent to obtain, why not offer detection built directly on that visibility as a managed capability, continuously updated by the provider’s own threat research team rather than requiring every customer to maintain their own detection content library. That philosophy has since been extended to nearly every AWS service surface that generates security-relevant telemetry, which is why features like S3 Protection and RDS Protection arrived as natural extensions rather than entirely separate products.

BProblem & Motivation

The core problem GuardDuty addresses is the gap between “the data needed to detect a threat exists” and “someone is actually looking at it in a way that catches the threat before real damage occurs.” VPC Flow Logs, CloudTrail events, and DNS logs are each individually voluminous and, on their own, mostly unremarkable — a single flow log entry showing an EC2 instance connecting outbound on an unusual port doesn’t automatically mean compromise, and manually reviewing millions of daily log lines for a needle like that isn’t a realistic ask for most teams.

Threats also frequently reveal themselves only through correlation across multiple signal types, not from any single log line in isolation. A compromised instance calling out to a known command-and-control domain (visible in DNS logs), combined with unusual API calls attempting to disable logging (visible in CloudTrail), combined with an unexpected spike in outbound data transfer (visible in Flow Logs), paints a much clearer picture together than any one of those signals does alone. Building and maintaining the correlation logic, threat intelligence feeds, and machine learning models needed to make that connection reliably is exactly the kind of specialized, continuously updated capability that’s expensive and difficult for most individual organizations to build and keep current on their own.

!
Common Misconception

GuardDuty is a detection service, not a prevention or blocking service. It doesn’t stop malicious traffic or automatically revoke compromised credentials on its own — it generates findings that describe suspicious activity, and it’s the responsibility of the account owner (often via automated remediation, covered later) to actually act on them.

Compromised Credentials

Unusual API behavior

An IAM user suddenly calling APIs from a geography or pattern inconsistent with its normal behavior, often the first sign a credential has leaked.

Instance Compromise

Malware and C2 communication

An EC2 instance communicating with a known command-and-control domain or exhibiting cryptocurrency-mining network patterns.

Reconnaissance

Port scanning and probing

Unusual patterns of failed connection attempts across a wide port range, often preceding a more targeted attack.

Data Exfiltration

Unusual S3 access patterns

An identity accessing S3 objects at an unusual volume or from an unusual location, potentially indicating data theft in progress.

There’s also a resourcing dimension to the motivation that’s easy to underestimate: the specialized skill set needed to build and continuously tune a detection engine of this kind — someone who understands both offensive security tradecraft and the specific telemetry patterns AWS services produce — is scarce and expensive, and even organizations that can afford to hire for it often find themselves reinventing threat intelligence feeds and correlation logic that AWS, given its scale and visibility across millions of accounts, is uniquely positioned to build once and share broadly. In effect, GuardDuty lets an individual organization benefit from detection patterns learned across AWS’s entire customer base, not just from its own historical incidents — a form of collective defense that would be very difficult for any single company to replicate independently.

CCore Concepts

The vocabulary that shapes how findings are triaged and how a GuardDuty deployment is actually operated.

Findings and Finding Types

A “finding” is GuardDuty’s core output — a structured record describing a specific suspicious activity, including what resource was involved, what behavior triggered it, when it happened, and a severity score. Finding types follow a structured naming convention that encodes the threat category, the resource type affected, and the specific behavior observed — for example, a finding type describing an EC2 instance communicating with a known malicious IP is named distinctly from one describing an IAM user exhibiting anomalous API call patterns, which lets automated tooling parse and route findings without needing to read free-text descriptions.

Severity Scoring

Every finding carries a severity score from 0.1 to 8.9, grouped into Low, Medium, and High bands. This scoring reflects GuardDuty’s own assessment of how likely the finding is to represent genuine malicious activity and how significant the potential impact is — a High severity finding, like an instance actively communicating with known malware infrastructure, warrants immediate investigation, while a Low severity finding, like a single failed login attempt from an unusual location, may simply be logged for pattern-tracking rather than triggering an urgent page.

Severity BandScore RangeTypical Meaning
High7.0 – 8.9Strong indication of active compromise; investigate immediately
Medium4.0 – 6.9Suspicious behavior that may indicate compromise or misconfiguration
Low0.1 – 3.9Reconnaissance or minor anomalies worth tracking, not necessarily urgent

Threat Intelligence Feeds vs. Anomaly Detection

GuardDuty’s detections come from two fundamentally different mechanisms working together. Threat intelligence-based detection matches observed activity (like a destination IP or domain) against continuously updated lists of known-malicious infrastructure — this catches known threats quickly and with high confidence. Anomaly-based detection, by contrast, uses machine learning models trained on the normal behavior baseline of a specific account or resource, flagging deviations from that baseline even when the specific indicator (like a particular IP address) has never been seen as malicious before. This combination is what lets GuardDuty catch both known threats (fast, high-confidence) and genuinely novel ones (slower to confirm, but not dependent on someone else having already discovered and cataloged the threat first).

Analogy

Threat intelligence matching is like a bouncer checking IDs against a list of banned individuals — fast and certain, but only works for people already on the list. Anomaly detection is like a bouncer who’s learned the regular crowd’s normal behavior and notices when someone starts acting strangely, even if they’ve never caused trouble before. GuardDuty runs both bouncers at once.

Suppression Rules and Trusted/Threat Lists

Because no automated detection system produces zero false positives, GuardDuty supports suppression rules that automatically archive findings matching specific criteria a security team has determined are expected and benign — for instance, a security scanning tool’s own traffic pattern that would otherwise look like reconnaissance. Trusted IP lists let a team pre-declare IP ranges (like their own VPN egress) that should never generate findings, while custom threat lists let a team inject their own known-bad indicators, supplementing AWS’s built-in threat intelligence with organization-specific knowledge.

Protection Plans as Modular Add-Ons

Beyond the core network and API-based detection that’s been part of GuardDuty since launch, the service is organized around optional “protection plans” that extend detection into specific AWS service areas — S3 Protection analyzes S3 data plane events for unusual access patterns, EKS Protection analyzes Kubernetes audit logs for suspicious cluster activity, RDS Protection analyzes database login activity for credential-based attacks, and Malware Protection adds agentless scanning triggered by relevant findings. Each protection plan can be enabled or disabled independently, which matters for cost management in large environments — a team might enable EKS Protection only in accounts actually running Kubernetes workloads, for example, rather than paying for analysis of a service surface that isn’t in use.

The Free Trial and Estimation Period

When first enabling GuardDuty (or a new protection plan) in an account, AWS provides a 30-day free trial period specifically so a team can estimate expected ongoing cost based on their actual telemetry volume before committing financially, and can also observe the initial baselining behavior described elsewhere in this guide without that period counting against a budget. This trial period is a genuinely useful evaluation tool for teams uncertain whether the cost of a specific protection plan is justified for their environment.

DArchitecture & Components

graph TB
    subgraph Sources["Data Sources (read, never modified)"]
      Flow["VPC Flow Logs"]
      DNS["DNS Resolver Logs"]
      CT["CloudTrail Events"]
      S3E["S3 Data Events"]
      EKS["EKS Audit Logs"]
      RDS["RDS Login Activity"]
    end
    subgraph Engine["GuardDuty Detection Engine"]
      TI["Threat Intelligence Matching"]
      ML["Machine Learning Anomaly Models"]
      Corr["Finding Correlation & Attack Sequences"]
    end
    Findings["Findings"]
    EB["Amazon EventBridge"]
    SH["AWS Security Hub"]
    Lambda["Automated Remediation - Lambda"]
    SNS["Notification - SNS"]

    Flow --> Engine
    DNS --> Engine
    CT --> Engine
    S3E --> Engine
    EKS --> Engine
    RDS --> Engine
    TI --> Corr
    ML --> Corr
    Corr --> Findings
    Findings --> EB
    EB --> SH
    EB --> Lambda
    EB --> SNS
        
Fig 1 — GuardDuty reads existing telemetry without modifying it, correlates signals through threat intelligence and ML, and publishes findings through EventBridge for downstream action.

Key Components

Ingestion

Data Sources

VPC Flow Logs, DNS logs, CloudTrail, S3 data events, EKS audit logs, RDS login activity, and Lambda network activity — all read passively.

Analysis

Detection Engine

Combines threat intelligence matching with anomaly-detection machine learning models trained per account and per resource type.

Output

Findings

Structured records describing detected activity, severity, and affected resources, retained and queryable within the service.

Distribution

EventBridge Integration

Every finding is automatically published as an event, enabling downstream automation without any polling required.

An important architectural characteristic is that GuardDuty is entirely agentless for its core detection surface — it doesn’t require software to be installed on EC2 instances, containers, or Lambda functions to analyze network and API-level telemetry, because that telemetry already exists at the AWS infrastructure layer. The exception is Malware Protection, which does perform an agentless scan of EBS volume snapshots when triggered by a suspicious finding, but even this doesn’t require a persistent agent running inside the instance.

Multi-Account Architecture via AWS Organizations

For organizations with many AWS accounts, GuardDuty supports a delegated administrator model: one account (typically a dedicated security account) is designated as the GuardDuty administrator for the entire AWS Organization, automatically enabling GuardDuty in member accounts and aggregating findings from all of them into a single view. This avoids the impractical alternative of a security team having to separately log into dozens or hundreds of individual accounts to check for findings.

Regional Scoping of the Architecture

GuardDuty’s detection engine and its findings are scoped per Region — an account running workloads in three Regions effectively has three independent GuardDuty deployments, each analyzing that Region’s own telemetry and building its own behavioral baseline. The delegated administrator model aggregates across accounts within a Region, but a security team still needs to explicitly review or configure aggregation across Regions if they want a single unified view spanning both dimensions simultaneously — a detail that’s sometimes assumed to be automatic but actually requires deliberate multi-Region configuration.

EInternal Working

Internally, GuardDuty operates as a continuously running analysis pipeline rather than a periodic batch job. As VPC Flow Logs, DNS query logs, and CloudTrail events are generated within an account, GuardDuty ingests them (without requiring the account owner to have separately enabled or configured those underlying log sources — GuardDuty accesses the raw telemetry directly at the infrastructure layer, distinct from whether a customer has separately turned on VPC Flow Logs for their own visibility). Each event is evaluated in near-real-time against threat intelligence feeds and against machine learning models that have built up a behavioral baseline for that specific account’s resources.

The machine learning models underlying anomaly detection are trained on both AWS-wide threat patterns observed across the full customer base (in an anonymized, aggregate way) and account-specific behavioral baselines — meaning a pattern of API calls that would be perfectly normal for one account’s typical usage might be flagged as anomalous in another account where that pattern has never occurred before. This per-account baselining is why a newly enabled GuardDuty deployment sometimes produces more findings in its first days or weeks, as the models are still establishing what “normal” looks like for that specific environment.

Analogy

A new employee at a company doesn’t know yet whether it’s normal for the finance team to run a specific report at 2 a.m. — they’d need to observe the pattern over time before confidently calling a 2 a.m. report run “unusual.” GuardDuty’s anomaly models go through a similar learning period for each account before their confidence in what’s normal fully stabilizes.

Finding Correlation and Attack Sequences

Rather than treating every individual suspicious signal as its own isolated alert, GuardDuty’s Extended Threat Detection capability specifically looks for sequences of findings across multiple stages of an attack — reconnaissance, followed by initial access, followed by lateral movement or data exfiltration — and groups them into a single “attack sequence” finding when the pattern strongly suggests a coordinated, multi-stage compromise rather than several unrelated one-off anomalies. This correlation reduces alert fatigue by presenting a security analyst with one high-confidence, high-severity attack sequence instead of five separate medium-severity findings that, viewed individually, might not each seem urgent enough to prioritize.

Malware Protection’s Agentless Scanning Mechanism

When a finding suggests an EC2 instance or container workload may be compromised, GuardDuty Malware Protection can automatically trigger an agentless scan: it takes a snapshot of the affected EBS volume, scans that snapshot copy for known malware signatures, and then deletes the temporary snapshot once the scan completes — all without touching or slowing down the running instance itself. This design specifically avoids the operational risk of installing scanning agents on production workloads, at the cost of the scan only running on-demand in response to a triggering finding rather than continuously.

How Behavioral Baselines Handle Legitimate Change

A practical question that comes up quickly once GuardDuty’s anomaly detection is understood at this level of detail is what happens when an account’s legitimate usage genuinely changes — a new application deployment that introduces a new, previously unseen traffic pattern, for instance. The underlying machine learning models are designed to continuously incorporate new observed behavior into their baseline over time, rather than treating the original baseline as permanently fixed, which means a sustained new pattern of legitimate activity is gradually absorbed into what the model considers normal rather than continuing to generate findings indefinitely. This adaptive behavior is part of why sudden, large infrastructure changes can produce a temporary bump in findings similar to the initial baselining period, even in an account that’s been running GuardDuty for a long time.

FData Flow & Lifecycle

sequenceDiagram
    participant Infra as AWS Infrastructure
    participant GD as GuardDuty Engine
    participant TI as Threat Intel Feeds
    participant EB as EventBridge
    participant SH as Security Hub
    participant Lam as Lambda Remediation

    Infra->>GD: VPC Flow / DNS / CloudTrail events
    GD->>TI: Check indicators against threat lists
    TI-->>GD: Match found - known malicious IP
    GD->>GD: Correlate with recent account activity
    GD->>EB: Publish new Finding event
    EB->>SH: Forward finding for centralized triage
    EB->>Lam: Trigger automated remediation (e.g. isolate instance)
    Lam-->>Infra: Apply restrictive security group
        
Fig 2 — A finding flows from raw telemetry through correlation to EventBridge, where it can simultaneously reach Security Hub for triage and Lambda for automated response.

The lifecycle of a finding begins the moment GuardDuty’s engine identifies a pattern worth surfacing, and from that point the finding exists as a persistent record within the service, retained for 90 days by default (configurable), during which its status can be updated (archived, marked as resolved) and its occurrence count can increase if the same underlying activity is observed repeatedly rather than generating a brand-new finding each time. This “roll-up” behavior — incrementing an existing finding’s count rather than creating duplicates for genuinely repeated activity — keeps a security team’s finding queue from being flooded by the same ongoing issue appearing as dozens of separate alerts.

Once published, findings become available through three parallel channels: the GuardDuty console itself, the GuardDuty API for programmatic retrieval, and EventBridge events for real-time automated processing. Most mature security operations rely primarily on the EventBridge channel, since it enables findings to trigger downstream actions — ticket creation, Slack notification, automated remediation — within seconds of the finding being generated, rather than depending on someone manually checking a console.

Console / API Retrieval

  • Good for manual investigation and historical search
  • Supports filtering and detailed finding inspection
  • Not inherently real-time unless actively polled

EventBridge Streaming

  • Near-real-time delivery as findings are generated
  • Enables automated remediation pipelines
  • Requires upfront event-rule and target configuration

What Happens to Archived Findings

When a finding is archived — either manually by an analyst or automatically via a suppression rule — it doesn’t disappear from the system entirely; it moves to an archived state that remains queryable for historical analysis but no longer appears in the default active findings view. This matters for after-the-fact investigations: if a security team later suspects an incident occurred earlier than initially realized, archived findings from that period remain available to review, which can retroactively surface an early warning signal that was dismissed too quickly at the time.

GAdvantages, Disadvantages & Trade-offs

Advantages

  • Enabled in minutes with no agents to deploy across a fleet
  • Continuously updated threat intelligence, maintained by AWS rather than the customer
  • Correlates signals across network, identity, storage, and container layers in one place
  • Extended Threat Detection reduces alert fatigue by grouping related findings into attack sequences
  • Multi-account aggregation scales cleanly across large AWS Organizations

Disadvantages / Trade-offs

  • Detection only — doesn’t block or prevent malicious activity by itself
  • New accounts go through a baselining period where anomaly detection is less tuned
  • Cost scales with data volume analyzed, which can surprise teams with very high Flow Log or CloudTrail volume
  • Malware Protection scanning is reactive (triggered by a finding), not a continuous antivirus replacement
  • Some findings still require human judgment to distinguish genuine threats from unusual-but-legitimate activity
“GuardDuty tells you something worth investigating happened — it doesn’t investigate or fix it for you unless you build that part yourself.”

The central trade-off is between coverage and action. GuardDuty is extremely good at surfacing signal from noise across a wide range of AWS-native telemetry with minimal setup effort, but the value of that signal is entirely dependent on what a team does with it afterward — a finding that generates an email nobody reads is barely more useful than no detection at all. The teams that get the most value treat findings as the input to an automated or well-staffed response process, not as a passive dashboard to glance at occasionally.

Another trade-off worth naming explicitly concerns the modular protection plans. Enabling every available protection plan (S3, EKS, RDS, Malware Protection) by default across every account maximizes coverage but also maximizes cost, and not every account necessarily runs every protected service — enabling RDS Protection in an account with no RDS instances provides no value while still needing to be tracked as part of an organization’s overall GuardDuty configuration. Deliberately matching enabled protection plans to the actual service footprint of each account, rather than blanket-enabling everything everywhere, is a trade-off many organizations navigate as their account count grows.

HPerformance & Scalability

GuardDuty is a fully managed service, meaning there’s no infrastructure for a customer to size or scale as data volume grows — AWS operates the detection engine’s capacity behind the scenes. From an operational perspective, “scalability” for GuardDuty is less about the detection engine’s own throughput and more about two other dimensions: how many AWS accounts and Regions are being monitored, and how a security team’s own response processes scale as finding volume grows alongside account growth.

Cost, which functions as a practical proxy for scale, is based on the volume of data analyzed — CloudTrail events, VPC Flow Log volume, DNS query volume — plus additional charges for optional features like Malware Protection scanning and S3 Protection’s analysis of S3 data events. A large, high-traffic account naturally generates more telemetry and therefore costs more to monitor than a small, low-traffic one, which means cost estimation before enabling GuardDuty organization-wide typically involves reviewing existing CloudTrail and Flow Log volume as a leading indicator.

90 Days
DEFAULT FINDING
RETENTION
8.9
MAX SEVERITY
SCORE
1000s
ACCOUNTS PER
ORGANIZATION

Scaling Response, Not Just Detection

As an organization grows from a handful of accounts to hundreds, the volume of findings grows roughly in proportion, and manual triage that worked fine for a small footprint becomes untenable without automation. Teams that scale successfully typically invest early in automated triage rules (auto-archiving known-benign patterns, auto-escalating high severity findings to a paging system) rather than waiting until finding volume has already overwhelmed a manual review process.

Where the Baselining Period Affects Perceived Performance

A newly enabled GuardDuty deployment can appear “noisier” in its first one to two weeks purely because the anomaly-detection models haven’t yet established a stable behavioral baseline for that account. This isn’t a performance problem to troubleshoot — it’s an expected characteristic of the machine learning approach, and finding volume typically settles as the models mature.

Estimating Cost Before Organization-Wide Rollout

Because cost scales with telemetry volume rather than with a flat per-account or per-instance fee, teams planning an organization-wide rollout typically start with the free trial period in a representative sample of accounts — a mix of high-traffic production accounts and lower-traffic development accounts — to build a realistic cost model before committing to full deployment across potentially hundreds of accounts at once. Extrapolating cost from a single small account to an entire large organization can significantly underestimate real cost if that account isn’t representative of the higher-traffic production accounts that generate the bulk of an organization’s telemetry volume.

IHigh Availability & Reliability

Because GuardDuty is a Regional service operated entirely by AWS, its own availability follows the same operational model as other AWS-managed services — customers don’t manage or patch any GuardDuty infrastructure directly. Reliability considerations for a GuardDuty deployment center less on “will the service stay up” and more on “is coverage complete across every Region and account a customer actually operates in.”

Because GuardDuty must be explicitly enabled per Region, a common reliability gap in practice isn’t a service outage — it’s an account with workloads running in a Region where GuardDuty was never turned on, leaving that Region’s activity entirely unmonitored. This is one of the most consequential intermediate-level operational details: enabling GuardDuty in only the Regions a team is actively aware of using can leave blind spots in Regions used incidentally (for instance, a global service creating resources in an unexpected Region, or an attacker deliberately operating in a Region a security team doesn’t normally watch).

graph LR
    subgraph Covered["Monitored Regions"]
      R1["us-east-1 - GuardDuty ON"]
      R2["eu-west-1 - GuardDuty ON"]
    end
    subgraph Gap["Coverage Gap"]
      R3["ap-southeast-2 - GuardDuty OFF"]
    end
    Attacker["Attacker Activity"] --> R3
    R3 -.->|"No detection - blind spot"| Analyst["Security Team"]
        
Fig 3 — A Region left without GuardDuty enabled is invisible to detection, regardless of how well-covered other Regions are.
!
Coverage Reminder

Enabling GuardDuty organization-wide across all Regions — not just the Regions currently in active use — is the standard practice recommended by AWS security guidance, precisely because unused Regions are a common target for activity intended to stay under the radar of a team’s usual monitoring footprint.

Reliability of Downstream Automation, Not Just the Detection Engine

Because a finding’s real-world value depends on the automation or human process that acts on it, the reliability of a GuardDuty deployment in practice extends to the EventBridge rules, Lambda functions, and notification pipelines built on top of it. A misconfigured EventBridge rule that silently stops matching findings after an unrelated infrastructure change can leave an organization believing it has active automated response coverage when, in reality, findings have been generated correctly but never reached the intended downstream action — a failure mode that’s easy to miss without periodically testing the full pipeline end-to-end, not just confirming that GuardDuty itself is enabled.

JSecurity

GuardDuty itself operates with read-only access to the telemetry it analyzes — it doesn’t modify VPC Flow Logs, CloudTrail events, or DNS records, and it has no ability to alter the resources it monitors. Its own service role is scoped narrowly to reading the specific data sources needed for detection, which limits the blast radius if the service’s own permissions were ever somehow misused (an important distinction from any custom-built detection pipeline that might inadvertently be granted broader permissions than strictly necessary).

Access Model

Read-Only by Design

GuardDuty reads telemetry to generate findings; it never writes to or modifies monitored resources directly.

Multi-Account

Delegated Administrator

Centralizes finding visibility and configuration management in a dedicated security account, following least-privilege principles for who can change detection settings.

Integration

Security Hub & EventBridge

Findings feed into centralized security posture tools without requiring GuardDuty itself to hold any remediation permissions.

Response

Least-Privilege Remediation Roles

Automated remediation Lambda functions triggered by findings should be scoped to only the specific remediation actions they perform, not broad administrative access.

ANTI-PATTERN · SEC-01 Avoid
Pattern

Giving an automated remediation function triggered by GuardDuty findings broad administrative permissions “to be safe” rather than scoping it to the specific action it needs to perform (like modifying a single security group).

Why It’s a Problem

An overly privileged automated response function becomes an attractive target in its own right — if an attacker can trigger or manipulate the conditions that invoke it, an overprivileged function could be leveraged to cause far more damage than the original finding warranted.

Correct Approach

Scope each automated remediation function narrowly to the exact action it needs to take in response to a specific finding type, following the same least-privilege principle applied to any other production IAM role.

Threat Intelligence Confidentiality

The specific threat intelligence indicators GuardDuty uses to match against known-malicious infrastructure aren’t fully exposed to customers in raw form — this is a deliberate design choice, since publishing the complete list of known-bad indicators would give attackers a roadmap for which specific infrastructure to avoid using next. Security teams generally accept this as a reasonable trade-off, since the value of the detection (knowing an indicator matched) doesn’t require full visibility into the entire underlying threat feed to be actionable.

KMonitoring, Logging & Metrics

Ironically, a service designed to monitor everything else also needs to be monitored itself — teams typically track GuardDuty’s own operational health through CloudWatch metrics covering finding counts by severity, data source coverage (confirming Flow Logs, DNS logs, and CloudTrail are all actively being ingested), and the health of downstream EventBridge rules and remediation pipelines that depend on findings actually arriving as expected.

SignalWhat It Tells You
Findings by severity, over timeOverall threat landscape trend and whether high-severity activity is increasing
Findings by account (in multi-account setups)Which accounts are generating the most concerning activity, useful for prioritizing security attention
Suppression rule match rateWhether suppression rules are correctly filtering known-benign activity without hiding genuine threats
EventBridge rule invocation failuresWhether findings are actually reaching downstream automation, or silently failing to trigger it
Malware Protection scan resultsConfirms whether triggered scans are completing and what they found
i
Practical Note

Security Hub is commonly used as the centralized triage layer sitting above GuardDuty, aggregating findings from GuardDuty alongside other AWS security services and giving analysts a single, prioritized queue rather than requiring them to check each service’s own console separately.

Avoiding Alert Fatigue Through Metrics

Tracking the ratio of findings marked as true positives versus those archived as benign over time gives a security team a concrete signal about whether their suppression rules and triage process are well-tuned. A consistently high archive rate for a specific finding type is often a sign that a suppression rule should be added, rather than continuing to have analysts manually dismiss the same pattern repeatedly.

Establishing a Baseline Metrics Review Cadence

Beyond reactive, per-finding investigation, mature security teams typically review aggregate GuardDuty metrics on a regular cadence — weekly or monthly — looking specifically for trend shifts: a gradual increase in reconnaissance findings against a particular resource, a new finding type appearing for the first time in a previously quiet account, or a change in the geographic distribution of flagged API activity. This periodic trend review catches slower-developing threats that wouldn’t necessarily trigger urgent individual alerts but represent a meaningful shift in an organization’s overall risk exposure over time.

LDeployment & Cloud Integration

GuardDuty is typically enabled through the AWS Management Console for a quick evaluation, but production deployments across an AWS Organization almost always use infrastructure-as-code (CloudFormation, Terraform, or AWS Organizations’ own delegated administrator APIs) to ensure every existing and newly created account automatically has GuardDuty enabled without relying on someone remembering to turn it on manually for each new account.

Downstream integration typically routes findings through EventBridge to one or more of: AWS Security Hub for centralized triage, an SNS topic feeding a ticketing system or Slack channel for human notification, and a Lambda function for automated remediation of well-understood, low-risk finding types (like automatically isolating an EC2 instance flagged for malware communication by attaching a restrictive security group). More mature environments often integrate GuardDuty findings into a broader Security Orchestration, Automation, and Response (SOAR) platform, using GuardDuty as one input signal alongside others rather than the sole source of truth.

Multi-Account

AWS Organizations Delegated Admin

Automatically enables GuardDuty for new and existing member accounts from a central security account.

Triage

AWS Security Hub

Aggregates GuardDuty findings alongside other security service findings into one prioritized view.

Automation

EventBridge + Lambda

Powers automated remediation workflows triggered directly by specific finding types.

IaC

CloudFormation / Terraform

Ensures consistent, auditable GuardDuty configuration across every account and Region in an organization.

Onboarding New Accounts Automatically

A common deployment pattern in growing organizations is wiring GuardDuty enablement directly into the account-vending process — whenever a new AWS account is provisioned through AWS Control Tower or a custom account factory pipeline, GuardDuty (along with other baseline security services) is enabled automatically as part of that provisioning workflow, rather than left as a manual follow-up step that can be forgotten under the pressure of getting a new account operational quickly for a project deadline.

Cross-Region Aggregation Strategies

For organizations operating across many Regions, some teams build a lightweight aggregation layer on top of GuardDuty’s own delegated administrator model — using EventBridge cross-Region event routing to funnel findings from every Region into a single centralized Region for unified dashboarding and alerting, rather than requiring analysts to check each Region’s findings separately even after account-level aggregation is already in place.

MDesign Patterns & Anti-Patterns

Pattern: Tiered Automated Response by Severity

Rather than treating every finding identically, mature deployments route findings differently based on severity — High severity findings trigger immediate automated containment actions and page an on-call responder simultaneously, Medium severity findings create a ticket for review within a defined SLA, and Low severity findings are logged for pattern analysis without individual human review. This tiered approach concentrates human attention where it matters most while still capturing lower-priority signal for later trend analysis.

Pattern: Centralized Multi-Account Aggregation

Designating a dedicated security account as GuardDuty’s delegated administrator across an entire AWS Organization, with findings aggregated centrally and downstream automation configured once at the organization level rather than duplicated per account, is the standard pattern for any organization operating more than a handful of AWS accounts.

Pattern: Suppression as a Continuously Maintained Asset

Treating suppression rules as living configuration — reviewed and updated as an environment changes, rather than written once and forgotten — keeps the signal-to-noise ratio healthy over time. An outdated suppression rule can either hide a genuine emerging threat that happens to resemble a previously benign pattern, or fail to suppress a pattern that changed shape slightly after infrastructure was updated.

ANTI-PATTERN · DES-01 Avoid
Pattern

Enabling GuardDuty and treating that alone as “done” for threat detection, without building any process for reviewing or acting on the findings it generates.

Why It’s a Problem

A detection service that generates findings nobody reviews provides a false sense of security — the organization believes it has threat detection coverage, but genuine threats sit unaddressed in an unmonitored findings queue exactly as they would with no detection service at all.

Correct Approach

Pair GuardDuty enablement with a defined triage process — whether manual review with clear SLAs or automated remediation — before considering the detection capability actually operational.

ANTI-PATTERN · DES-02 Avoid
Pattern

Suppressing entire finding types broadly (rather than narrowly scoped suppression rules) in response to a handful of false positives, out of frustration with alert volume.

Why It’s a Problem

Broad suppression of an entire finding type can silently blind the organization to future genuine occurrences of that same threat category, trading short-term alert fatigue relief for a long-term detection gap that may not be discovered until an actual incident goes unnoticed.

Correct Approach

Scope suppression rules as narrowly as possible — to the specific resource, IP range, or pattern known to be benign — rather than disabling an entire category of detection.

NBest Practices & Common Mistakes

Best Practice

Enable in every Region, not just active ones

Unused Regions are a common blind spot and a common target for activity intended to avoid a team’s usual monitoring footprint.

Best Practice

Use a delegated administrator account

Centralize configuration and finding visibility rather than managing GuardDuty independently per account.

Best Practice

Build tiered, severity-based response automation

Match the urgency and automation level of the response to the actual severity of the finding.

Best Practice

Scope suppression rules narrowly

Suppress specific known-benign patterns rather than entire finding categories.

Common Mistakes

  • Enabling GuardDuty without a defined triage or response process
  • Leaving Regions outside normal operations unmonitored
  • Granting overly broad permissions to automated remediation functions
  • Broadly suppressing an entire finding type after a handful of false positives
  • Ignoring elevated finding volume during the initial baselining period, dismissing it as noise rather than reviewing it for genuine signal

Quick Wins

  • Route High severity findings directly to an on-call paging system from day one
  • Enable Malware Protection and S3 Protection alongside core detection for broader coverage
  • Review archived (dismissed) findings periodically to confirm suppression rules remain accurate

Treating Findings as a Feedback Loop for Broader Security Posture

Beyond individual incident response, recurring finding patterns are valuable input for improving an organization’s underlying security posture — repeated reconnaissance findings against a specific public-facing resource might justify tightening its security group rules proactively, and repeated anomalous API call findings tied to a specific IAM role might justify reviewing whether that role’s permissions are broader than actually needed. Treating GuardDuty purely as an incident-by-incident alerting tool, without periodically stepping back to look at patterns across findings, leaves this broader improvement opportunity on the table.

Testing the Full Response Pipeline Periodically

Because the value of GuardDuty is realized entirely through the response process built on top of it, periodically validating that the full pipeline works end-to-end — from a simulated or sample finding through EventBridge, into Security Hub, and through to whatever notification or remediation action is expected — catches silent breakages before they matter during an actual incident. Teams sometimes discover during a real event that a downstream integration had been quietly broken for weeks, a gap that a routine quarterly test of the pipeline would have caught with no real risk involved.

OReal-World & Industry Examples

Financial Services — Regulatory-Driven Continuous Monitoring

Banks and payment processors operating under strict regulatory requirements for continuous security monitoring use GuardDuty as a baseline detection layer that satisfies audit requirements for demonstrable, always-on threat monitoring across their AWS footprint.

SaaS Companies — Multi-Tenant Account Sprawl

SaaS providers managing dozens or hundreds of AWS accounts (often one per customer or environment) rely heavily on the delegated administrator model to maintain centralized visibility without the impractical alternative of monitoring each account individually.

E-Commerce — Cryptomining and Credential Abuse Detection

Retail and e-commerce platforms commonly cite cryptocurrency-mining detection and compromised-credential detection as among the most operationally valuable GuardDuty finding categories, since both patterns are common outcomes of leaked credentials or misconfigured public-facing resources at scale.

Startups — Security Coverage Without a Dedicated SOC

Smaller organizations without the resources for a dedicated 24/7 security operations center use GuardDuty combined with automated remediation to achieve a meaningful baseline of continuous threat detection and response that would otherwise require significant security engineering investment to build from scratch.

i
Note

This guide describes typical, publicly discussed patterns of GuardDuty usage across these industries rather than confirmed internal architecture of any specific company, since that detail is rarely published externally.

PFrequently Asked Questions

Q1Does GuardDuty require agents on EC2 instances?
No — core detection is entirely agentless, analyzing VPC Flow Logs, DNS logs, and CloudTrail events at the infrastructure layer. Malware Protection performs agentless volume scanning triggered by specific findings, also without a persistent agent.
Q2Will GuardDuty automatically stop a detected attack?
Not by itself — GuardDuty generates findings describing suspicious activity. Automated response (like isolating a compromised instance) requires separately configured automation, typically via EventBridge and Lambda, built on top of GuardDuty’s findings.
Q3Why did finding volume spike right after enabling GuardDuty?
Newly enabled accounts go through a baselining period where anomaly-detection machine learning models are still establishing what normal behavior looks like for that account, which can temporarily produce more findings than a mature, well-tuned deployment.
Q4Can GuardDuty findings be shared across multiple AWS accounts?
Yes — through AWS Organizations’ delegated administrator model, a central security account can view and manage findings aggregated from every member account, rather than requiring separate access to each account individually.
Q5Is GuardDuty a replacement for a SIEM platform?
Not typically on its own — GuardDuty is a detection source that generates AWS-specific findings, which many organizations feed into a broader SIEM or Security Hub setup alongside signals from non-AWS systems, rather than treating GuardDuty as a complete substitute for enterprise-wide security monitoring.

QSummary & Key Takeaways

Key Takeaways

  • Amazon GuardDuty is a fully managed, agentless threat detection service that continuously analyzes VPC Flow Logs, DNS logs, CloudTrail events, and other AWS-native telemetry.
  • Detections combine threat intelligence feed matching (fast, high-confidence, known threats) with machine learning anomaly detection (catches novel threats by learning each account’s normal behavior baseline).
  • Findings carry a severity score from 0.1 to 8.9 and can be correlated into multi-stage attack sequences through Extended Threat Detection, reducing alert fatigue.
  • GuardDuty is detection-only — it doesn’t block or remediate threats automatically; that requires separately built automation, typically via EventBridge and Lambda.
  • Delegated administrator support through AWS Organizations lets a security team centrally manage and aggregate findings across an entire multi-account environment.
  • Coverage gaps most commonly arise from unmonitored Regions, not service failures — enabling GuardDuty organization-wide across every Region is standard practice.
  • The service’s value depends entirely on the response process built around it — a triage and remediation workflow is what turns findings into actual security outcomes.