Skip to article
TDG DevSecOps Field Review · Part 7Cloud & Platform Engineering6 min read

Infrastructure-as-Code Security: Where Checkov Fits

A practical review of where Checkov adds value in infrastructure delivery, how source and plan scans support release decisions, and why policy tuning, exceptions, and runtime evidence still matter.

October 19, 2026
Source code displayed on a computer screen, illustrating configuration review before deployment. Photo by ANOOF C on Unsplash.
Cloud & Platform Engineering · The Diallo Group

TDG publication series · Part 7 of 10

TDG DevSecOps Field Review

A practical examination of the products, platforms, and operating patterns shaping secure cloud delivery.

Explore the complete series →
  1. Part 1Introducing the TDG DevSecOps PracticePublished
  2. Part 2DevSecOps Outcomes for Cloud EnterprisesPublished
  3. Part 3GitHub Advanced Security: A Practical Code-Security ReviewPublished
  4. Part 4Microsoft Defender for CloudPublished
  5. Part 5Google Cloud Software Supply ChainPublished
  6. Part 6AWS Inspector and Security Hub: From Vulnerability Findings to Risk PrioritizationPublished
  7. Part 7Infrastructure-as-Code Security: Where Checkov FitsYou are here
  8. Part 8SBOMs: Useful Security Evidence or Another Compliance Artifact?Upcoming
  9. Part 9Secrets Management Across AWS, Azure, and Google CloudUpcoming
  10. Part 10AI-Assisted DevSecOps: Practical Capability or Emerging Hype?Upcoming

Key takeaways

What matters most.

  1. 1

    Scan infrastructure source early and assess the deployment plan against the intended environment before release.

  2. 2

    Treat policy selection, exit behavior, exclusions, and suppressions as governed parts of the security control.

  3. 3

    Retain evidence tied to the reviewed change and verify live configuration through complementary runtime controls.

A pull request changes a storage module. The deployment succeeds, the service stays available, and a configuration mistake reaches production. Infrastructure-as-code scanning is useful precisely because it can surface some of these mistakes while the change is still inexpensive to correct. Its value depends on what was scanned, which policies were applied, and how the result changes the release decision.

Make configuration evidence part of the change

Checkov is a static analysis tool for infrastructure as code. It examines supported configuration formats for policy violations before those resources are deployed.

The important decision is whether the proposed infrastructure satisfies the organization’s requirements for its intended environment. A scanner contributes evidence to that decision. The service owner remains responsible for the application context, the platform team for the delivery path, and the security team for clear, supportable policy.

A passing scan is evidence about a particular input and policy set. Its meaning ends where that assessment boundary ends.TDG perspective

For a federal delivery team, this distinction helps connect technical checks to the secure development practices described in NIST SP 800-218. A tool report can support the process, but it cannot establish that the entire system has met its security requirements or received an authorization decision.

Understand what Checkov actually examines

The project supports several infrastructure formats, including Terraform, CloudFormation, Kubernetes manifests, and Helm. Teams should verify the runner and resource support needed by their repositories.

01

Configuration checks

Built-in policies evaluate recognized resources and attributes for common misconfigurations.

02

Relationship checks

Graph-based policies can evaluate supported connections between resources rather than treating every object in isolation.

03

Custom policy

Python and YAML policy mechanisms let teams express additional requirements within the supported analysis model.

04

Pipeline integration

Command-line execution makes scanning available in developer workflows and CI jobs. The pipeline determines whether a result blocks delivery.

Treat these as product capabilities, then validate them with representative fixtures from the real codebase. A supported format does not guarantee that every provider feature, resource relationship, or organization-specific requirement is assessed.

Scan source early and the deployment plan before approval

A source scan gives authors feedback while editing. A Terraform plan scan can add evaluated values and dependency context that are not fully visible in the source alone.

Stage Purpose Evidence to retain
Developer change Catch policy violations close to the author. Repository commit, scan scope, and policy results.
Pull request Give reviewers a consistent assessment of the proposed change. Scanner version, configuration, selected checks, and disposition.
Deployment plan Assess the generated plan for the intended environment. Protected plan artifact or digest, input context, scan result, and approval.
After deployment Compare actual configuration and exposure with the intended state. Inventory, posture or drift evidence, and owned follow-up.

Checkov documents plan enrichment using source files and a deep-analysis option for additional graph context. Source and plan scans remain complementary: some source-only constructs are absent from plans. Protect plan files because they may contain dynamically supplied sensitive values.

