# Iac Guard

> 对 Terraform、Kubernetes 与通用 YAML 基础设施代码做安全与最佳实践审查，识别硬编码密钥、特权容器、缺失资源限制、开放安全组、未加密存储、特权提权等风险，并给出分级修复建议与漂移检测思路。当用户说"审查 terraform"、"检查 k8s yaml"、"iac 安全"、"review IaC"、"iac-guard"、"扫描基础设施代码"时使用。

- Skill: `whaojie797-design/iac-guard` (Agent Skill, multi-file: 3 files)
- Install (CLI): `npx skillmds@latest add whaojie797-design/iac-guard`
- Raw SKILL.md: https://api.skillmd.com/api/skills/whaojie797-design/iac-guard/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: DevOps & Infra
- Author: whaojie797-design (https://skillmd.com/u/whaojie797-design)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/whaojie797-design/iac-guard

---


# IaC Guard

## Overview
面向 DevOps 与平台工程的基础设施即代码（IaC）安全审查工具。对 Terraform（`.tf` / `.tfvars`）与 Kubernetes / 通用 YAML（`.yaml` / `.yml`）做行级启发式扫描，按严重度输出风险与修复建议，并补充"漂移检测"的落地思路。

## When to Use
- 用户说："审查 terraform"、"检查 k8s yaml"、"iac 安全"、"review IaC"、"iac-guard"、"扫描基础设施代码"。
- 提交/合并 IaC 清单前的预检。
- 对既有仓库做安全巡检或合规基线核对。

## How It Works
内置脚本 `scripts/scan_iac.py`（纯 Python 标准库，无第三方依赖）：
- 递归扫描目标目录下所有 `.tf` / `.tfvars` / `.yaml` / `.yml`（自动跳过 `.git`、`node_modules`、`vendor`、`.terraform`）。
- 行级启发式（正则 + 缩进感知）检测风险，详见 `references/iac-rules.md`。
- 输出 `文件:行 [等级] 规则` + 问题描述 + 修复建议；支持 `--json` 机器可读输出。
- 退出码：`0`=无 High；`1`=存在 High；`2`=用法/IO 错误。便于接入 CI 门禁。

## Procedure
1. 确认用户要审查的目标目录或文件集合；若给定单文件，先放到临时目录再整体扫描。
2. 运行扫描器：
   - 文本报告：`python scripts/scan_iac.py <dir>`
   - CI/集成：`python scripts/scan_iac.py <dir> --json`
3. 按严重度汇总（High 优先，其次 Medium），不要只罗列原始行号——给出"风险 → 影响 → 修复"三段式结论。
4. 对每条 High/Medium 给出可操作的修复建议（引用 `references/iac-rules.md` 中的对应规则）。
5. 提示用户运行"漂移检测"（见下），把"代码态"与"运行态"的差异纳入闭环。
6. 明确说明本工具是启发式预检，不能替代 OPA/Kyverno/Checkov/Trivy 等策略引擎的完整覆盖。

## Drift Detection（漂移检测）
扫描器只审查"代码态"。已部署资源可能因手动变更而偏离声明，需另做比对：
- **Terraform**：`terraform plan -detailed-exitcode`（0=无变更，1=有变更，2=错误），接入定时 CI。
- **Kubernetes**：`kubectl diff -f <manifest>` 或 `kubectl get -o jsonpath` 关键字段断言。
- **云厂商**：AWS Config / Azure Policy / GCP Asset Inventory 等托管合规检测。
扫描器不自动执行上述命令（需凭据与网络），请由用户在目标环境自行运行。

## Bundled Resources
- `scripts/scan_iac.py` — 启发式扫描器（标准库，可直接运行）。
- `references/iac-rules.md` — 规则目录：名称、匹配模式、严重度、修复建议，以及漂移检测与手动复核项。

## Limitations
- 行级启发式，存在误报（如合法的 `0.0.0.0/0` 用于公开 CDN）与漏报（如变量拼接生成的密钥）。
- 不解析完整 YAML/ Terraform AST，不评估跨文件引用与模块上下文。
- 不连接云 API、不执行 `plan`/`diff`，不解决实际凭据轮换。
- 结果需人工复核；高危项建议再用策略引擎二次确认。

