felixnotka/audicia

GitHub: felixnotka/audicia

Audicia 是基于 Kubernetes Operator 的最小权限 RBAC 生成器,利用审计日志持续生成并评估合规策略。

Stars: 30 | Forks: 1

# Audicia [![Pipeline](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/73dbcf6d4b225158.svg)](https://github.com/felixnotka/audicia/actions/workflows/pipeline.yaml) [![Nightly](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/a060b6832f225200.svg)](https://github.com/felixnotka/audicia/actions/workflows/nightly.yaml) [![License](https://img.shields.io/github/license/felixnotka/audicia)](LICENSE) **Audicia** 是一个开源的 **Kubernetes RBAC 生成器** — 一个 Kubernetes Operator,它会观察审计日志并自动生成最小权限的 RBAC 策略。 🌐 [audicia.io](https://audicia.io) · 📖 [文档](https://audicia.io/docs) · 🚀 [快速开始](https://audicia.io/docs/getting-started/introduction) ``` 403 Forbidden → Audit Event → Audicia → Role + RoleBinding → 200 OK ``` ## 问题 每个 Kubernetes 集群都存在权限过大的 ServiceAccount。团队因为编写正确的 RBAC 太难而绑定 `cluster-admin`。Audicia 通过观察实际的 API 访问模式并自动生成满足它们的最小策略来修复这个问题。 ## 目标 - **从审计日志中的运行时行为生成正确、最小的 RBAC 策略**。 - **作为 Kubernetes Operator 持续运行,支持检查点/恢复** — 而不是一次性脚本。 - **生成 GitOps 友好的输出,作为 Kubernetes CRD 集成到 ArgoCD、Flux 和标准工具链中**。 - **允许操作员通过可配置的策略旋钮控制策略严格程度**。 - **检测 RBAC 漂移** — 将观察到的使用与有效权限进行比较,用 **绿/黄/红** 合规评分标出过权访问。 ## 非目标 - **Audicia 不会应用策略**。它生成 `AudiciaPolicyReport` CRD。由人工或经过审查的 GitOps 流水线应用它们。自动权限提升是一种安全反模式。 - **Audicia 不会强制策略**。那是 OPA/Gatekeeper 的领域。Audicia 生成策略,强制器执行它。 - **Audicia 不需要 Secret 访问、模拟或集群管理员权限**。它读取审计日志、读取 RBAC 绑定/角色(用于合规评分),并写入 CRD。仅此而已。 - **Audicia 不会取代静态扫描**。像 Trivy 这样的工具在静止状态下扫描 YAML。Audicia 分析运行时行为。两者应结合使用。 ## 工作原理 ``` graph LR A[Audit Log] -->|File / Webhook| B[Audicia Operator] B --> C[Normalize Subjects & Events] C --> D[Filter Noise] D --> E[Aggregate Rules] E --> F[Apply Policy Strategy] F --> G[RBAC Compliance Check] G --> H[AudiciaPolicyReport CRD] H -->|kubectl apply / GitOps| I[Role + RoleBinding] ``` 1. **将 Audicia 指向你的审计日志** — 创建 `AudiciaSource` CR。 2. **Audicia 观察访问模式** — 它处理允许和拒绝的请求,归一化主体,处理子资源,并迁移已弃用的 API 组。 3. **Audicia 生成策略报告** — 包含 `.status` 中结构化观察结果和可直接应用的 YAML 清单的 `AudiciaPolicyReport` CR。 4. **Audicia 评估合规性** — 解析主体的当前 RBAC 绑定,并与观察到的使用进行比较,生成合规评分(绿/黄/红),显示主体有多过权。 5. **审查并应用** — 使用 `kubectl apply`、GitOps(ArgoCD/Flux)或即将推出的仪表板。 ## 快速开始 ``` # 从本地 Helm chart 安装操作符 helm install audicia ./deploy/helm -n audicia-system --create-namespace # 将其指向您的审计日志(请参阅 docs/examples/ 中的清单文件) kubectl apply -f audicia-source.yaml # 检查生成的报告 kubectl get audiciapolicyreports --all-namespaces ``` ## 示例输出 Audicia 观察到 `my-team` 命名空间中的 `backend` 服务账户调用 `GET pods` 和 `POST pods/exec`,并生成: 不再猜测。不再需要 `cluster-admin`。只需工作负载实际需要的权限。 ### 合规输出 如果 `backend` SA 当前拥有一个广泛授予访问 Secrets、ConfigMaps 等权限的 Role,Audicia 会检测到漂移: ``` $ kubectl get apreport -n my-team NAME SUBJECT KIND COMPLIANCE AGE report-backend backend ServiceAccount Red 5m ``` ``` status: compliance: score: 25 severity: Red usedCount: 2 excessCount: 6 sensitiveExcess: - secrets ``` 这告诉你:该 SA 仅使用了其 8 个授权权限中的 2 个,并拥有未使用的 Secrets 访问权限。 ## 配置 Audicia 允许你通过策略旋钮控制策略生成: | 旋钮 | 选项 | 默认值 | 描述 | |-------------|------------------------------------------|-------------------|-----------------------------------------------------| | `scopeMode` | `NamespaceStrict`, `ClusterScopeAllowed` | `NamespaceStrict` | 生成 Roles 或也允许 ClusterRoles | | `verbMerge` | `Smart`, `Exact` | `Smart` | 合并读类动词或保持精确 | | `wildcards` | `Forbidden`, `Safe` | `Forbidden` | 从不生成 `*` 或在所有观察到的动词时允许 | 请参阅 [文档示例](docs/examples/) 获取完整的配置样例。 ### 过滤评估 过滤器按有序的允许/拒绝链进行评估。**第一条匹配规则生效。** 如果没有规则匹配,默认允许事件。 ``` filters: # 1. Block all node-related noise first - action: Deny userPattern: "^system:node:.*" # 2. Block control plane internals - action: Deny userPattern: "^system:kube-.*" # 3. Only process events from specific namespaces - action: Allow namespacePattern: "^(production|staging)-.*" # 4. Deny everything else (explicit deny-all at the end) - action: Deny userPattern: ".*" ``` 常用方案: - **仅屏蔽系统噪声:** 两个 `Deny` 规则用于 `system:node:*` 和 `system:kube-*`。其他一切正常通过。 - **命名空间允许列表:** `Deny` 系统噪声,然后 `Allow` 特定命名空间模式,最后以 `Deny .*` 结尾。 - **单团队聚焦:** `Deny` 所有系统用户,`Allow` 一个命名空间,`Deny` 其他一切。 ## 文档 | 章节 | 描述 | |---------------------------------------------------------|------------------------------------------------------------| | [快速开始](docs/getting-started/introduction.md) | 介绍、安装和快速开始教程 | | [架构](docs/concepts/architecture.md) | 系统设计、数据流图、组件分解 | | [Webhook 设置](docs/guides/webhook-setup.md) | 通过 TLS/mTLS 进行实时 Webhook 摄入 | | [功能参考](docs/reference/features.md) | 完整功能列表和配置选项 | | [对比](docs/comparisons.md) | 与 audit2rbac、Trivy、OPA 等的功能对比 | | [路线图](docs/roadmap.md) | 已完成、进行中、计划中 | | [演示演练](docs/guides/demo-walkthrough.md) | Audicia 工作流程的分步演练 | ## 项目状态 Audicia 的核心已完成:v1alpha1 CRD、完整摄入管道(文件 + Webhook)、策略生成引擎和 RBAC 合规评分均已实现并在生产中经过测试。请参阅 [路线图](docs/roadmap.md) 了解下一步计划。 ## 安全 对于漏洞报告,请参考 [SECURITY.md](SECURITY.md)。请勿公开提交安全漏洞问题。 ## 许可证 Apache License 2.0。参见 [LICENSE](LICENSE)。
标签:3D图, ArgoCD, DevSecOps, DNS解析, EVTX分析, Flux, GitOps, Green Yellow Red 合规评分, Kubernetes Operator, Kubernetes 生态, Kubernetes 集群安全, RBAC, 上游代理, 安全合规, 审计日志, 开源项目, 日志审计, 最小权限原则, 服务账户权限, 权限控制, 权限漂移检测, 策略即代码, 策略报告 CRD, 网络代理, 聊天机器人安全, 自动化策略生成, 运行时行为观察