checkov
Infrastructure as code static analysis
What it is and what it does
Checkov is a static analysis and software composition analysis (SCA) tool designed to catch security and compliance misconfigurations in infrastructure-as-code before deployment. It scans Terraform, CloudFormation, Kubernetes manifests, Dockerfiles, Helm charts, and several other IaC formats using graph-based analysis to understand context and relationships between resources. The tool also performs SCA scanning to detect known vulnerabilities (CVEs) in container images and open-source packages.
You run it as a command-line tool pointing to a directory or file, and it reports failures and passes against built-in policies covering AWS, Azure, and Google Cloud security best practices. Results can be output in multiple formats (CLI, JSON, JUnit XML, SARIF, CycloneDX) for integration into CI/CD pipelines or security dashboards. It supports policy suppression, variable evaluation, and secret detection using regex and entropy analysis.
Use it for:
- Scan Terraform configurations in CI/CD to block deployments with security misconfigurations before they reach cloud infrastructure.
- Validate Kubernetes manifests and Helm charts for compliance with security policies (e.g., pod security standards, RBAC rules).
- Detect hardcoded AWS credentials and secrets in infrastructure code and Lambda environment variables.
- Perform SCA scanning of container images and open-source dependencies to identify known CVEs.
- Generate compliance reports (SARIF, JUnit XML, CycloneDX) for security audits and regulatory requirements.
- Enforce organization-specific policies using custom YAML or Python policy definitions across all IaC files.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Checkov is a static code analysis tool that scans infrastructure-as-code files (Terraform, CloudFormation, Kubernetes, Dockerfile, and others) and container images to detect security misconfigurations and software vulnerabilities.
Yes. Checkov is actively maintained, widely adopted (top 5000 PyPI packages), has no known vulnerabilities, and low install friction. It is essential for teams managing infrastructure-as-code who want to catch security and compliance issues early. The permissive Apache 2.0 license and broad IaC format support make it suitable for most environments. Install it if you use Terraform, CloudFormation, Kubernetes, or Dockerfile in your infrastructure pipeline.
Install
checkov on PyPI
pip
pip install checkovuv
uv add checkovpoetry
poetry add checkovInstalling checkov
Before you install
Low install friction with a pure-wheel distribution. Actively maintained with a release just 1 day old and 8936 repository stars. Requires Python 3.9–3.12; some environments (e.g., Debian 12) may need a virtual environment for installation.
License in practice
Licensed under Apache License 2.0 (permissive), allowing free use, modification, and distribution with minimal restrictions—suitable for both open-source and commercial projects.
Quickstart
pip install checkov
checkov --directory /path/to/iac/code
# or scan a specific file:
checkov --file /path/to/terraform.tf
Requires Python >= 3.9 and <= 3.12; Terraform >= 0.12 for Terraform scanning.
Verify before relying
- Whether the 46 runtime dependencies introduce supply-chain risk or maintenance burden in your environment.
- Performance characteristics when scanning large IaC repositories or many files in parallel.
Package facts
| License | Apache License 2.0 (permissive) |
| Python support | supports the current Python release (>=3.9) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 46 — bc-jsonpath-ng, pycep-parser, tabulate, colorama, termcolor, junit-xml, dpath, pyyaml, boto3, gitpython, jmespath, tqdm, packaging, cloudsplaining, networkx, dockerfile-parse, docker, configargparse, argcomplete, typing-extensions, importlib-metadata, cachetools, cyclonedx-python-lib, packageurl-python, click, aiohttp, aiodns, aiomultiprocess, schema, jsonschema |
| Maintenance | actively maintained — 1 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 21,179,540/month — #1,008 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: checkov-3.3.11-py3-none-any.whl
Tags
More Build Tools packages
Provides reusable utilities for Python…
permissive · top 100 on PyPI
tqdmWraps any iterable to display a real-time…
copyleft · top 100 on PyPI
pippip is the standard installer for Python…
permissive · top 100 on PyPI
hatchlingHatchling is a standards-compliant Python build…
permissive · top 100 on PyPI
grpcio-toolsGenerates Python gRPC service stubs and message…
permissive · top 1,000 on PyPI
pre-commitpre-commit is a framework for installing and…
permissive · top 1,000 on PyPI
bridgecrewWraps checkov to provide infrastructure-as-code…
permissive · top 15,000 on PyPI
terraform-complianceterraform-compliance is a BDD-based test…
permissive · top 15,000 on PyPI
cycodeCycode is a command-line security scanner that…
permissive · top 15,000 on PyPI
guarddogGuardDog is a CLI tool that scans PyPI, npm,…
permissive · top 15,000 on PyPI
kingfisher-binKingfisher is a command-line secret scanner…
permissive · top 15,000 on PyPI
cloudsec-auditAudits AWS cloud security posture by checking…
permissive · top 15,000 on PyPI
flawfinderFlawfinder scans C/C++ source code to identify…
copyleft · top 15,000 on PyPI
awslabs.aws-iac-mcp-serverProvides an MCP server that validates…
permissive · top 15,000 on PyPI
skylosSkylos is a local-first static analysis CLI…
permissive · top 15,000 on PyPI
flux-localflux-local provides CLI tools and a Python…
permissive · top 15,000 on PyPI