Security teams should insert policy checks after the plan phase and before changes are applied, then retain the existing CI/CD workflow. This approach preserves developer velocity while adding cost, security, compliance, and audit controls. The key is to centralise review, keep evidence from every change, and avoid forcing teams to migrate pipelines just to improve governance.
Why This Matters for Security Teams
Governance fails when it is bolted onto infrastructure delivery as a separate approval lane. IaC pipelines are designed to move quickly, but unmanaged changes can introduce over-privileged roles, exposed secrets, and drift that never appears in a ticket. NHI Management Group’s research on the State of Non-Human Identity Security shows how often weak visibility and over-privilege combine into real exposure, while NIST’s Cybersecurity Framework 2.0 emphasizes integrating risk management into operational processes, not separating it from them.
The practical challenge is that security teams need control points that preserve the developer workflow, not replace it. That usually means policy checks on the planned change, evidence capture for what was approved, and automated gates before apply. If those controls are added too late, teams either bypass them or ship without review. In practice, many security teams discover IaC governance gaps only after a misconfigured plan has already reached production, rather than through intentional control design.
How It Works in Practice
The safest pattern is to treat the IaC pipeline as the system of record for change governance. Security controls should evaluate the plan artifact, not just the source code, because the plan reflects the actual resource deltas. This is where policy-as-code tools, approval workflows, and evidence retention belong. The goal is not to slow delivery, but to make each change inspectable and repeatable.
A common implementation path looks like this: developers commit Terraform, CloudFormation, or similar code; CI generates a plan; policy checks assess the plan for identity, network, encryption, logging, and cost controls; exceptions are routed to a central reviewer; and only then can apply proceed. This preserves the existing delivery path while adding governance at a consistent point. For identity-heavy infrastructure, the same review should check role scope, secret injection, and whether new workloads create Top 10 NHI Issues such as credential sprawl or excessive standing access.
- Use plan-stage policy checks to stop unsafe resource creation before apply.
- Record who approved the change, what policy failed or passed, and which exceptions were granted.
- Centralise guardrails so every team uses the same control logic instead of inventing local exceptions.
- Scan for secrets, hard-coded tokens, and exposed identity bindings as part of the same pipeline.
This model aligns well with the NIST Cybersecurity Framework 2.0 because it reinforces govern, protect, and detect within the delivery process itself, rather than layering controls after deployment. It also complements NHIMG guidance on the Ultimate Guide to NHIs, where auditability depends on knowing what changed, who authorised it, and what identities were touched. These controls tend to break down when multiple pipeline variants exist across teams because policy drift quickly creates inconsistent approval standards.
Common Variations and Edge Cases
Tighter governance often increases pipeline latency and exception handling overhead, requiring organisations to balance release speed against assurance. That tradeoff is acceptable only when the controls are predictable, automated, and narrowly scoped to material risk.
Some environments cannot enforce a hard gate on every change. Legacy pipelines, emergency production fixes, and multi-account cloud builds may require a fast-track path with post-change review, but current guidance suggests those exceptions should be rare and logged. Best practice is evolving toward risk-based controls: low-risk changes get automated approval, while identity changes, secret exposure, and privileged network modifications require manual review. That approach is especially important where teams manage CI/CD secrets at scale, since NHIMG has documented how supply chain abuse and secret leakage can spread through trusted build systems in the CI/CD pipeline exploitation case study and the GitHub Action tj-actions Supply Chain Attack.
The main edge case is organisations that try to govern at the repository level but leave deploy-time permissions untouched. That creates a false sense of safety because the code looks reviewed even though the runtime identity can still make risky changes. Governance is strongest when it follows the identity and the deployment event, not just the source review.
Standards & Framework Alignment
This section maps relevant standards and security frameworks to the operational risks and controls described in this guidance.
OWASP Non-Human Identity Top 10, OWASP Agentic AI Top 10 and CSA MAESTRO address the attack and risk surface, while NIST CSF 2.0 and NIST AI RMF set the governance and control requirements practitioners need to meet.
| Framework | Control / Reference | Relevance |
|---|---|---|
| OWASP Non-Human Identity Top 10 | NHI-03 | Covers NHI credential lifecycle and rotation in IaC pipelines. |
| OWASP Agentic AI Top 10 | A2 | Relevant where automation makes deployment decisions from pipeline context. |
| CSA MAESTRO | M1 | Addresses governance for automated cloud and agentic operations. |
| NIST CSF 2.0 | GV.OC-01 | Governance and operational context support pipeline control design. |
| NIST AI RMF | GOVERN | Useful for setting accountability around automated decision points. |
Review pipeline-issued secrets and rotate any credential that outlives its deployment purpose.
Related resources from NHI Mgmt Group
- How should security teams prevent source code leaks without disrupting engineering workflows?
- How should security teams add application security testing into Azure DevOps CI/CD pipelines without slowing delivery?
- How should security teams test AI-generated code in fast-moving delivery pipelines without drowning in false positives?
- How should security teams bring hidden privileged identities into PAM workflows without disrupting existing controls?