用途
该技能用于对 Kubernetes 清单文件和 Helm Chart 进行安全最佳实践检查,由安全工程师角色执行。当需要审查或检查 Kubernetes YAML 清单或 Helm Chart 的安全问题时使用。
主要能力
调用 KubeLinter 对目标路径进行扫描,支持扫描单个文件或 Helm Chart 目录,并可将结果输出为 JSON 格式。内置的检查项覆盖多个安全维度:
- run-as-non-root —— 容器不应以 root 运行
- no-read-only-root-fs —— 应设置 readOnlyRootFilesystem: true
- drop-net-raw-capability —— 应丢弃 NET_RAW 能力
- no-extensions-v1beta —— 不应使用已弃用的 API 版本
- dangling-service —— 服务没有匹配的 Pod
- default-service-account —— 不应使用默认服务账户
- writable-host-mount —— 主机路径以可写方式挂载
- privilege-escalation-container —— allowPrivilegeEscalation 未设置为 false
- unset-cpu-requirements —— 未设置 CPU 限制/请求
- unset-memory-requirements —— 未设置内存限制/请求
- sensitive-host-mounts —— 挂载了敏感的主机路径
技能会读取 KubeLinter 的 JSON 输出,并以包含检查项、对象、文件、消息和修复方案的表格呈现发现结果,最后汇总问题总数并提供针对每个发现的具体 YAML 修复方案。
前置条件
需要已安装 KubeLinter。可通过以下方式安装:
- brew install kube-linter
- 或下载二进制文件
可通过 kube-linter version 验证安装。
使用方式
- 确定目标——找出要检查的 K8s 清单或 Helm Chart 目录。
- 运行扫描:
- 扫描路径并输出 JSON:
kube-linter lint <path> --format json > kubelinter-results.json - 扫描单个文件:
kube-linter lint deployment.yaml --format json - 扫描 Helm Chart:
kube-linter lint ./charts/myapp --format json - 查看可用检查项:
kube-linter checks list - 排除某项检查:
kube-linter lint . --exclude no-read-only-root-fs --format json
- 扫描路径并输出 JSON:
- 解析结果——读取 JSON 输出并以表格形式呈现发现。
- 总结——提供问题总数,以及针对每个发现的具体 YAML 修复方案。
适用场景
适用于需要审查 Kubernetes 部署配置安全性的安全工程场景,包括对 K8s 清单文件和 Helm Chart 进行安全最佳实践检查。
限制
关于该技能的具体版本兼容性、支持的语言范围、是否支持自定义检查规则等限制,资料中暂未提供。