Subchapter 41.1
references/detective-configuration.mdMarkdown4 KBView on GitHub
Audits Amazon Detective configuration across single accounts and organizations. Checks behavior graph existence, data source enablement, member account coverage, and invitation status. Results are presented as a configuration state summary.
Detective ingests CloudTrail management events, VPC Flow Logs, EKS Audit Logs, and Security Hub findings to build behavior graphs for investigation. Detective does NOT support S3 data events.
Works from both standalone accounts and delegated administrator accounts.
| Signal | Workflow |
|---|---|
| Single account, no org context | A: Review Single Account |
| Org admin, multi-account coverage | B: Review Organization Coverage |
| “Is Detective set up correctly?” | A then B if org |
List behavior graphs:
aws detective list-graphsConfigured: at least one graph. Not Configured: no graphs.
Check behavior graph encryption — verify EncryptionType from list-graphs response indicates customer-managed KMS key (CMK). If EncryptionType is SERVICE_DEFAULT, the graph uses AWS-owned keys rather than customer-managed encryption.
For each graph, check data source packages:
aws detective list-datasource-packages --graph-arn <graph-arn>Expected packages:
For each: STARTED = Configured, STOPPED/DISABLED = Not Configured.
List members:
aws detective list-members --graph-arn <graph-arn>Check each member status: ENABLED, VERIFICATION_FAILED, VERIFICATION_IN_PROGRESS.
Check pending invitations (from member perspective):
aws detective list-invitationsSecurity check: Verify CloudTrail is enabled and logging Detective API calls (detective:* events) for audit purposes.
Present results:
| Check | Status |
|---|---|
| Behavior Graph Exists | Configured / Not Configured |
| Behavior Graph Encryption | Customer-managed KMS / AWS-owned |
| CloudTrail Logs | Enabled / Disabled / Not Configured |
| EKS Audit Logs | Enabled / Disabled / Not Configured |
| Security Hub Findings | Enabled / Disabled / Not Configured |
| Member Count | X members |
| Members Enabled | X/Y enabled |
Identify admin:
aws detective list-organization-admin-accountsCheck organization configuration:
aws detective describe-organization-configuration --graph-arn <graph-arn>Configured: autoEnable is true.
For quick membership signal, describe-organization-configuration confirms auto-enable for new accounts. Full member enumeration requires list-members pagination — expensive for large organizations.
(ONLY if user explicitly requests per-account detail):
aws detective list-members --graph-arn <graph-arn>Evaluate: ENABLED, VERIFICATION_FAILED, INVITED (not accepted), DISABLED.
Check data source packages on admin graph (step 3 from Workflow A).
Present results:
| Check | Status |
|---|---|
| Delegated Admin Configured | Configured / Not Configured |
| Auto-Enable New Accounts | Enabled / Not Enabled |
| Member Accounts | Enrolled (details on request) |
| Data Sources Enabled | X/Y packages |
| Error | Resolution |
|---|---|
| AccessDeniedException on list-graphs | Detective not enabled — report as NOT_CONFIGURED |
| ValidationException on list-members | Invalid graph ARN — re-fetch from list-graphs |
| Empty list-graphs response | Detective not enabled in region |
| AccessDeniedException on describe-organization-configuration | Not an org admin — switch to Workflow A |
Configuration output reveals behavior graph ARNs, member account IDs and invitation status, enabled data source packages, and organization auto-enable settings. Present configuration summary first; offer raw API responses on request.