accuknox/iac-scan-action
GitHub: accuknox/iac-scan-action
Accuknox IaC扫描动作是一个GitHub Action,用于自动化扫描基础设施代码的安全问题并集成到Accuknox控制台进行集中管理。
Stars: 19 | Forks: 3
# 使用 AccuKnox GitHub Action 自动化基础设施即代码安全检查
**AccuKnox IaC Scan GitHub Action** 使开发者和 DevSecOps 团队能够对基础设施即代码(IaC)文件(如 Terraform 和 Kubernetes 清单)执行自动化安全扫描。它无缝地将扫描结果上传到 AccuKnox 控制台,帮助团队识别错误配置、实施合规性,并在开发生命周期中左移安全。
确保您的基础设施代码安全、合规且无风险错误配置 — **在它进入生产环境之前**。
## 🎯 核心功能
- ✅ **IaC 错误配置检测** – 扫描 Terraform 和 Kubernetes 文件的安全风险和合规性违规。
- 🔒 **安全左移** – 将安全检查直接集成到您的 CI/CD 管道中,以便早期发现问题。
- 📥 **与 AccuKnox 控制台无缝集成** – 自动将发现结果发送到 AccuKnox 仪表板,以便集中查看和分类处理。
- ⚙️ **灵活配置** – 支持选择性扫描目录、框架(Terraform / Kubernetes)和基线比较。
- 🚦 **违规时构建失败** – 选择硬失败或软失败模式,以符合您的 DevOps 策略。
## ⚠️ 前置条件
使用此 GitHub Action 前,请确保以下条件已满足:
- 🔐 **可访问 AccuKnox 控制台** – 登录到您的 AccuKnox 租户。
- 🗝️ **API 令牌** – 从 AccuKnox 控制台获取(参见“令牌生成”)。
- 🏷️ **在控制台中已创建标签** – 用于标记上传的扫描报告。
- 🔑 **已配置 GitHub 机密** – 在您仓库的 GitHub 机密中安全存储所需凭证。
## 📌 安装与使用
### 步骤 1:获取 AccuKnox 凭证
1. 登录到您的 AccuKnox 控制台。
2. 导航至 **设置 → 令牌**。
3. 点击 **创建令牌** 并保存以下值:
- `Accuknox_token`
4. 在 **仪表板 → 标签** 下创建一个标签,用于标记扫描结果。
### 步骤 2:配置 GitHub 机密
1. 前往您的 GitHub 仓库:**设置 → 机密和变量 → 操作 → 新建仓库机密**。
2. 添加以下机密:
| 机密名称 | 描述 |
|------------|-------------|
| `ACCUKNOX_TOKEN` | 用于身份验证的 AccuKnox API 令牌 |
| `ACCUKNOX_ENDPOINT` | AccuKnox API URL(例如,`cspm.demo.accuknox.com`) |
| `ACCUKNOX_LABEL` | 用于标记和分组扫描结果的标签 |
这些机密是验证扫描并将结果发送到您的 AccuKnox SaaS 仪表板所必需的。
### 步骤 3:定义您的 GitHub 工作流
创建一个工作流文件(例如,`.github/workflows/iac-scan.yml`)并添加以下配置:
```
name: AccuKnox IaC Scan Workflow
on:
push:
branches:
- main
pull_request:
branches:
- main
jobs:
tests:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v6
- name: Run IaC scan
uses: accuknox/iac-scan-action@latest
with:
directory: "." # Optional: Directory to scan
compact: true # Optional: Minimise output
quiet: true # Optional: Show only failed checks
output_format: json # Optional: Format of output
output_file_path: "./results.json" # Optional: Output file path
soft_fail: true # Optional: Will continue after found vulnerability
accuknox_token: ${{ secrets.ACCUKNOX_TOKEN }}
accuknox_endpoint: ${{ secrets.ACCUKNOX_ENDPOINT }}
accuknox_label: ${{ secrets.ACCUKNOX_LABEL }}
```
## ⚙️ 配置选项(输入参数)
| 输入参数 | 描述 | 可选/必填 | 默认值 |
|-----------------|------------|-----------------|---------|
| `file` | 指定要扫描的单个文件(例如,`.tf`)。不能与目录一起使用。 | 可选 | — |
| `directory` | 包含要扫描的 IaC 文件的目录。 | 可选 | `.`(当前目录) |
| `compact` | 最小化输出(例如,隐藏代码块)。 | 可选 | — |
| `quiet` | 仅在输出中显示失败的检查。 | 可选 | `false` |
| `soft_fail` | 防止 CI 因检查失败而中断。 | 可选 | `false` |
| `framework` | 将扫描限制在特定框架:terraform、kubernetes 等(小写)。 | 可选 | `all` |
| `skip_framework` | 跳过对特定框架的扫描。 | 可选 | — |
| `accuknox_token` | 用于与 AccuKnox SaaS 进行身份验证的 API 令牌。 | 必填 | — |
| `accuknox_endpoint` | 用于推送结果的 AccuKnox 控制台 URL。 | 可选 | `cspm.demo.accuknox.com` |
| `accuknox_label` | 在 AccuKnox SaaS 中用于组织和标识扫描结果的标签。 | 必填 | — |
| `output_format` | 输出格式。支持:json、cli 等。 | 可选 | `cli` |
| `output_file_path` | 用于写入输出结果的文件路径。 | 可选 | — |
| `baseline` | 用于抑制已知发现结果的基线文件路径。 | 可选 | `baseline` |
## 🔍 工作原理
1. **开发者推送代码** – 推送或拉取请求触发 GitHub Action。
2. **运行 IaC 扫描器** – 扫描 Terraform 或 Kubernetes 文件的:
- 错误配置
- 策略违规
- 合规性问题(例如,NIST、CIS)
3. **扫描结果上传至 AccuKnox 控制台** – 使用提供的 `token` 和 `label`。
4. **审查发现** – 在 AccuKnox 控制台中可用:**仪表板 → 问题 → 发现 → 按 IaC 发现筛选**。
5. **可选:使管道失败** – 如果 `soft_fail: false`,管道将在违规时中断,从而强制实施 CI/CD 安全性。
## 🛠️ 故障排除与最佳实践
| 问题 | 原因 | 解决方案 |
|-------|-------|---------|
| “缺少必需的输入:token” | 未设置 GitHub 机密 | 确保在 设置 → 机密 中添加了 `ACCUKNOX_TOKEN` |
| “无法连接到端点” | API URL 不正确或存在网络问题 | 检查端点是否正确且可访问 |
| AccuKnox 控制台中无扫描结果 | 缺少标签或凭证无效 | 验证标签和令牌值 |
| 即使发现微小问题,工作流也会失败 | 未设置 `soft_fail` | 如果您希望即使存在发现结果也让构建继续,请设置 `soft_fail: true` |
| 空扫描报告 | 使用了错误的目录或框架 | 检查目录和框架输入是否正确设置,并指向有效的 IaC 文件 |
## 📖 支持与文档
- 📚 **阅读更多:** [AccuKnox 文档](https://www.accuknox.com/docs)
- 📧 **联系支持:** support@accuknox.com
## 🏁 结论
AccuKnox IaC Scan GitHub Action 通过为 Terraform 和 Kubernetes 配置提供自动化安全扫描,增强了您的 CI/CD 管道。尽早识别错误配置,强制执行策略控制,并为您的基础设施代码保持持续合规。
**🔐 与 AccuKnox 一起左移安全 – 从代码到云,守护您的基础设施! ☁️🛡️**
标签:AccuKnox, Chrome Headless, CI/CD安全, DevSecOps, GitHub Actions, IaC扫描, Kubernetes安全, Llama, Terraform安全, 上游代理, 代码安全分析, 基础设施即代码安全, 子域名突变, 安全左移, 安全扫描工具, 左移安全, 开发安全运维, 持续部署安全, 持续集成安全, 自动化安全检测, 自动笔记, 误配置检测