EventBridge Bus, Rule & Target
A custom EventBridge event bus, a pattern-filtered rule, and a target wired end-to-end — encryption at rest always on, least-privilege log delivery, and a 24h retry policy with optional DLQ.
Verification
Live-testedReally deployed, verified, idempotent and destroyed in a cloud sandbox.
Conformance
- Static validation (fmt · validate · tflint)
- Security scan (Checkov)
- Plan tests (mocked: validation rules · outputs)
Provenance
- SHA-256 checksum
- Signature (pending)
Functional
- Live-tested — applied, verified, destroyed
Last verified 2026-06-30 · how we verify
Documentation
aws-eventbridge
A custom Amazon EventBridge event bus, a rule that filters events by
event pattern, and a target — wired end-to-end. Works with Terraform and
OpenTofu (>= 1.6), AWS provider >= 6.0, < 7.0.
By default the module creates its own CloudWatch Logs group as the target
(plus the resource policy EventBridge needs to write to it), so the whole stack
stands up from a single input (bus_name) and is perfect for capturing or
auditing events. Point it at any existing destination instead with
target_type = "external" and target_arn.
Secure defaults:
- Encryption at rest always on — the bus uses the AWS-owned EventBridge key
by default (free); pass
bus_kms_key_identifierfor a customer-managed key. The target log group is encrypted with AWS-managed CloudWatch Logs encryption unless you supplylog_kms_key_id. - Least-privilege log delivery — the log group resource policy grants only
logs:CreateLogStream/logs:PutLogEvents, scoped to that single group and guarded by anaws:SourceAccountcondition so only this account's EventBridge can write (confused-deputy protection). - Reliable delivery — a 24h / 185-attempt retry policy by default, with an optional dead-letter queue on both the bus and the target.
Custom-bus rules must filter by event pattern — AWS only allows
schedule_expressionrules on the default bus, so this module intentionally does not expose scheduling (use theaws-step-functions/EventBridge Scheduler for that). The default pattern is a catch-all ({"account": ["<id>"]}); setevent_patternfor real routing.
Requirements
- Terraform or OpenTofu
>= 1.6 hashicorp/aws>= 6.0, < 7.0
Verification
Static-validated (fmt, validate, tflint). Live apply/destroy testing pending cloud sandbox availability — see catalog status.
License
Commercial — IaC Bazaar EULA. © IaC Bazaar. Original work (not derived from a third-party module).
Usage code & full reference unlock after purchase
The complete copy-paste usage, the full input/output reference, and operational notes ship with your licence — shown here and bundled in the download.
- Usage
- Inputs
- Outputs