Resolver Endpoints, Forwarding, Query Logs and DNSSEC
Endpoints that carry DNS across the VPC boundary, with a precondition requiring addresses in two different subnets - the part the API does not check, and the reason a zone failure becomes every application failing at once.
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 "route53_resolver" {
source = "www.iac-bazaar.com/iac-bazaar/aws-route53-resolver/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-route53-resolver
Route 53 Resolver endpoints, forwarding rules, query logging and DNSSEC
validation - the pieces that carry DNS across a VPC boundary. Works with
Terraform and OpenTofu (>= 1.6), AWS provider >= 6.0, < 7.0.
An endpoint is only as available as its IP addresses. Each address lives in one subnet, so an endpoint with addresses in a single availability zone stops resolving when that zone does - and DNS failing is every application failing at once. AWS requires two addresses; this module requires them in two different subnets, which is the part the API does not check.
Query logging is the only record of what a host asked for. It cannot be
reconstructed afterwards: a query that was not logged when it happened is gone.
That is why "what did that instance talk to before we noticed?" so often has no
answer, and why query_logging_enabled is an output rather than an assumption.
DNSSEC validation turns a silent lie into a loud failure. A zone whose signatures do not verify returns SERVFAIL instead of resolving to whatever the answer claimed to be. That is the point - and it does mean somebody else's broken signing becomes your outage, so the variable says so.
The SYSTEM rule type is the one people miss: it carries no targets and exists
to carve an exception out of a FORWARD rule, sending one subdomain back to
AWS's own resolver rather than the forwarder that covers its parent. The example
shows the pair.
Preconditions refuse a FORWARD rule with no outbound endpoint, and a FORWARD rule with no targets - both of which the API accepts or reports late.
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-dns-firewall
Domain lists, rule group, rules and VPC associations. Fail-open is an availability decision wearing a security name: closed makes a firewall fault a DNS outage, open resolves unfiltered without saying so. The module makes you choose.
aws-route53
A Route 53 hosted zone (public or private via vpc_ids) plus a map-driven set of records, with name normalisation and the alias-vs-rdata distinction resolved and inputs validated.
akamai-edge-dns-zone
Authoritative Edge DNS zone with full recordset management on Akamai's DDoS-resilient anycast network.
akamai-gtm-failover
Global Traffic Management domain with datacenters and failover or weighted-round-robin properties plus liveness tests.
azure-private-dns
A self-contained Azure Private DNS zone with virtual-network links and optional record sets for private name resolution across VNets and Private Endpoints - VM auto-registration off by default.
azure-dns-zone
An Azure public DNS zone plus a map-driven set of record sets - A, AAAA, CNAME, TXT, MX, NS, CAA and SRV - with relative naming, verbatim TXT values, and apex footgun guards.