fischer-agentkit/docs/deployment/secret-inventory.md

4.0 KiB
Raw Blame History

Fischer AgentKit — 密钥清单Secret Inventory

本文档列出 Helm Chart 涉及的全部 11 个 secret slotKTD-4 / R2a 每个 slot 含:名称、用途、来源、轮换周期、归属角色、对应环境变量。

密钥后端二选一Sealed Secretssecrets.backend: sealed-secrets)或 External Secrets Operatorsecrets.backend: external-secrets)。 禁止明文 Kubernetes Secret + Git 提交。

密钥清单总表

# Slot 名称 Secret Key 环境变量 用途 来源 轮换周期 归属
1 JWT 签名密钥 jwt-signing-key JWT_SIGNING_KEY JWT access(15m)/refresh(7d) token HS256 签名 运维生成32+ 字节随机串) 90 天 安全团队
2 API Key api-key API_KEY 服务间调用 / SCIM bearer / agentkit pair 鉴权 运维生成 180 天 平台运维
3 DB 凭据 database-url DATABASE_URL 应用层 PG 连接 DSN含用户名+密码) DBA 提供 90 天 DBA
4 IDP 签名证书 idp-signing-certs IDP_SIGNING_CERTS OIDC/SAML IdP 签名证书 PEMJSON map多 IDP 热轮换) 各 IDP 管理员提供 365 天 身份团队
5 第三方 API Key third-party-api-keys THIRD_PARTY_API_KEYS LLM provider API KeyJSON mapDashScope/DeepSeek/OpenAI/Anthropic 各 provider 控制台 90 天 LLM 运维
6 TLS 服务器证书 tls-server-cert Ingress TLS Secret Ingress TLS 终止证书 + 私钥 证书签发机构 / cert-manager 365 天 平台运维
7 mTLS 客户端证书 mtls-client-cert MTLS_CLIENT_CERT 与下游服务KMS/HSM、内部 API双向 TLS 客户端证书 内部 PKI 180 天 安全团队
8 KMS/HSM PKCS#11 PIN kms-hsm-pin KMS_HSM_PIN 硬件安全模块 PKCS#11 访问 PIN HSM 管理员 365 天 HSM 运维
9 OTel exporter token otel-exporter-token OTEL_EXPORTER_OTLP_HEADERS OTLP collector 鉴权DEPLOY-5: 值格式 Authorization=Bearer <token>,非裸 Bearer 可观测性平台 90 天 可观测性团队
10 Redis 密码 redis-password REDIS_PASSWORD Redis requirepass基础设施层应用通过 env 消费) DBA / 缓存运维 90 天 DBA
11 PostgreSQL 密码 postgres-password POSTGRES_PASSWORD(仅 PG StatefulSet PostgreSQL POSTGRES_PASSWORDDEPLOY-4: 应用不读此 env通过 DATABASE_URL Slot 3 内嵌密码连接) DBA 90 天 DBA

风险等级

Slot 泄露影响 风险等级
1 JWT 签名密钥 任意伪造身份 token
2 API Key 服务间冒充 / SCIM 越权
3 DB 凭据 数据库全量读写 严重
4 IDP 签名证书 SSO 信任链断裂(不能直接伪造,需配合 IdP 私钥)
5 第三方 API Key LLM 账单盗刷 / 数据外泄
6 TLS 服务器证书 TLS 中间人 / 域名冒充
7 mTLS 客户端证书 内部 API 越权访问
8 KMS/HSM PIN 密钥托管被解锁 / 加解密被滥用 严重
9 OTel token 遥测数据投毒 / 窃取
10 Redis-PG 密码 缓存/数据库越权 严重

存储位置

所有 secret slot 渲染到统一 Kubernetes Secret<release>-secrets 由 SealedSecret 或 ExternalSecret 控制器自动创建 / 同步:

<release>-secrets (Secret)
  ├── jwt-signing-key
  ├── api-key
  ├── database-url
  ├── idp-signing-certs
  ├── third-party-api-keys
  ├── tls-server-cert
  ├── mtls-client-cert
  ├── kms-hsm-pin
  ├── otel-exporter-token
  ├── redis-password
  └── postgres-password

deployment.yaml 通过 env.valueFrom.secretKeyRef 引用上述全部 key。 TLS 服务器证书slot 6额外被 Ingress 的 tls.secretName 引用 (需由 cert-manager 或运维单独创建为 kubernetes.io/tls 类型 Secret

轮换流程

详见 docs/deployment/key-rotation-runbook.md