Repository navigation
Enable DNSSEC stage 2: DS record at the registrar - #194
Conversation
Signing ran 53 hours (longer than the 48h apex NS TTL) and all checked RRsets validated against KSK tag 23956. The DS record was added by apply; provider 5.100.0 failed on read-back, so it was imported with ignore_changes on signing_attributes. terraform plan reports No changes. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
🟢 All clear: Claude of Duty review passedMission: Review the code. Protect the branch. Deploy the future. Tip No findings. This review found no reason to block. Nothing to do for this review.
Run 41730132250, attempt 1 for head Claude of Duty never approves a PR. A human reviewer gives the final approval. 📋 Full review record: reasons, checks, signals, finding details, model summaries, token usageReviewed snapshot
Reasons the gate failed None. No reason applies. Checks (code, no model)
Signals (context only, never block) None. Dependency changes None. Finding details
Blocking is decided by code from category and severity, never by the model. A finding in a blocking category blocks only at high or critical severity. No findings. All three passes completed. Model summaries
Token usage
|
Summary
Completes DNSSEC for operationcode.org (stage 1, zone signing, was in #193).
aws_route53domains_delegation_signer_record.operationcodeinterraform/dns_operationcode_org_security.tf, withdepends_onthe zone signing._dmarcTXT,apiA,wwwTXT,codersMX) validated against the zone KSK (tag 23956), and NXDOMAIN answers carry signed NSEC proofs.23956 13 2 658739A5FEF7929BDE0024F7AA443061AB22906C9A7AE00BD46FB4A690F54474, which matches the DS computed from the live KSK.Provider bug and workaround
Applied locally from this branch. Route53 Domains accepted the DS (operation
ADD_DNSSEC: SUCCESSFUL), but AWS provider 5.100.0 failed on read-back withempty result, so the resource was missing from state. Importing it with the 5.x ID format (domain_name,dnssec_key_id) leavessigning_attributesempty and forces a destroy/recreate of the live DS. Workaround:lifecycle { ignore_changes = [signing_attributes] }, then the import was applied and the import block removed. A KSK rotation needs a new DS record anyway, so the ignore does not hide a real change.The provider changelog for 6.70.0 changes this resource's import ID to
domain_name,flags,algorithm,public_keybecause AWS no longer returns DNSKEY flags. Upgrading to provider 6.x is a separate change:terraform-aws-modules/autoscaling~> 8.0pinsaws < 6.0.State
terraform planreportsNo changes. The DS appears at the .org registry after the registry publishes it (minutes to hours).Rollback
Remove the DS record first and wait for the DS TTL at the .org parent. Only then disable signing. Disabling signing or deleting the KSK while the DS is live breaks resolution for validating resolvers.
🤖 Generated with Claude Code