SuperAPI AI 工具集

iac-security

安全与审计

查看项目

更新于 10-15 14:55

技能介绍

用途

iac-security 是一个面向 Infrastructure as Code(基础设施即代码)的安全扫描技能,核心原则是:安全问题在代码阶段修复比在生产环境修复成本更低。它用于在基础设施部署之前,发现 Terraform、Kubernetes、CloudFormation、Azure ARM 等配置中的错误配置、安全风险与合规问题。

支持的 IaC 格式

  • Terraform:.tf、.tf.json、.tfvars
  • Terraform Plan:JSON 计划输出(terraform show -json)
  • Kubernetes:包含 apiVersion + kind 的 .yaml / .yml
  • Helm:Chart 模板(需要 Chart.yaml)
  • AWS CloudFormation:包含 AWSTemplateFormatVersion 的 .json / .yaml
  • Azure ARM:包含 ARM $schema URL 的 .json
  • Serverless Framework:serverless.yml

主要能力

技能按五个阶段组织工作流:

  1. 发现(Discovery):通过文件扩展名、terraform.tfstate、provider 块、apiVersion/kind、AWSTemplateFormatVersion、$schema 等特征识别 IaC 类型,并确定扫描范围(单文件、目录或递归)。
  2. 执行扫描(Execute Scan):调用 snyk_iac_scan,可传入 path(目录或文件路径)、var_file(.tfvars 变量文件)、scan 模式(planned-values 或 resource-changes)、rules(自定义规则包路径)。
  3. 分析结果(Analyze Results):按严重程度分级——Critical(立即风险,如公开 S3、开放安全组)、High(重大风险,如缺少加密、权限过大)、Medium(中等风险,如缺少日志、IAM 过宽)、Low(最佳实践,如缺少标签)。并按网络、数据保护、访问控制、日志与监控等领域归类,便于修复。
  4. 修复(Remediation):针对发现的问题提供安全配置替代方案,覆盖 Terraform(S3 阻止公开访问、安全组限制访问、RDS 启用加密)、Kubernetes(非 root 用户与资源限制、NetworkPolicy 限制流量)、CloudFormation(S3 加密与公开访问阻止)等。
  5. 验证(Verification):修改后重新扫描,对比修复前后各严重级别数量,报告改进与剩余问题。

使用方式

基本扫描:运行 snyk_iac_scan,指定 path 为目录或文件路径。

带变量的 Terraform:额外指定 var_file 指向 .tfvars。

Terraform Plan(更准确):先执行 terraform plan -out=tfplan,再执行 terraform show -json tfplan > tfplan.json,然后对 tfplan.json 运行 snyk_iac_scan,scan 参数设为 "planned-values" 或 "resource-changes"。

自定义规则:通过 rules 参数传入自定义规则包路径。

策略文件:可创建 .snyk 文件管理例外,例如按规则 ID 设置忽略原因、过期时间与创建时间。

自定义规则:以 Rego(OPA)格式编写,打包为 .tar.gz,通过 --rules 选项传入。

适用场景

  • 在 CI/CD 中扫描,关键问题阻断构建
  • 通过 pre-commit 钩子在提交前拦截问题
  • 扫描可复用模块的安全性
  • 以策略即代码方式定义组织标准
  • 对 Terraform 优先使用计划扫描而非文件扫描
  • 依赖更新后重新扫描,持续监控

限制与约束

  • 扫描应在 apply 之前进行,绝不应用未扫描的 IaC
  • Critical 问题必须修复
  • 例外需通过 .snyk 策略记录
  • Terraform 建议优先使用计划扫描
  • 错误处理:无法读取 Terraform state 时运行 terraform init 并检查后端,或直接扫描 .tf 文件;HCL 语法无效时运行 terraform validate 并确保变量已定义;无法解析计划文件时用 terraform show -json 重新生成并检查版本兼容性与 JSON 有效性

暂未提供

资料未提供该技能的收费、价格、平台支持范围、性能指标或具体效果数据。