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.
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.
Product surface
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.
Configuration checks
Built-in policies evaluate recognized resources and attributes for common misconfigurations.
Relationship checks
Graph-based policies can evaluate supported connections between resources rather than treating every object in isolation.
Custom policy
Python and YAML policy mechanisms let teams express additional requirements within the supported analysis model.
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.
Workflow placement
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.
Policy design
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.
Exception control
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.
Practical example
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.
Practical boundaries
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.
Leadership questions
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?
Sources cited
Primary guidance informing this review
Next field 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.


