Join our Newsletter — 33% off our NHI Course
Home› Guides› Security architecture decision records (ADRs): How to write,…
Guide Security Leadership & Governance

Security architecture decision records (ADRs): How to write, approve and enforce them

PDF for newsletter subscribers · free to read online

← All guides
By NHI Mgmt Group, edited by Lalit Choda Updated 28 October 2026 12 min read
On this page

Security teams lose the reasons behind their own designs, so the same debates repeat, accepted risks outlive their owners and auditors get a diagram with no rationale. An architecture decision record (ADR) is a short, numbered document that captures one significant decision, its context, the options considered and its consequences. This guide shows how to adapt the ADR practice, as described by Michael Nygard, MADR, AWS Prescriptive Guidance and Microsoft's Azure Well-Architected Framework, for security decisions: which decisions need one, the extra fields a security ADR needs, how to approve and supersede them, and how to turn a decision into a check that runs in the pipeline. It is for security architects, platform engineers and the people who sign off risk. For the review process that often produces these decisions, see the Security Architecture Review Guide.

Key takeaways

  • Record the why, not the how. AWS guidance says an ADR should focus on why a decision was made, so later teams do not overrule it without context; implementation detail belongs in linked design documents.
  • Security ADRs need a few extra fields. Threats addressed, identities and secrets created, residual risk with a named owner, a confirmation check and a review date turn a design note into usable governance evidence.
  • Accepted records are immutable. Both AWS and Microsoft say not to edit an accepted ADR: write a new one that supersedes it and link the two, so the history survives.
  • A decision without a check decays. MADR's optional Confirmation section is where you say how compliance is verified, ideally a policy-as-code rule or test that fails the build.
  • Keep the log next to the code. Numbered Markdown files in the repository, reviewed by pull request, beat a wiki page that nobody updates.

What a security ADR is, and what it is not

Nygard's 2011 post defined the original five sections: Title, Context, Decision, Status and Consequences, each record one or two pages, numbered in sequence and never reused. The collection forms what AWS calls a decision log. A security ADR is the same artefact applied to choices where security is a driver or a consequence. It overlaps with several existing documents, which is why teams often skip it.

ArtefactAnswersLifespanHow it relates to an ADR
Security ADRWhy did we choose this option over the alternatives?Life of the system; superseded, never deletedThe record of the decision itself
Design document or solution architectureHow is it built?Updated as the design changesLinked from the ADR; Microsoft warns against ADRs becoming design guides
Threat modelWhat can go wrong and what do we do about it?Refreshed on changeInput to the ADR context; the ADR records which mitigation was chosen. See the Threat Modelling Guide
Security architecture reviewIs this design acceptable?Point in timeProduces decisions that should be captured as ADRs
Risk acceptance or exceptionWho accepts the remaining risk, until when?Time-limitedReferenced from the ADR when residual risk exceeds appetite. See the Security Exceptions and Risk Acceptance Guide
Policy or standardWhat must every system do?Reviewed annuallyAn ADR applies the standard to one system or records a justified deviation

Which security decisions need an ADR

AWS lists the categories of architecturally significant decision: structure, non-functional requirements such as security, dependencies, interfaces and construction techniques. Microsoft narrows it to choices that affect structure or key quality attributes, or that are hard to reverse. For security, write an ADR when the decision:

  • Creates or changes a trust boundary: a new external API, a cross-account or cross-tenant trust, a partner connection, a new network zone.
  • Chooses an authentication or authorisation mechanism: OIDC versus SAML, mTLS versus signed tokens, RBAC versus ABAC, where policy is enforced.
  • Creates non-human identities or secrets: a service account, workload identity federation, API keys for a third party, an AI agent's credentials.
  • Selects cryptography or key custody: algorithm, key management service, HSM versus software keys, customer-managed keys, certificate authority.
  • Handles regulated or sensitive data: storage location, tokenisation versus encryption, retention, cross-border transfer.
  • Accepts a known weakness: a legacy protocol, a missing control with compensating measures, a vendor limitation.
  • Adopts a security product or platform that other teams will depend on.

Do not write ADRs for decisions already fixed by a mandatory standard with no options. Link the standard from the system documentation instead.

Anatomy of a security ADR

Start from MADR (version 4.0.0, September 2024) or Nygard's format, then add security fields. MADR's required sections are Context and Problem Statement, Considered Options and Decision Outcome; it also offers Decision Drivers, Consequences, Confirmation and front matter for status, date, decision-makers, consulted and informed. Microsoft adds a Confidence level, which helps when a low-confidence decision is reconsidered.

