Guide · Ilia Dubovskii · 8 November 2026

Honeytokens vs GuardDuty: What Each Catches, and Why You Want Both

Amazon GuardDuty and honeytokens answer different questions. GuardDuty asks whether a real identity is behaving suspiciously. A honeytoken asks whether anyone has used a credential that nobody legitimate holds. GuardDuty covers far more ground; a honeytoken gives an answer with almost no doubt, from a place you chose. Most AWS teams should run both, and automate on different things from each.

The short version

1. The difference in one sentence

GuardDuty detects suspicious use of things you really use. A honeytoken detects any use of a thing nobody should use. Everything else on this page follows from that. GuardDuty has to decide what "suspicious" means, against a baseline of your real activity, and it covers your whole account. A honeytoken needs no baseline, because its normal is zero, but it only covers the places you put it.

A honeytoken is a decoy piece of data: here, a real AWS access key belonging to an IAM user that is denied every action. You plant it where an attacker looks for credentials, such as a CI variable, a .env file or a container's environment. The AWS canary credentials guide shows how to build one in Terraform.

2. What GuardDuty detects about credentials

GuardDuty analyses CloudTrail management events, VPC flow logs, DNS logs and, with optional protection plans, more sources, and combines threat intelligence with machine-learning anomaly detection. For credentials specifically, the relevant IAM finding types fall into three groups:

On top of individual findings, Extended Threat Detection correlates signals across data sources, resource types and time to flag multi-stage attacks. AWS enables it by default with GuardDuty, at no extra cost.

Findings reach EventBridge in near real time once generated; repeat occurrences are aggregated into one event every 6 hours by default (15 minutes or 1 hour are the other options). Pricing is per million CloudTrail management events analysed and per gigabyte of flow and DNS logs, with a 30-day free trial for accounts that have never enabled it.

If you run workloads in AWS and GuardDuty is off, turn it on before you plant a single honeytoken. It covers far more ground than any decoy can.

3. What GuardDuty can't tell you

GuardDuty's strength, judging real activity against what's normal, is also its limit.

None of this is a criticism of GuardDuty. Any detector that judges real activity has to trade sensitivity for noise. It's simply the gap a decoy fills.

4. What a honeytoken tells you that nothing else does

What it doesn't give you is coverage. A honeytoken only reports on the places you planted it, and a careful attacker can sometimes recognise a decoy (see fingerprinting). Will GuardDuty itself flag the use of a honeytoken? Only if that use looks anomalous or matches threat intelligence. Alert on the decoy directly instead.

5. Base rates: why the trigger decides what you can automate

The practical difference shows up when you try to automate a response. An automated action runs every time its trigger fires, so it inherits the trigger's error rate.

Illustrative arithmetic, not data

If 1 anomaly finding in 100 turns out to be an attack, an automatic "isolate the workload" response is wrong 99 times for each time it's right. A honeytoken's legitimate use is zero by construction, so outside your own tests, every trip is real. That's the base-rate problem Stefan Axelsson described for intrusion detection in 2000.

This is why "automate on certainty" applies to some GuardDuty findings too. An instance credential used from outside AWS is narrow enough to be a reasonable candidate for revoking the role's sessions automatically. An anomaly finding usually isn't. What to automate in incident response turns this into a trigger-by-action matrix.

6. Side by side

GuardDuty Honeytoken (AWS key)
Question it answersIs a real identity or resource behaving suspiciously?Has anyone used a key nobody should hold?
CoverageThe whole account, every enabled region, many data sourcesOnly where you planted it
BaselineLearned from your activity (anomaly findings)None: normal use is zero
False positivesSome, by design, for anomaly findingsYour own tests and scanners
Tells you where it leaked fromNo, it names the identityYes, one key per location
SpeedNew findings to EventBridge in near real time once generatedBound by CloudTrail delivery; AWS says about 5 minutes on average to S3 and Logs, not guaranteed
CostPer analysed event and log volume, after a 30-day trialNear zero self-hosted; free or paid as a service
SetupOne switch per account (or organisation-wide)An afternoon per pattern, then one key per location
Safe to automate onNarrow, high-severity findingsEvery trip, with an undoable action

