fischer-agentkit/docs/compliance/dengbao-level3/06-management.md

10 KiB
Raw Blame History

06 — 管理安全

GB/T 22239-2019 第三级「安全管理」控制点映射。

1. 维度说明

管理安全覆盖「安全管理制度的运行」AgentKit 自身已实现:

  • 已实现:密钥轮换 runbookU510 个 secret slot、 break-glass 告警流程U4 R1b、审计日志记录、应急隔离销户 + session 撤销)。
  • P0 补齐项变更管理流程文档化CI/CD 流水线规范)。
  • P1 参考:定期安全评估流程。
  • 待评估:应急响应预案演练(依赖客户安全团队协同)。

2. GB/T 22239-2019 三级要求(简要)

控制点 ID 要求摘要
MGT-01 密钥管理:密钥生成/存储/分发/轮换/销毁
MGT-02 变更管理:变更审批/测试/回滚/审计
MGT-03 应急响应:应急事件处置流程,隔离/恢复
MGT-04 安全审计与评估:定期安全评估,漏洞管理
MGT-05 配置管理:基线配置,配置变更审计
MGT-06 应急通道break-glass高权限应急通道审计追溯
MGT-07 密钥泄露响应:泄露检测/隔离/轮换/通报

3. AgentKit 实现映射

3.1 密钥管理MGT-01— 已实现

10 个 secret slot + 轮换 runbook

docs/deployment/key-rotation-runbook.md

# Slot 名称 用途 轮换周期 归属
1 JWT 签名密钥 access(15m)/refresh(7d) token HS256 签名 90 天 安全团队
2 API Key 服务间 / SCIM / agentkit pair 鉴权 180 天 平台运维
3 DB 凭据 应用层 PG 连接 DSN 90 天 DBA
4 IDP 签名证书 OIDC/SAML IdP 签名证书 PEM多 IDP 热轮换) 365 天 身份团队
5 第三方 API Key LLM provider API KeyJSON map 90 天 LLM 运维
6 TLS 服务器证书 Ingress TLS 终止证书 + 私钥 365 天 平台运维
7 mTLS 客户端证书 下游服务KMS/HSMmTLS 180 天 安全团队
8 KMS/HSM PKCS#11 PIN 硬件安全模块访问 PIN 365 天 HSM 运维
9 OTel exporter token OTLP collector 鉴权 bearer 90 天 可观测性团队
10 Redis-PG 密码 Redis requirepass + PG 服务密码 90 天 DBA

通用轮换原则

  1. 零停机:新密钥生效后再淘汰旧密钥,避免单点切换失败。
  2. 审计先行轮换前记录当前密钥指纹hash8轮换后校验变更。
  3. 回滚预案:保留旧密钥值至少一个轮换周期,便于快速回滚。
  4. 权限最小化:轮换操作仅限归属角色,操作全程审计日志。
  5. 后端无关:适用于 Sealed Secrets 与 External Secrets 两种后端。

密钥存储

  • 禁止明文 Kubernetes Secret + Git 提交KTD-4 / R2a
  • 后端二选一Sealed SecretsBitnami或 External Secrets Operator (指向 Vault / AWS SM / GCP SM / Azure KV
  • 渲染到统一 <release>-secrets Secret通过 env.valueFrom.secretKeyRef 注入 Pod。

详见 values.yaml secrets 段。

热证书轮换SAML

SAML IDP 签名证书支持热轮换(不重启即时生效): src/agentkit/server/auth/idp_registry.py update_certificate 方法。OIDC 通过 server_metadata_url 自动发现 authlib 缓存 TTL无需显式热轮换。

3.2 break-glass 应急通道MGT-06 / MGT-07— 已实现

break-glass deprovisioning

src/agentkit/server/routes/auth.py deprovision_user 端点支持 break_glass: true 标记:

class DeprovisionRequest:
    reason: str | None = None
    break_glass: bool = False  # 高权限账户 break-glass 标记

break_glass=True 时审计记录 source=break_glass audit.py SOURCE_BREAKGLASS),用于事后追溯应急操作。

应急流程

  1. 隔离admin 通过 deprovision 端点强制销户 break_glass=True + reason 说明)
  2. 撤销:自动撤销该用户全部活跃 session
  3. 审计:记录 actor/target/reason/source=break_glass/timestamp
  4. 告警OTel span event audit.deprovision 接入审计通道
  5. 通报由安全团队人工通报AgentKit 不自动通报,避免误报)

密钥泄露响应

key-rotation-runbook.md §紧急轮换 「紧急轮换(泄露响应)」段落:

  1. 隔离撤销泄露密钥provider 控制台 / HSM / CA
  2. 轮换:按对应 slot 步骤紧急轮换(不遵循「双密钥并行」原则, 直接切换到新密钥并废弃旧密钥)
  3. 审计:检索泄露密钥的使用日志,确认无异常调用
  4. 通报:通知安全团队 + 受影响用户
  5. 复盘:记录泄露原因,加固访问控制

