RamazanKara/kube-shield
GitHub: RamazanKara/kube-shield
kube-shield 是一个轻量级的 Kubernetes 安全态势扫描器,通过检查工作负载、CIS、RBAC、网络策略和密钥等维度,帮助用户快速发现集群配置风险并生成可操作报告。
Stars: 0 | Forks: 0
kube-shield
Kubernetes 安全态势管理器 - k9s 的安全版
`kube-shield` 是一个 Kubernetes 安全态势扫描器,适用于快速本地审查、CI 门控和定期集群检查。它读取 Kubernetes API 对象,高亮显示有风险的工作负载、CIS Kubernetes Benchmark v1.12、RBAC、网络策略和密钥模式,然后将它们转化为可操作的发现结果。  当你想要一个轻量级的安全检查,且易于运行、易于阅读、同时对自动化友好时,请使用它。 ## 为什么选择 kube-shield - 无需先安装控制器即可发现常见的 Kubernetes 态势问题。 - 将检查分组为工作负载、CIS、RBAC、网络策略和密钥扫描器。 - 以可读的表格、用于管道的 JSON、用于 GitHub 代码扫描的 SARIF 或交互式 TUI 显示结果。 - 支持严重性阈值和 `--exit-code`,使 CI 仅在你关心的风险上失败。 - 包含结构化的修复建议,并通过 OpenAI 或本地 Ollama 提供可选的 AI 解释。 - 提供已签名的发布归档、SBOM、证明、GHCR 镜像、OCI Helm Chart 和 Homebrew Cask。 ## 范围 kube-shield 检查 Kubernetes API 可见的配置。它不会取代运行时威胁检测、准入控制、节点加固、云 IAM 审查或对控制平面主机文件的完整 CIS 审计。它旨在让你快速了解最常见的集群态势问题。 ## 安装 选择与你的扫描方式相匹配的安装路径。 ### Homebrew ``` brew install --cask ramazankara/tap/kube-shield ``` ### Go ``` go install github.com/RamazanKara/kube-shield@latest ``` ### Docker ``` docker run --rm \ -v ~/.kube:/home/kubeshield/.kube:ro \ ghcr.io/ramazankara/kube-shield:v1.0.1 scan ``` ### 二进制归档 从 [GitHub 发布页面](https://github.com/RamazanKara/kube-shield/releases) 下载 Linux、macOS 和 Windows 归档。每个发布版本都包含校验和、SBOM 和 Sigstore 签名包。 ## 快速开始 针对你当前的 Kubernetes 上下文运行第一次扫描: ``` kube-shield scan ``` 常见的后续步骤: ``` # 扫描一个 namespace kube-shield scan --namespace production # 运行选定的 scanners kube-shield scan --scanners rbac,netpol # 仅显示 high 和 critical findings kube-shield scan --severity high # 为 GitHub Code Scanning 生成 SARIF kube-shield scan --output sarif > results.sarif # 存在 critical findings 时 CI 失败 kube-shield scan --exit-code --severity critical ``` 启动仪表盘: ``` kube-shield dashboard kube-shield dashboard --namespace production ``` 使用 AI 解释: ``` kube-shield scan --ai-provider openai --ai-api-key "$OPENAI_API_KEY" kube-shield scan --ai-provider ollama --ai-endpoint http://localhost:11434 ``` 在 TUI 中,在发现详情视图中按 `e` 请求 AI 解释。 ## CLI 参考 ### 全局标志 | 标志 | 短选项 | 默认值 | 描述 | |------|--------|--------|------| | `--config` | | `$HOME/.kube-shield.yaml` | 配置文件路径 | | `--kubeconfig` | | `$KUBECONFIG` 或 `~/.kube/config` | Kubeconfig 路径 | | `--context` | | 当前上下文 | Kubernetes 上下文 | | `--namespace` | `-n` | 所有命名空间 | 命名空间过滤器 | | `--output` | `-o` | `table` | `table`、`json` 或 `sarif` | | `--verbose` | `-v` | `false` | 详细日志 | | `--ai-provider` | | 禁用 | `openai` 或 `ollama` | | `--ai-model` | | 提供商默认 | 模型名称 | | `--ai-api-key` | | 空 | AI 提供商 API 密钥 | | `--ai-endpoint` | | 提供商默认 | 自定义 AI 端点 | ### `kube-shield scan` | 标志 | 默认值 | 描述 | |------|--------|------| | `--scanners` | 所有扫描器 | 逗号分隔的扫描器列表:`workload,cis,rbac,netpol,secrets` | | `--severity` | `low` | 最低严重性:`critical`、`high`、`medium`、`low`、`info` | | `--category` | 所有类别 | 发现类别过滤器 | | `--timeout` | `5m` | 扫描超时时间 | | `--exit-code` | `false` | 当存在匹配的发现时以非零退出 | ### `kube-shield dashboard` | 标志 | 默认值 | 描述 | |------|--------|------| | `--scanners` | 所有扫描器 | 逗号分隔的要运行的扫描器 | ### `kube-shield version` 打印构建版本、提交哈希和构建日期。 ## 配置 配置优先级如下: ``` CLI flags > environment variables > config file > defaults ``` 将 `.kube-shield.yaml` 放置在项目目录或主目录中: ``` context: "" namespace: "" output: table scanners: - workload - cis - rbac - netpol - secrets severity: low timeout: 5m exit-code: false ai: provider: "" # openai, ollama, or empty model: "" apikey: "" # prefer KUBE_SHIELD_AI_APIKEY endpoint: "" ``` 环境变量使用 `KUBE_SHIELD_` 前缀: | 变量 | 配置键 | 示例 | |------|--------|------| | `KUBE_SHIELD_CONTEXT` | `context` | `staging-cluster` | | `KUBE_SHIELD_NAMESPACE` | `namespace` | `production` | | `KUBE_SHIELD_OUTPUT` | `output` | `json` | | `KUBE_SHIELD_SCANNERS` | `scanners` | `rbac,secrets` | | `KUBE_SHIELD_SEVERITY` | `severity` | `high` | | `KUBE_SHIELD_TIMEOUT` | `timeout` | `10m` | | `KUBE_SHIELD_EXIT_CODE` | `exit-code` | `true` | | `KUBE_SHIELD_AI_PROVIDER` | `ai.provider` | `openai` | | `KUBE_SHIELD_AI_APIKEY` | `ai.apikey` | `sk-...` | | `KUBE_SHIELD_AI_MODEL` | `ai.model` | `gpt-4o-mini` | | `KUBE_SHIELD_AI_ENDPOINT` | `ai.endpoint` | `http://localhost:11434` | ## 扫描器 | 扫描器 | 检查项 | 严重性范围 | 关注点 | |--------|--------|------------|--------| | `workload` | 17 | Critical 到 Info | Pod 和容器安全态势 | | `cis` | 14 | Critical 到 Low | CIS Kubernetes Benchmark v1.12 API 可访问的检查 | | `rbac` 12 | Critical 到 Medium | 过度宽松的角色和危险绑定 | | `netpol` | 6 | High 到 Medium | 缺少隔离和宽松的策略 | | `secrets` | 6 | High 到 Info | 密钥暴露和引用规范性 | 有关每个检查 ID、严重性和修复类别,请参阅 [docs/SCANNERS.md](docs/SCANNERS.md)。 ## Helm 通过已发布的 OCI Chart 安装: ``` helm install kube-shield oci://ghcr.io/ramazankara/charts/kube-shield \ --version 1.0.1 \ --namespace kube-shield \ --create-namespace ``` 在开发期间运行本地 Chart: ``` helm install kube-shield deploy/helm \ --namespace kube-shield \ --create-namespace \ --set severity=medium ``` 常用 values: | Value | 默认值 | 描述 | |-------|--------|------| | `schedule` | `0 */6 * * *` | CronJob 调度 | | `scanners` | 全部 5 个扫描器 | 扫描器列表 | | `severity` | `low` | 最低严重性 | | `output` | `json` | 报告输出格式 | | `image.repository` | `ghcr.io/ramazankara/kube-shield` | 容器仓库 | | `image.tag` | chart appVersion | 容器标签 | | `serviceAccount.create` | `true` | 创建 ServiceAccount | 所有 Chart values 请参阅 [deploy/helm/values.yaml](deploy/helm/values.yaml)。 ## 发布验证 在运行验证命令之前,确保安装了支持证明的 `gh` 和 `cosign`。 ``` gh release download v1.0.1 --repo RamazanKara/kube-shield \ --pattern checksums.txt \ --pattern checksums.txt.sigstore.json \ --pattern kube-shield_1.0.1_linux_amd64.tar.gz gh attestation verify kube-shield_1.0.1_linux_amd64.tar.gz \ --repo RamazanKara/kube-shield cosign verify-blob --bundle checksums.txt.sigstore.json \ --certificate-identity-regexp 'https://github.com/RamazanKara/kube-shield/.github/workflows/release.yml@refs/tags/v.*' \ --certificate-oidc-issuer https://token.actions.githubusercontent.com \ checksums.txt cosign verify ghcr.io/ramazankara/kube-shield:v1.0.1 \ --certificate-identity-regexp 'https://github.com/RamazanKara/kube-shield/.github/workflows/release.yml@refs/tags/v.*' \ --certificate-oidc-issuer https://token.actions.githubusercontent.com ``` 安装渠道的烟雾测试: ``` docker pull ghcr.io/ramazankara/kube-shield:v1.0.1 helm show chart oci://ghcr.io/ramazankara/charts/kube-shield --version 1.0.1 brew install --cask ramazankara/tap/kube-shield ``` ## TUI 快捷键 | 按键 | 操作 | |------|------| | `Tab` / `Shift+Tab` | 切换面板 | | `Up` / `k` | 上移 | | `Down` / `j` | 下移 | | `Enter` | 打开发现详情 | | `Esc` | 返回 | | `/` | 过滤发现 | | `e` | 在详情视图中获取 AI 解释 | | `r` | 刷新扫描 | | `?` | 切换帮助 | | `q` / `Ctrl+C` | 退出 | ## 文档 - [扫描器参考](docs/SCANNERS.md) - [架构](docs/ARCHITECTURE.md) - [开发指南](docs/DEVELOPMENT.md) - [发布流程](RELEASE.md) - [仓库操作清单](docs/REPOSITORY_SETUP.md) - [安全策略](SECURITY.md) - [支持](SUPPORT.md) - [贡献指南](CONTRIBUTING.md) ## 贡献 欢迎贡献。从 [CONTRIBUTING.md](CONTRIBUTING.md) 开始: ``` git clone https://github.com/RamazanKara/kube-shield.git cd kube-shield make build make test make lint ``` ## 许可证 Apache License 2.0。参见 [LICENSE](LICENSE)。标签:AI风险缓解, Anthropic, API安全, Chrome Headless, CIS基准, DevSecOps, EVTX分析, Go语言, JSON输出, K8s安全扫描, Kubernetes API, Kubernetes安全, RBAC审计, SARIF, Web截图, 上游代理, 二进制发布, 云计算, 互联网扫描, 人工智能修复, 可视化仪表盘, 合规扫描, 图探索, 安全左移, 安全态势管理, 安全态势评估, 安全扫描, 审计工具, 容器安全, 密钥泄露检测, 工作负载安全, 开源工具, 日志审计, 时序注入, 杀软绕过, 权限审计, 秘密扫描, 程序破解, 终端UI, 网络安全策略, 网络策略分析, 自动化门禁, 规则引擎, 请求拦截, 配置检查, 风险分析