7. Using them together

  1. Turn GuardDuty on everywhere, organisation-wide if you use AWS Organizations, and route findings to the people who handle security.
  2. Plant honeytokens where GuardDuty is blind to the source: CI variables, build logs, config repositories, container environments, developer laptops. These are the places a credential leaks from without any unusual AWS activity yet.
  3. Alert on each honeytoken directly, not through GuardDuty: an EventBridge rule on the decoy user in every region, with a CloudTrail metric filter as a backstop.
  4. Split the responses by certainty. Automate a contained, undoable response on honeytoken trips and on narrow findings like instance credentials used outside AWS. Send anomaly findings to a person, with the evidence gathered automatically.
  5. Test both regularly. GuardDuty can generate sample findings; a honeytoken can be test-fired with a call you control. A detector that silently stopped working is worse than none.

8. Ways to get honeytokens, and where we fit

The full comparison covers how they differ on account ownership, fingerprinting and latency.

Disclosure: we make it. Compass, our open-source tool, suggests where to place honeytokens from a map of your AWS account, plants them as pull requests to your infrastructure repository, and responds when one is used (for example by deactivating the key or restarting the ECS task it was taken from) within a risk policy you set. Today the IAM key decoy is the one that works end to end.

9. FAQ

Do I need honeytokens if I already have GuardDuty?

Usually yes, because they catch different things. GuardDuty looks for suspicious behaviour by your real identities and resources. A honeytoken is a credential nobody legitimate holds, so any use of it means someone found it and tried it, and it points at the place you planted it. Keep GuardDuty on, and add honeytokens where an attacker would look for credentials.

Does GuardDuty detect stolen AWS access keys?

Partly. It has findings for EC2 instance and other resource credentials used from outside AWS or from another account, anomaly-based findings for unusual API calls by an IAM user, and a threat-intelligence finding for access keys identified as potentially compromised. It has no dedicated finding for a long-term access key simply being used from a new place, so a stolen key used in a way that looks normal may not produce a finding.

Will GuardDuty alert when a honeytoken is used?

Not reliably. GuardDuty doesn't know the key is a decoy, so it only produces a finding if the use looks anomalous or matches threat intelligence. Alert on the honeytoken directly instead, with an EventBridge rule or a CloudTrail metric filter that matches the decoy user.

How fast are GuardDuty findings compared with a honeytoken alert?

GuardDuty sends new findings to EventBridge in near real time once it has generated them, and aggregates repeats into one event every 6 hours by default (15 minutes or 1 hour are options). A honeytoken alert depends on CloudTrail delivery, which AWS says averages about 5 minutes to S3 and CloudWatch Logs, without a guarantee. Measure both in your own account.

Is GuardDuty Extended Threat Detection an extra cost?

No. AWS says Extended Threat Detection is enabled by default when you enable GuardDuty, at no additional cost. It correlates signals across data sources, resource types and time to detect multi-stage attacks.

Which should I automate a response on?

Automate on signals that are almost never wrong: a honeytoken being used, or a narrow, high-severity GuardDuty finding such as instance credentials used from outside AWS, and only with actions you can undo. Send anomaly-based findings to a person, with the evidence gathered automatically.

Written by Ilia Dubovskii, founder of Beamreach. GuardDuty finding types, pricing and delivery behaviour were checked against AWS documentation on 8 November 2026. AWS changes GuardDuty often; check the linked pages before relying on a detail.

Related: AWS canary credentials: set up an IAM honeytoken · Thinkst Canary vs Canarytokens.org vs self-hosted · What to automate in incident response · One Fake Password Is Worth More Than 10,000 Alerts (talk)