The pipeline was green, but the breach came anyway. The problem wasn’t the code. It was the lack of discipline in how it was built, reviewed, and deployed.
Infrastructure as Code (IaC) changes how teams manage systems. Every config, every resource, every network rule lives as code. That means version control, peer review, and automated deploys are possible. But it also means that the separation of duties is no longer optional—it is critical.
Separation of duties in IaC means no single person controls the full chain from design to deployment. One engineer writes the code. Another reviews it. A separate system or role applies it to production. This reduces risk from human error and insider threats. It also enforces compliance in regulated environments where audits are strict.
Without separation of duties, a simple commit to a Terraform file or Kubernetes manifest can push a change straight into production. Bad actors know this. Accidents exploit it. Every IaC repository should have permissions mapped to roles, automated checks against misconfigurations, and distinct approvals for each stage.