Bind the final review to the plan that will be applied. If inputs change or a new plan is generated after the scan, reassess it under the release policy. A report for an earlier commit does not support a later deployment.

Make a small, credible blocking set work first

A pipeline that fails every legacy repository on its first run usually produces an argument about the gate rather than a reliable control.

Begin with a representative inventory and observation period. Identify the violations that materially affect the environment, test the detection logic, and assign remediation ownership. Then enforce a reviewed set while giving the remaining findings an explicit treatment plan. This rollout sequence is TDG’s implementation recommendation, not a Checkov requirement.

Policy decision Practical implementation
What is mandatory? Name the control objective, affected resources, environment, and expected secure configuration.
What blocks delivery? Select tested checks with clear remediation and a defined exception process.
What is advisory? Retain visible findings with an owner and planned disposition.
Who changes the policy? Review scanner settings and policy changes with the same care as pipeline code.

Checkov’s hard- and soft-fail options control exit behavior. A successful CI job may therefore coexist with failed policies. Keep the finding report and the gate result visible as separate evidence. Test configuration combinations before assuming that a nonzero finding count will stop a release.

A suppression needs a reason, an owner, and an end

Checkov supports resource-level suppressions and run-level check selection or skipping. These mechanisms are useful for valid exceptions and can also conceal an unresolved condition.

Require a recorded decision for each exception: the affected resource, policy identifier, rationale, approver, compensating control, expiry, and reassessment trigger. A nearby code annotation helps a reviewer find context, but approval and expiration need an actual workflow. Do not assume that writing an expiry date in a comment makes the scanner enforce it.

Review changes to skip lists, excluded directories, scanner configuration, and failure settings. A broad exclusion can affect many resources at once. Keep exception reviews separate from ordinary remediation so that a quiet dashboard cannot be mistaken for a corrected configuration.

Test the gate against the failure you intend to prevent

Consider a team releasing a Terraform module that manages object storage. The organization requires an approved access boundary and encryption configuration for the production use case.

Create one fixture that meets the requirements and one that violates each required condition. Run both through the exact CI command and configuration used for releases. Confirm that the passing case succeeds, the violating case produces the expected finding, and the release job fails when the selected blocking policy fails.

Next, add an exception fixture and a scan-error fixture. Verify that the approved exception remains visible in the evidence and that an unreadable plan or missing scan output does not silently authorize deployment. Finally, change an input between planning and approval to confirm that stale evidence cannot be reused. This exercise tests the delivery control, not just the scanner executable.

Keep runtime assurance beside the static gate

An infrastructure scan evaluates the supplied input. It does not by itself verify the live environment’s complete identity relationships, actual network reachability, software vulnerability state, or subsequent manual changes.

Use cloud posture assessment, runtime inventory, change monitoring, and incident response alongside the predeployment check. Checkov’s documentation distinguishes its static analysis from additional runtime and drift capabilities available through its platform integration. Validate those integrations independently instead of assuming the local CLI supplies them.

Measure whether the control prevents repeat misconfigurations, reduces remediation time, and preserves delivery reliability. Track unscanned paths, stale exceptions, bypasses, policy regressions, and time to ownership. Scanning more files is useful only if the relevant deployment paths and decisions are covered.

Questions to answer before making the scan mandatory

The operating answers should be as explicit as the technical checks.

  • Question 01Which repositories, formats, modules, and deployment paths are within scope?
  • Question 02Can reviewers connect the result to the exact commit, policy version, and deployment plan?
  • Question 03Which failures block a release, and who owns their remediation?
  • Question 04Who approves suppressions, and how are expiry and reassessment enforced?
  • Question 05How does the pipeline behave when scanning fails or evidence is missing?
  • Question 06Which controls verify that the live environment still matches the intended configuration?
Primary guidance informing this review

SBOMs: Useful Security Evidence or Another Compliance Artifact?

The next installment examines how software inventories support vulnerability response, supplier decisions, and release evidence, and what an SBOM cannot establish on its own.

Coming next in the series

SBOMs: Useful Security Evidence or Another Compliance Artifact?

An assessment of when software bills of materials improve decisions and when they become passive compliance output.

Follow the series

Receive the next DevSecOps Field Review.

Future reviews will examine cloud products, platform patterns, implementation findings, tradeoffs, and operating fit.

DevSecOps Field Review

Follow the DevSecOps Field Review.

Receive practical product reviews, implementation findings, and cloud delivery perspectives when they are published.

Start a conversation

Working through a similar challenge?

Share the environment, the problem, and where additional clarity would be useful.

Start a conversation →