FieldSourceWhat to write for security
ID and titleNygard, MADRADR-0042: Workload identity federation for CI deployments. Short noun phrase, sequential number
Status and dateNygard, AWS, MADRProposed, Accepted, Rejected, Deprecated or Superseded by ADR-NNNN
Decision-makers, consulted, informedMADRInclude the security architect and the risk owner by name or role
Context and problem statementAllBusiness need, data classification, applicable policy clauses, threat model reference
Decision driversMADRSecurity requirements stated as testable constraints, e.g. "no long-lived credentials in CI"
Considered optionsMADR, MicrosoftAt least two real options, including the ones ruled out and why
Decision outcomeAllThe chosen option in active voice
Threats addressedSecurity extensionThreat model IDs or ATT&CK techniques the decision mitigates
Identities and secretsSecurity extensionEvery NHI, credential or key created, its owner, storage and rotation
Consequences and residual riskNygard, AWSPositive, negative and neutral effects; residual risk rating; exception reference if above appetite
ConfirmationMADRThe check that proves compliance: policy rule, test, CSPM control or review
Confidence and review dateMicrosoft; extensionHigh, Medium or Low, and the date or trigger for re-review
LinksMicrosoftDesign documents, review record, related and superseded ADRs

Example: a compressed security ADR

  • ADR-0042: Use OIDC workload identity federation for CI deployments to cloud. Status: Accepted, supersedes ADR-0017. Confidence: High.
  • Context: pipelines deploy with static cloud access keys stored as CI secrets, contrary to the secrets standard. Threat: stolen CI secrets reused from outside the pipeline.
  • Options: keep static keys with 90-day rotation (ruled out: still long-lived); vault-issued dynamic credentials (viable, more moving parts); OIDC federation with repository and branch conditions (chosen).
  • Identities: one deployment role per environment; trust policy restricted to the repository and protected branch; no stored secret.
  • Consequences: removes stored keys; trust policy conditions become security-critical; forks and unprotected branches must not match.
  • Confirmation: a policy-as-code rule fails any trust policy without a subject condition; a weekly query reports any remaining access keys for CI users.

See the Policy-as-Code for Authorisation Guide for writing confirmation rules.

Lifecycle, approval and governance

AWS describes a review with a 10 to 15 minute reading period, then discussion and one of three outcomes: rework (stays Proposed with action items), reject (reason recorded) or approve (timestamp, version and stakeholders added, status Accepted). Once accepted or rejected, the record is not edited. A changed decision is a new ADR, and the old one becomes Superseded.

Decision typeAuthorApproverMust consult
Within one system, low riskEngineer or tech leadTech leadSecurity champion
New trust boundary, NHI or sensitive dataSolution architectSecurity architectIAM or NHI owner, data owner
Residual risk above appetiteSolution architectNamed risk ownerCISO delegate; record an exception
Platform or cross-organisation patternPlatform architectArchitecture or design authorityTeams that will consume it

The UK Government Secure by Design principles start with "Create responsibility for cyber security risk", asking teams to assign risk owners accountable across the service life cycle. The approver column is where that accountability becomes visible. In November 2025 DSIT and GDS also published an Architectural Decision Record Framework for government teams, which is a useful starting template in the public sector.

  • Superseding: link both ways. The new ADR says what it supersedes; the old one gets a single status change and a forward link.
  • Expiry: security ADRs with Low confidence or an attached exception get a review date. A scheduled job that lists ADRs past review date keeps them honest.
  • Brownfield: Microsoft suggests recording known past decisions retroactively. Start with the decisions behind your largest trust boundaries and longest-lived credentials.

Where identity fits

Many security ADRs are identity decisions in disguise, and they are where non-human identities quietly come into existence. A decision to integrate with a SaaS tool creates an OAuth client; a decision to use a message queue creates a service principal; a decision to add an AI agent creates a credential with delegated authority. Requiring the "Identities and secrets" field means every NHI has a recorded owner, purpose and rotation approach from day one, which is exactly what is missing when teams later try to inventory them. Link the ADR ID in the identity's tags or description so an orphaned account can be traced back to the decision that created it. See the Service Account Security Guide and the NHI Ownership Guide.

How to implement

  1. Pick a template: adopt MADR with the security fields above as your organisation's single template. Microsoft's guidance is to use one consistent template for every record.
  2. Choose storage: Nygard used doc/arch/adr-NNN.md; MADR uses docs/decisions/NNNN-title-with-dashes.md. Pick one, keep it in each system's repository, and add a central index for platform-wide decisions.
  3. Pilot with two teams for a quarter: one greenfield, one brownfield. Write ADRs for every new trust boundary and NHI, and back-fill the three most important past decisions.
  4. Wire it into existing gates: the architecture review outcome is an Accepted ADR; pull requests that change IAM policy, network rules or cryptography link an ADR ID. AWS suggests reviewers link the relevant ADR when code violates it.
  5. Add confirmation checks: for each Accepted security ADR, implement the check in CI or CSPM, starting in report-only mode before failing builds.
  6. Scale: publish the index, train security champions, and add ADR coverage to the review metrics below.
  7. Rolling back: if the process slows delivery, narrow the trigger list rather than abandon it; a rejected or superseded ADR is itself useful history.