3.3 变更管理MGT-02 / MGT-05— P0 补齐项

已实现

  • Git 版本控制:所有代码 / 配置 / Helm Chart 纳入 Git 变更可追溯。
  • Helm Chart checksumConfigMap 变更触发 Pod rollout deployment.yaml checksum/config annotation配置变更自动生效。
  • 配置同步config_sync.py 支持配置版本管理 + 轮询同步。
  • 审计记录:所有 RBAC 变更、deprovision 操作记录审计 audit.py)。

P0 补齐项CI/CD 流水线规范

当前状态P0。CI/CD 流水线GitHub Actions / Gitea Actions规范 未文档化。

P0 补齐计划

  1. 新增 docs/CI-CD-STANDARDS.md,包含:
    • 分支策略feature 分支 → PR → main
    • 必须的 CI 检查ruff + pytest + 镜像漏洞扫描 P0
    • 部署审批流程Staging → Production
    • 回滚流程Helm rollback
  2. CI 集成镜像漏洞扫描(详见 03-host.md §3.1 P0 补齐项)。
  3. 部署变更审计:kubectl rollout 历史记录接入审计通道。

3.4 应急响应MGT-03— 待评估

当前状态:待评估。AgentKit 自身应急隔离能力已实现(销户 + session 撤销

  • 密钥紧急轮换),但完整应急响应预案需与客户安全团队协同:
  • 事件分级标准P0/P1/P2
  • 响应时限P0 事件 15min 内响应)
  • 通报链路AgentKit admin → 客户安全团队 → 测评机构)
  • 恢复流程(密钥轮换 → 服务恢复 → 数据完整性校验)

建议:客户安全团队基于本套等保文档 + AgentKit 应急能力 (销户/密钥轮换/审计日志)构建完整预案,并在认证前完成至少一次 桌面演练。

3.5 安全审计与评估MGT-04— P1 参考

当前状态P1。AgentKit 审计日志已记录,但定期评估流程未建立。

已实现

  • 审计日志覆盖RBAC 变更 / deprovision / 终端命令 / SCIM 操作 全部记录审计 audit.py
  • OTel 指标监控U1 OTel 暴露应用指标,可观测性平台监控异常 metrics.py)。

P1 补齐计划

  1. 定期漏洞扫描:每月对依赖执行 pip-audit / safety 扫描。
  2. 代码安全评估:每次重大版本发布前进行 SAST 扫描 (如 Bandit / Semgrep
  3. 渗透测试:认证后每年至少一次渗透测试(客户侧组织)。
  4. 审计日志定期审查admin 每季度审查审计日志异常模式 (非自动告警,依赖人工 review — P1 可引入 SIEM 自动告警)。

3.6 配置管理MGT-05— 已实现

  • Helm values 标准化:所有可配置项集中在 values.yaml 含注释说明。
  • 配置优先级CLI 参数 > agentkit.yaml > 环境变量(${VAR:-default}

    .env > 硬编码默认值AGENTS.md

  • 配置版本管理config_sync.py 支持配置版本 + 轮询同步。
  • 密钥与配置分离含密钥的段llm/auth/telemetry由 env 注入, 不进 ConfigMap非密配置进 ConfigMap values.yaml config 段注释)。

4. 测评建议

  1. MGT-01 / MGT-06 / MGT-07:直接展示 key-rotation-runbook.md
    • secret-inventory.md + audit.py break_glass 流程即可。
  2. MGT-02 / MGT-05:已实现部分展示 Helm Chart + config_sync P0 补齐 CI/CD 规范文档。
  3. MGT-03:待评估,由客户安全团队基于本套文档构建完整预案。
  4. MGT-04P1 参考,写入整改计划(依赖扫描 + 季度审计 review

5. 密钥管理边界(重要说明)

AgentKit 密钥管理的边界

  1. 不持有 HSM/KMS 硬件HSM/KMS 由客户运维AgentKit 通过 PKCS#11 PIN 访问slot 8
  2. 不签发证书TLS / mTLS 证书由客户 CA / cert-manager 签发, AgentKit 仅消费。
  3. 不托管 LLM provider 密钥DashScope/DeepSeek/OpenAI/Anthropic 的密钥在 provider 控制台生成AgentKit 仅存储引用slot 5
  4. 多实例密钥同步:进程内 IDP 注册表不持久化,多实例部署时 各进程独立加载 agentkit.yaml;证书热轮换需配合配置同步 config_sync.py 轮询)或重启 idp_registry.py ponytail 注释)。