144 lines
7.1 KiB
Markdown
144 lines
7.1 KiB
Markdown
# 等保三级认证文档 — 总览
|
||
|
||
## 1. 认证目标与范围
|
||
|
||
### 1.1 认证目标
|
||
|
||
本套文档用于 Fischer AgentKit(以下简称 "AgentKit")通过 GB/T 22239-2019
|
||
《信息安全技术 网络安全等级保护基本要求》**第三级**(等保三级)测评准备。
|
||
|
||
目标:在政企 POC 采购关闭前完成认证 readiness,使 AgentKit 作为应用系统
|
||
具备部署到等保三级信息系统的合规条件。
|
||
|
||
### 1.2 认证范围
|
||
|
||
AgentKit 作为一个**应用系统**纳入等保三级测评,覆盖:
|
||
|
||
- 应用软件本身(FastAPI 后端 + Vue 前端 + Tauri 桌面客户端)
|
||
- 部署形态:Kubernetes(客户内网)+ Redis + PostgreSQL(含 pgvector)
|
||
- 数据处理:用户输入、LLM 调用、记忆存储、终端命令执行
|
||
|
||
**不在范围内**(由客户/平台侧负责):
|
||
|
||
- 物理机房环境(客户机房)
|
||
- K8s 宿主机操作系统内核加固
|
||
- 网络骨干设施(防火墙、入侵检测系统、堡垒机)
|
||
- PKI 证书签发机构(CA)
|
||
- HSM/KMS 硬件设备
|
||
|
||
AgentKit 文档中明确标注「依赖客户侧」与「AgentKit 实现」的边界,避免越界承诺。
|
||
|
||
### 1.3 文档结构
|
||
|
||
本套文档按 GB/T 22239-2019 三级要求 6 个维度组织:
|
||
|
||
| 文件 | 维度 | 主要内容 |
|
||
|------|------|----------|
|
||
| `00-overview.md` | — | 总览(本文档) |
|
||
| `01-physical.md` | 物理安全 | 部署假设(客户机房)、物理访问、环境监控、电力 |
|
||
| `02-network.md` | 网络安全 | 网络架构、边界防护(Ingress TLS)、访问控制(NetworkPolicy)、入侵防范、安全审计(OTel) |
|
||
| `03-host.md` | 主机安全 | 容器镜像安全、K8s node 基线、身份鉴别(SA token)、访问控制(RBAC)、安全审计、入侵防范 |
|
||
| `04-application.md` | 应用安全 | 身份鉴别(SSO 多 IDP)、访问控制(RBAC 3 级 + 权限位)、安全审计(OTel + audit.py)、通信完整性(TLS + JWT)、软件容错、资源控制 |
|
||
| `05-data.md` | 数据安全 | 数据完整性(PG + pgvector)、数据保密性(PII 脱敏 + 国密 P1)、备份恢复、剩余信息保护(session revoke) |
|
||
| `06-management.md` | 管理安全 | 密钥轮换 runbook、break-glass 告警、变更管理、应急响应、安全评估 |
|
||
| `control-points.yaml` | — | 控制点清单 + AgentKit 实现映射(已实现 / P0 / P1 / 待评估) |
|
||
|
||
## 2. AgentKit 架构摘要
|
||
|
||
### 2.1 技术栈
|
||
|
||
- **后端**:Python 3.11+、FastAPI、Uvicorn、Pydantic v2、SQLAlchemy 2(async)
|
||
- **前端**:Vue 3、TypeScript、Vite 5、Ant Design Vue 4、Pinia
|
||
- **桌面端**:Tauri 2.x(Rust 外壳 + Python sidecar)
|
||
- **基础设施**:Redis(总线/缓存/状态)、PostgreSQL + pgvector(情景记忆)
|
||
- **可观测性**:OpenTelemetry(OTLP gRPC 导出,U1 已强制依赖)
|
||
- **部署**:Helm Chart(K8s 内网部署,U5)
|
||
|
||
### 2.2 部署形态
|
||
|
||
```
|
||
客户内网 K8s 集群
|
||
├── Ingress (nginx, TLS 终止) ← 唯一对外入口
|
||
│ └── TLS 证书(cert-manager 或手动)
|
||
├── AgentKit Pod (非 root, UID 1001)
|
||
│ ├── FastAPI serve (:8001) — API
|
||
│ └── FastAPI gui (:8002) — Web GUI
|
||
├── Redis (内部, requirepass)
|
||
├── PostgreSQL + pgvector (内部, 密码)
|
||
└── OTel Collector (内部, bearer token)
|
||
↑ OTLP gRPC (mTLS: 待评估)
|
||
```
|
||
|
||
密钥通过 Sealed Secrets 或 External Secrets Operator 注入(禁止明文
|
||
Kubernetes Secret + Git 提交,KTD-4 / R2a)。共 10 个 secret slot,
|
||
每个含轮换周期(90~365 天)。
|
||
|
||
### 2.3 关键安全子系统映射
|
||
|
||
| 子系统 | 模块 | 等保维度 |
|
||
|--------|------|----------|
|
||
| OTel 可观测性 | `src/agentkit/telemetry/` | 网络/主机/应用审计 |
|
||
| PII 脱敏 | `src/agentkit/llm/pii_filter.py` | 数据保密性 |
|
||
| SSO 多 IDP | `src/agentkit/server/auth/providers/`、`idp_registry.py` | 应用身份鉴别 |
|
||
| SCIM 2.0 | `src/agentkit/server/auth/scim/router.py` | 应用账户生命周期 |
|
||
| RBAC 审计 | `src/agentkit/server/auth/audit.py` | 应用安全审计 |
|
||
| 终端安全 6 层 | `src/agentkit/server/auth/terminal_security.py` | 应用访问控制 |
|
||
| RBAC 权限 | `src/agentkit/server/auth/permissions.py` | 应用访问控制 |
|
||
| JWT 会话 | `src/agentkit/server/auth/jwt_utils.py`、`denylist.py` | 应用身份鉴别 + 剩余信息保护 |
|
||
| 密码哈希 | `src/agentkit/server/auth/password.py` | 应用身份鉴别 |
|
||
| Helm 部署 | `deploy/helm/agentkit/` | 网络/主机/管理 |
|
||
| 密钥轮换 | `docs/deployment/key-rotation-runbook.md` | 管理安全 |
|
||
|
||
## 3. 各维度实现状态概览
|
||
|
||
下表汇总各维度控制点的实现状态。状态定义:
|
||
|
||
- **已实现**:代码/配置已落地,有对应文件可查
|
||
- **P0**:认证 readiness 必需,本次 POC 采购关闭前需补齐
|
||
- **P1**:下一阶段补齐,文档中标注为参考
|
||
- **待评估**:依赖客户侧或需进一步评估方案
|
||
|
||
| 维度 | 控制点数 | 已实现 | P0 | P1 | 待评估 |
|
||
|------|----------|--------|----|----|--------|
|
||
| 物理安全 | 6 | 0 | 0 | 0 | 6 |
|
||
| 网络安全 | 8 | 4 | 2 | 1 | 1 |
|
||
| 主机安全 | 7 | 4 | 2 | 0 | 1 |
|
||
| 应用安全 | 8 | 8 | 0 | 0 | 0 |
|
||
| 数据安全 | 8 | 6 | 1 | 1 | 0 |
|
||
| 管理安全 | 7 | 4 | 1 | 1 | 1 |
|
||
| **合计** | **44** | **26** | **6** | **3** | **9** |
|
||
|
||
> 应用安全是 AgentKit 自身责任范围,已全部实现。物理安全完全依赖客户机房,
|
||
> 故全部为「待评估」。网络/主机/数据/管理维度的 P0 项(共 6 个)是认证
|
||
> readiness 的关键补齐项,详见 `control-points.yaml`。
|
||
>
|
||
> **P0 关键补齐项清单**:
|
||
> - NET-03 NetworkPolicy 模板
|
||
> - NET-07 审计日志保留 180 天(KTD-9)
|
||
> - HST-03 容器日志标准化采集
|
||
> - HST-07 镜像漏洞扫描(Trivy/CI 集成)
|
||
> - DAT-03 PostgreSQL 备份恢复 runbook
|
||
> - MGT-02 CI/CD 规范文档化
|
||
|
||
## 4. 与既有交付的引用关系
|
||
|
||
本套文档不重复实现细节,只映射到既有交付物:
|
||
|
||
| 既有交付 | 等保映射 | 引用文档 |
|
||
|----------|----------|----------|
|
||
| U1 OTel(telemetry/) | 应用/网络审计 | `02-network.md` §5、`04-application.md` §4 |
|
||
| U2 PII 脱敏(pii_filter.py) | 数据保密性 | `05-data.md` §2 |
|
||
| U3 DR-fixes(bitable) | 应用容错 | `04-application.md` §5 |
|
||
| U4 SSO/SCIM/Audit | 应用身份鉴别/审计 | `04-application.md` §1/§4、`06-management.md` §2 |
|
||
| U5 K8s Helm Chart | 网络/主机/管理 | `02-network.md`、`03-host.md`、`06-management.md` |
|
||
| R7a 终端安全 6 层 | 应用访问控制 | `04-application.md` §2 |
|
||
|
||
## 5. 文档使用说明
|
||
|
||
1. 测评机构按 `control-points.yaml` 逐条核对,每条含 `id` / `dimension` /
|
||
`title` / `requirement` / `implementation` / `status` / `references`。
|
||
2. `references` 字段给出 AgentKit 代码文件绝对路径,使用 `file:///` 链接格式。
|
||
3. 状态为 P0 的控制点需在认证前补齐,对应文件中标有「P0 补齐项」段落。
|
||
4. 状态为 P1 的控制点在文档中标注为「P1 参考」,不阻碍三级认证但需写入整改计划。
|
||
5. 状态为「待评估」的控制点依赖客户侧环境,需在客户机房测评时单独核对。
|