Decision guidance

  • Lightweight versus full template: use Nygard's five sections for low-risk, single-team decisions. Use the full security template where a trust boundary, NHI or residual risk is involved.
  • Per repository versus central log: per repository keeps decisions next to the code they govern; a central log suits platform patterns and cross-team decisions. Large organisations usually need both, with the central log linking out.
  • Small organisations: one shared repository and a monthly review is enough. Approver and risk owner may be the same person, but write the name down.
  • Regulated organisations: ADRs are useful audit evidence for why controls were designed as they are. Protect the repository's history (branch protection, signed commits) so records stand up as evidence.

Detection and measurement

  • Coverage: percentage of systems in scope with at least one Accepted security ADR for each trust boundary.
  • NHI traceability: percentage of service accounts, OAuth clients and API keys tagged with an ADR ID.
  • Confirmation rate: percentage of Accepted security ADRs with an automated confirmation check.
  • Drift: confirmation check failures per month, and time to resolve or supersede.
  • Staleness: ADRs past their review date, and exceptions linked to ADRs past expiry.

Monitor the repository itself: changes to Accepted ADRs (other than status) should raise a review, because the immutability rule is what gives the log its evidential value.

Framework mapping

FrameworkReferenceHow security ADRs contribute
NIST SP 800-53 Rev. 5PL-8 Security and Privacy Architectures; SA-8 Security and Privacy Engineering Principles; SA-17 Developer Security and Privacy Architecture and DesignDocumented rationale for the architecture and how principles were applied
NIST SP 800-53 Rev. 5CM-3 Configuration Change Control; CM-4 Impact AnalysesSuperseding ADRs record significant changes and their security impact
NIST SP 800-53 Rev. 5RA-3 Risk Assessment; RA-7 Risk ResponseResidual risk and chosen response recorded per decision
NIST CSF 2.0GV.RM-04; ID.RA-06; ID.IM-01Risk response options, tracked responses, improvements from evaluations
ISO/IEC 27001:2022 Annex A8.27 Secure system architecture and engineering principles; 8.32 Change managementEvidence that principles were applied and changes controlled
UK Secure by DesignPrinciple 1 Create responsibility for cyber security risk; Principle 10 Make changes securelyNamed risk owners and recorded change decisions

Common failure patterns

  • Only the chosen option is recorded: without the ruled-out options, a later team re-proposes the rejected design. Microsoft explicitly asks for options ruled out.
  • Editing accepted records: rewriting history removes the evidence of what was decided and when. Supersede instead.
  • ADRs as design documents: ten-page records nobody reads. Keep to one or two pages, as Nygard advised, and link the detail.
  • Residual risk with no owner: "accepted risk" with no named approver or expiry. Link a formal exception.
  • No confirmation: the decision says "no long-lived keys" while the estate still has them. Without a check, the ADR is aspiration.
  • Undocumented NHI decisions: integrations approved informally leave credentials no one can explain years later, the pattern behind many token-theft incidents.

Practitioner checklist

  • Adopt one template: MADR plus threats addressed, identities and secrets, residual risk owner, confirmation and review date.
  • Publish a trigger list of security decisions that require an ADR.
  • Store ADRs as numbered Markdown in each repository, with a central index.
  • Define approvers by decision type, with named risk owners for residual risk.
  • Make Accepted records immutable and supersede with two-way links.
  • Tag every new NHI with the ADR ID that created it.
  • Implement an automated confirmation check for each Accepted security ADR.
  • Run a monthly job that lists ADRs past review date and exceptions past expiry.
  • Back-fill ADRs for your largest trust boundaries and longest-lived credentials.

Standards and references

Related NHI Mgmt Group resources: Security Architecture Review Guide · Threat Modelling Guide · Security Exceptions and Risk Acceptance Guide · Secure Software Development Lifecycle (SSDLC) Guide

PDF for subscribers

Take this guide with you

Every section, table and checklist in one PDF, with links to the sources and related guides. Subscribe to our weekly NHI & AI Identity Journal and we’ll email you a download link.

Free weekly newsletter

Subscribe to the NHI & AI Identity Journal

The latest on NHI and Agentic AI security – articles, research, breaches, news and events every week.

Bonus 33% off our NHI Course when you subscribe.

NHIMG Editorial Note
Researched and written by the NHI Mgmt Group editorial team using AI tools, under the editorial direction of Lalit Choda. Facts are drawn from the sources listed on this page and checked by our automated quality process. Last updated 28 October 2026. Spotted an error? Use our contact page.
NHI Mgmt Group, the independent authority on Non-Human Identity, IAM and Agentic AI security. nhimg.org

PDF Downloads for Newsletter Subscribers

Get the guide

Enter your details and we’ll email you a download link.

The full guide is free to read online. The PDF is a thank you for subscribing.

Fill in all fields marked * and tick the PDF box to continue.