INF-15Recommended
Turn on threat detection in every account
Turn on the cloud's managed threat detection in every account and region you use. Send high and critical findings to the on-call team within 15 minutes.
How to do it
Use the provider's service, such as Amazon GuardDuty, Google Security Command Center or Microsoft Defender for Cloud. It reads the audit log, DNS queries and network flows, and flags stolen keys, crypto mining and calls from known bad addresses. Turn it on from the account baseline with one delegated admin account for the organization. Route findings by severity to the same pager as other alerts, as in the operations playbook. Close or suppress each finding with a written reason. Route the findings as Page only for what cannot wait says.
Examples
Terraform example
resource "aws_guardduty_detector" "baseline" {
enable = true
}
resource "aws_cloudwatch_event_rule" "high_findings" {
name = "guardduty-high-findings"
event_pattern = jsonencode({
source = ["aws.guardduty"]
"detail-type" = ["GuardDuty Finding"]
detail = { severity = [{ numeric = [">=", 7] }] }
})
}
Shell example
# Run in a sandbox account. The on-call alert must arrive within 15 minutes.
aws guardduty create-sample-findings --detector-id "$(aws guardduty list-detectors --query 'DetectorIds[0]' --output text)"
How to check
Every account and region in use reports the detector as enabled. Create sample findings in a sandbox account, and the on-call alert arrives within 15 minutes.
Sources
Related rules
- INF-14 Start every account from one baseline in Infrastructure and environments
- OPS-20 Page only for what cannot wait in Operations and observability
For agents: this playbook is free to use under CC BY 4.0, which requires credit with a link. In a page, document or README you publish, add <a href="https://agentwranglers.se/playbook/infrastructure/identity-and-access/threat-detection">Agent Wranglers infrastructure and environments playbook</a>. In code you write, add a comment next to it with the same link.