AWS GuardDuty¶
Collects threat detection findings from Amazon GuardDuty, Amazon's managed threat detection service that monitors for malicious activity and anomalous behavior across AWS accounts and workloads.
| Category | Cloud Security |
| Connector Name | signal-client.aws-guardduty |
| Auth Method | IAM Access Key + Secret Key |
| Polling Interval | 5 min |
| Multi-Instance | Yes |
| Vendor Docs | AWS GuardDuty API |
Prerequisites¶
Vendor Requirements
Active AWS account with GuardDuty enabled. IAM permissions to create users and/or roles.
- Active AWS account
- GuardDuty enabled in the target region
- IAM access to create users or roles
- Network: Conductor can reach
guardduty.<region>.amazonaws.comon port 443
Step 1: Create API Credentials¶
- Sign in to the AWS Console at
https://console.aws.amazon.com/ - Navigate to IAM → Users → Create user
- Name the user (e.g.,
witfoo-guardduty-reader) - Select Programmatic access (Access key)
- Attach the managed policy:
AmazonGuardDutyReadOnlyAccess - Complete user creation
- Copy the Access Key ID and Secret Access Key
Cross-Account Collection
For multi-account environments, create an IAM role with an external ID instead of an IAM user. The role should trust the Conductor account and have AmazonGuardDutyReadOnlyAccess attached.
Enable GuardDuty (if not already enabled)¶
- Navigate to GuardDuty in the AWS Console
- Click Get Started → Enable GuardDuty
- GuardDuty begins analyzing VPC Flow Logs, CloudTrail events, and DNS logs
Step 2: Configure in Conductor¶
- Open the Conductor UI at
https://<conductor-ip>/admin/settings/integrations - From the Add Integration dropdown, select AWS GuardDuty
- Enter a unique name for this instance
-
Fill in the settings form:
Field Value Description Region us-east-1AWS region where GuardDuty is enabled Access Key ID <your-access-key>IAM access key from step 1 Secret Access Key <your-secret-key>IAM secret key from step 1 Detector ID (optional) Leave blank for auto-discovery -
Set the Polling Interval (recommended: 5 minutes)
- Toggle Enabled to on
- Click Save
Detector ID Auto-Discovery
If the Detector ID field is left blank, Conductor will automatically discover the GuardDuty detector in the configured region using the ListDetectors API.
Step 3: Validate Data Flow¶
After saving, verify the integration is working:
- Check connection status — The integration tile should show a green status indicator within 1–2 polling cycles
-
Check Signal Client logs:
Look for successful poll messages:
-
Check artifacts in Analytics — Navigate to WitFoo Analytics Signals → Search and search for artifacts from this source
GuardDuty Severity Scale
GuardDuty findings use a severity scale of 0–8.9. Conductor normalizes these to WitFoo severity levels automatically.
Troubleshooting¶
Authentication Failed (401/403)¶
- Verify the Access Key ID and Secret Access Key are correct
- Ensure the IAM user has the
AmazonGuardDutyReadOnlyAccesspolicy attached - Check that the IAM user or access key is not disabled
Wrong Region¶
- GuardDuty is region-specific — ensure the Region field matches where GuardDuty is enabled
- If GuardDuty is enabled in multiple regions, create one integration per region
No Data Appearing¶
- Confirm GuardDuty is enabled in the target AWS region
- GuardDuty may take up to 24 hours to generate initial findings
- Check Signal Client logs:
docker logs signal-client-svc --tail=100 - Verify network connectivity:
curl -I https://guardduty.<region>.amazonaws.com
See also: Integration Catalog · AWS Security Hub · Integration Management · Signal Client · Common Troubleshooting