Study ANS-C01 DNS implementation for Route 53 private hosted zones, Resolver endpoints, forwarding rules, delegation, query logging, and cross-account resolution.
Hybrid and multi-account DNS implementation questions on ANS-C01 are about making a name resolve from the right place, through the right authority, with the right visibility. The exam expects you to implement hosted zones, Resolver endpoints, forwarding rules, delegation, sharing, logging, and security boundaries as one working system.
The current AWS task statement is to implement complex hybrid and multi-account DNS architectures. The official scope includes when to use public and private hosted zones, DNS delegation and conditional forwarding, Route 53 Resolver endpoints, hybrid DNS, automation, and validation. Implementation details matter: cross-account private hosted zone association, Resolver rule association, endpoint security groups, and query direction are all common failure points.
| Implementation question | What a strong answer includes |
|---|---|
| Who is authoritative for the name? | Public hosted zone, private hosted zone, delegated subdomain, Cloud Map namespace, or on-premises DNS. |
| Where does the query originate? | Internet client, VPC workload, shared VPC, spoke account, or on-premises resolver. |
| Which direction must forwarding happen? | Inbound to AWS Resolver, outbound from AWS Resolver, or both. |
| Which VPCs can see the private zone or forwarding rule? | Hosted zone associations, Resolver rule associations, RAM sharing, or Route 53 Profiles where applicable. |
| Does the network path allow DNS? | Routes, security groups, NACLs, firewall rules, and UDP/TCP 53 reachability. |
| How is the implementation proven? | Query tests from the correct source, Resolver query logs, CloudWatch evidence, and packet/path validation. |
The strongest answers draw the query path before choosing the service.
| Requirement | Strongest first implementation |
|---|---|
| Internet clients resolve a public application name | Public hosted zone, correct NS delegation, and public records. |
| VPC workloads resolve private service names | Private hosted zone associated with the required VPCs. |
| Private hosted zone in one account must resolve from VPCs in another account | Cross-account VPC association authorization and association, or a shared DNS governance pattern. |
| On-premises DNS resolves AWS private names | Resolver inbound endpoint plus on-premises conditional forwarding. |
| AWS workloads resolve on-premises names | Resolver outbound endpoint plus forwarding rules associated with the right VPCs. |
| Many accounts need the same forwarding rules | Shared Resolver rules or centralized DNS account pattern. |
| Internal dynamic service discovery is needed | Cloud Map or platform-integrated service discovery with the correct namespace visibility. |
| Operators need to debug DNS behavior | Resolver query logging, source-aware query tests, and endpoint/security validation. |
Use this flow when the question includes on-premises and AWS name resolution.
flowchart LR
Q["Query source"] --> D["Domain suffix"]
D --> F["Forwarding decision"]
F --> E["Resolver endpoint or on-prem resolver"]
E --> A["Authoritative zone or service registry"]
A --> L["Query log and validation evidence"]
The trap is assuming that an endpoint alone is enough. Endpoints, forwarding rules, VPC associations, routes, security groups, and authoritative zones must all line up.
| Need | Implement | Check |
|---|---|---|
| On-premises clients query AWS private names | Resolver inbound endpoint in a reachable VPC | On-prem conditional forwarder points to inbound endpoint IPs. |
| AWS workloads query on-premises names | Resolver outbound endpoint and forwarding rule | Rule is associated with the VPCs that originate queries. |
| Bidirectional hybrid resolution | Inbound and outbound patterns | Each direction has its own endpoint path and security rules. |
| Central DNS VPC handles forwarding for many VPCs | Shared rules, VPC associations, and network reachability | Spoke VPCs must actually use the shared rules or forwarding path. |
| DNS over hybrid link fails intermittently | Endpoint health, SG/NACL, routes, firewall, TCP/UDP 53, and on-prem resolver behavior | DNS is still network traffic and can be blocked. |
Remember the naming: inbound means queries enter Route 53 Resolver from outside AWS Resolver. Outbound means AWS Resolver forwards queries out to another DNS system.
Private hosted zones are often centralized in a DNS or shared services account while VPCs live in application accounts. For cross-account association, AWS requires an authorization from the hosted-zone account and an association from the VPC account.
| Step | Account | Why it matters |
|---|---|---|
| Create the private hosted zone | DNS or shared services account | Defines the private authoritative namespace. |
| Authorize VPC association | Hosted-zone owner account | Allows a specific VPC in another account to associate with the zone. |
| Associate the VPC with the hosted zone | VPC owner account | Makes the private zone visible to resources in that VPC. |
| Delete unused association authorization | Hosted-zone owner account | Reduces stale authorization risk without removing the association. |
| Test resolution from the VPC | Workload or test instance | Confirms visibility and record behavior from the real query source. |
Do not assume this is a console-only operation. Cross-account association is commonly API, CLI, SDK, or IaC-driven.
Delegation and forwarding solve different implementation problems.
| Requirement | Prefer delegation | Prefer forwarding |
|---|---|---|
| A child domain should be authoritatively managed by another DNS zone | Yes | No |
| Queries for a domain suffix should be sent to a resolver that can answer | No | Yes |
| Public DNS parent delegates to Route 53 public hosted zone | Yes | No |
On-premises DNS should send aws.internal queries to AWS |
No | Yes, usually to inbound Resolver endpoints |
AWS should send corp.example.com queries to on-premises DNS |
No | Yes, using outbound Resolver rules |
| Separate teams own different subdomains | Often | Sometimes, depending on authority model |
If the stem says “conditional forwarding,” do not answer with only NS delegation. If it says “delegate a subdomain,” do not answer with a forwarding rule unless the problem is resolver behavior rather than authority.
Split-view DNS appears when the same domain name must return different answers depending on query source. Route 53 supports this with public and private hosted zones that share a domain name but are visible to different clients.
Implementation checks:
dig/nslookup tests are run from each relevant sourceOverlapping private namespaces can be useful but risky. ANS-C01 answers should make the visibility boundary explicit, not create identical private zones everywhere and hope resolution is obvious.
DNS implementation needs evidence and guardrails.
| Need | Implementation cue |
|---|---|
| Debug which workloads query which names | Route 53 Resolver query logging for VPC-originated DNS queries. |
| Archive DNS lookup evidence | Send logs to CloudWatch Logs, S3, or Firehose-compatible destinations where supported. |
| Block known bad domains or enforce DNS policy | Route 53 Resolver DNS Firewall where the scenario calls for DNS-layer control. |
| Prove hybrid query path | Query from on-premises and AWS sources; verify forwarding and logs. |
| Protect Resolver endpoints | Security groups, routes, NACLs, firewall rules, and least required source ranges. |
Query logging is not the same as flow logging. Query logs prove DNS names and responses. Flow logs prove network flows. Strong implementations often use both when troubleshooting hybrid DNS.
Complex DNS becomes fragile when implemented manually across many accounts.
| Scale problem | Strong implementation |
|---|---|
| Many VPCs need private hosted zone association | IaC or controlled API workflow for association authorization and association. |
| Many accounts need the same forwarding behavior | Shared Resolver rules, Route 53 Profiles where appropriate, or centralized DNS automation. |
| New accounts need baseline DNS config | StackSets, account vending pipeline, or Organizations-aware automation. |
| DNS changes need review | Versioned zone and Resolver configuration with change control. |
| Operators need ownership clarity | Tags, account model, delegated DNS ownership, and documented authority boundaries. |
ANS-C01 prefers repeatable implementation with validation over a manual console recipe that only works once.
| Scenario | Strong first implementation |
|---|---|
On-premises clients must resolve app.aws.internal in a private hosted zone |
Inbound Resolver endpoint, on-prem conditional forwarding, PHZ association, endpoint security, and query test. |
EC2 instances must resolve corp.example.com from on-premises DNS |
Outbound Resolver endpoint, forwarding rule, VPC association, security, and route path. |
A DNS account owns internal.example.com, app accounts own VPCs |
Cross-account PHZ association or shared DNS governance pattern. |
| Public and private clients use the same domain but need different answers | Split-view DNS with public and private hosted zones. |
| Many VPCs need common corporate DNS forwarding | Central outbound endpoint and shared Resolver rules, or governed profile/shared-resolution model. |
| DNS works in one VPC but not another | Check PHZ association, Resolver rule association, account sharing, and query source. |
| Stem clue | Eliminate first | Keep in play |
|---|---|---|
| “on-prem resolves AWS private hosted zone” | outbound-only endpoint | inbound Resolver endpoint plus conditional forwarding |
| “AWS resolves on-prem domain” | inbound-only endpoint | outbound Resolver endpoint plus forwarding rule |
| “private zone in DNS account, VPC in app account” | public hosted zone | cross-account PHZ association authorization and association |
| “delegate subdomain to another authority” | conditional forwarding only | NS delegation where authority changes |
| “same name, different internal/public answers” | one public zone only | split-view DNS |
| “query source unknown” | changing records first | test from the actual source and inspect Resolver/query logs |
| “multi-account consistency” | manual one-off associations | IaC, shared rules, profiles, or centralized automation |
When hybrid or multi-account DNS fails, use this order:
This order prevents the common mistake of editing records while the query never reaches the authoritative DNS system.
A company has a central DNS account that owns a private hosted zone named apps.internal. Application VPCs live in separate accounts. One new application VPC cannot resolve api.apps.internal, but older application VPCs can. The DNS records are correct. Which checks are strongest first?
apps.internal into a public hosted zone and publish the internal record.Answer: Verify cross-account private hosted zone association.
Why: The records work for older VPCs, so the likely failure is visibility from the new VPC. Cross-account private hosted zone association requires authorization from the zone owner and association from the VPC owner. A public hosted zone would expose the wrong namespace. Global Accelerator does not resolve DNS association, and latency records do not fix zone visibility.
For ANS-C01 DNS implementation, always name the query source, authority, visibility boundary, forwarding direction, network path, and validation evidence. Use private hosted zone association for VPC-private names, inbound Resolver endpoints for on-prem-to-AWS private queries, outbound Resolver endpoints and rules for AWS-to-on-prem queries, delegation when authority changes, and query logging when you need evidence.
Continue with 2.4 Network Automation and Configuration at Scale to make DNS and routing implementation repeatable across accounts and Regions.