A Config Recorder that Is Actually Running
Recorder, delivery channel, service role and managed rules. Starting the recorder is a separate resource people leave out, so a stopped recorder looks identical to a running one until an investigation finds an empty timeline.
Verification
Static-verifiedPassed: validated and lint-clean (provider-schema-validated for AWS/Azure/GCP; Terraform-language lint elsewhere).
Conformance
- Static validation (fmt · validate · tflint)
- Security scan clean (Checkov)
- Plan tests (mocked: validation rules · outputs)
Provenance
- SHA-256 checksum
- Signature (pending)
Functional
- Live test pending (no cloud run yet)
Last verified 2026-09-12 · how we verify
Use it from the registry
terraform · opentofumodule "config" {
source = "www.iac-bazaar.com/iac-bazaar/aws-config/aws"
version = "1.0.0"
}Needs a registry token from /account/tokens. The module itself is free; the account is what identifies you. Full setup: registry docs.
Inputs & outputs
Create a free account to read this module's contract
The declared contract - every input name, type, default and description, plus every output - is shown to signed-in accounts, not to anonymous visitors.
A free account sees the contract of every module in the catalogue. There is no subscription and nothing to buy - the modules are free to download, and they run under Vizier.
Documentation
aws-config
An AWS Config recorder that is actually running, its delivery channel,
service role, managed rules and optional multi-account aggregator. Works with
Terraform and OpenTofu (>= 1.6), AWS provider >= 6.0, < 7.0.
A recorder that exists is not a recorder that runs. Starting it is a
separate API call and a separate Terraform resource
(aws_config_configuration_recorder_status), and the console lists a stopped
recorder in the same place as a running one. A Config setup written without it
records nothing at all, and the first sign is an empty timeline in the middle of
an investigation. This module always creates that resource; recording = false
turns it off deliberately rather than by omission.
Global resources are recorded by every region that asks for them. IAM users,
roles and policies are global, so recording them in ten regions stores ten
copies of one history and bills for all ten. include_global_resource_types
defaults to false; set it in exactly one region.
Two other things this module does that hand-written Config usually misses:
- The AWS managed policy
AWS_ConfigRolegrants the reads Config needs and not the writes that deliver the results. The module adds the delivery permissions, scoped to the bucket, prefix and account - The delivery bucket's own policy still has to allow the service principal.
The module cannot set it - the bucket is commonly in another account - so it
emits the exact statements as the
required_bucket_policyoutput
record_all_supported defaults to true. A narrowed list is a list of the
things you thought to name, and the resource that turns out to matter in an
investigation is usually one nobody listed.
The service role's trust policy carries an AWS:SourceAccount condition, so
another account cannot persuade Config to assume it and reach your resources.
Verification
Static validation runs tofu fmt, init, validate, tflint and checkov.
This module has not yet had a live test, so it is published as statically
validated with its live test pending and does not carry the live-tested mark.
Usage code & full reference need an account
The complete copy-paste usage, the full input/output reference, and operational notes are free with an account - shown here and bundled in the download. Sign in and this section fills in.
- Usage
Related modules
aws-cloudtrail
Multi-region trail with log file validation always on, a bucket that blocks public access, versions, encrypts and denies non-TLS, a policy pinned to this trail, optional CloudWatch delivery and opt-in data events.
aws-cloudwatch
A self-contained CloudWatch observability bundle - an encrypted log group with retention, a metric alarm, and a dashboard - that stands up from just a name and points at any real metric.
aws-security-lake
Organization security logs normalised to OCSF in S3, with the storage-class transitions that decide what it costs, optional replication, and subscribers whose external id is validated as the confused-deputy guard it is.