用途
该技能面向安全工程师,用于使用 tfsec(现已集成到 Trivy)扫描 Terraform 代码中的安全配置错误。它专注于对 Terraform(HCL)代码进行安全扫描;如果需要进行更广泛的 IaC 扫描,可考虑使用 Checkov。
主要能力
- 对 Terraform 代码进行深度 HCL 分析,支持 Terraform 模块、变量等。
- 支持按最低严重级别过滤结果,例如仅显示 HIGH 及以上。
- 支持排除特定检查项,例如排除 aws-s3-enable-versioning。
- 支持包含已通过的检查项。
- 可通过 Trivy 以 config 模式运行,并按严重级别过滤。
- 输出 JSON 格式结果,便于解析和展示。
使用方式
前置条件
需要安装 tfsec:
- brew install tfsec
- 或 go install github.com/aquasecurity/tfsec/cmd/tfsec@latest
也可使用 Trivy:
- trivy config --format json .
验证安装:
- tfsec --version
操作步骤
- 确定目标:确定要扫描的 Terraform 目录。
- 运行扫描:
- tfsec <terraform-dir> --format json > tfsec-results.json
- 设置最低严重级别:tfsec . --minimum-severity HIGH --format json
- 排除特定检查:tfsec . --exclude aws-s3-enable-versioning --format json
- 包含已通过的检查:tfsec . --include-passed --format json
- 使用 Trivy:trivy config --format json --severity HIGH,CRITICAL <terraform-dir>
- 解析结果:读取 JSON 输出并按表格呈现发现项,字段包括序号、严重级别、规则 ID、资源、文件:行号、描述、解决方案。
- 汇总:提供按严重级别(CRITICAL/HIGH/MEDIUM/LOW)统计的发现总数、每个发现项所需的具体 HCL 代码修改,以及每个规则对应的 tfsec 文档链接。
适用场景
- 专门针对 Terraform(HCL)代码的安全问题扫描。
- 在 CI 或本地对 Terraform 目录进行安全审查。
- 需要按严重级别筛选或排除特定规则的安全检查。
常见规则(按提供商)
- AWS:S3 加密、安全组规则、RDS 加密、CloudTrail 日志记录。
- Azure:存储加密、NSG 规则、Key Vault 设置。
- GCP:IAM 绑定、GKE 设置、Cloud SQL 加密。
- 通用:敏感变量、HCL 中的硬编码密钥。
限制
该技能聚焦于 Terraform 代码;若需更广泛的 IaC 扫描,资料建议考虑 Checkov。其他限制暂未提供。