安全检查清单
对外开放前逐项确认密钥、访问控制、代理、备份与沙箱
向用户开放前用本清单确认。清单描述运维人员的责任,自带 Compose/Kubernetes 文件不会自动让任何一项变为已完成。
密钥与配置
- 替换
SECRET_KEY、POSTGRES_PASSWORD、REDIS_PASSWORD、QDRANT_API_KEY的所有默认值。 - 设置唯一非空的
INTERNAL_API_TOKEN,API、worker、sandbox-worker 共用它访问内部上传网关。 -
.env、Kubernetes Secret manifest、安装器产物不进版本库,文件权限收紧。 - 生产密钥尽量进密钥管理器或外部管理的 Secret,通过维护窗口轮换。
-
API_BASE_URL/API_INTERNAL_BASE_URL用内部服务地址,PUBLIC_API_URL、FRONTEND_URL、BACKEND_CORS_ORIGINS用浏览器可访问的公网 origin。
认证与访问
- 部署保持私有期间再注册首个账户,首个注册用户成为初始超级用户。
- 按策略在管理界面配好会话时长、注册开关、邮箱/SSO 等站点设置。
- 定期检查团队成员与管理员权限,清理不用的 API Key 与集成。
- 启用 MFA/SSO 前先测通身份提供商配置与恢复路径。
网络与代理
- 在外部反向代理或 Ingress 终止 HTTPS,使用有效证书。
- 只公开前端/反向代理端口,PostgreSQL、Redis、Qdrant 与直连 API 端口留在私有网络。
- CORS 只写精确 origin,生产环境不用
*。 - 流式链路用 HTTP/1.1、
proxy_buffering off,读写超时与 1800 秒示例一致。 - 用 RBAC、NetworkPolicy 与 Ingress 策略限制
clouisle命名空间访问。
出站网络策略
站点设置 > 安全 里有三张互相独立的开关,默认全部为 true。它们保护不同的出站路径,关掉任何一张都要明确接受对应风险:
| 开关 | 默认 | 管住什么 | 关闭后的风险 |
|---|---|---|---|
model_endpoint_allowlist_enabled | true | LLM、嵌入、重排与媒体供应商端点(model_endpoint_allowlist) | 用户可把模型请求指向任意地址,包括内网服务与云元数据端点,可能泄露凭据或探测内网 |
ssrf_protection_enabled | true | 自定义 HTTP 工具、工作流 HTTP 节点、URL 导入/预览、数据库连接测试 | 这些功能可访问私网、回环与云元数据地址;仍保留 URL/端口语法校验,但不再阻断内网目标 |
sandbox_network_allowlist_enabled | true | 沙箱任务的出站目标(沙箱出口白名单) | 沙箱代码可连接任意网络,包括内网;文件系统隔离与资源上限仍然生效,且开关只影响新任务 |
- 三张开关保持开启;确需关闭时记录原因、期限与补偿控制(如 NetworkPolicy、出口代理)。
- 关闭某张开关不会清空已保存的列表,重新开启即可恢复;值损坏时按 fail-closed 处理(当作开启)。
- 沙箱出口白名单只接受精确 DNS 主机名,默认只放行
pypi.org、files.pythonhosted.org、pypi.python.org、registry.npmjs.org;通配符与 IP 地址会被拒绝,条目上限200,空列表等于阻断全部外网。 - 需要更多域名时逐条添加精确主机名,不要为了省事写通配符——沙箱出口白名单不支持通配符。
- 沙箱出口白名单与 SSRF 白名单是两套配置:前者约束沙箱代码,后者约束服务端发起的 HTTP 请求,不要互相替代。
数据保护与恢复
- 在支持的环境对 PostgreSQL、Qdrant、上传文件与备份存储启用静态加密。
- 按计划备份 PostgreSQL、Qdrant 快照与上传文件;Redis 只存缓存/队列状态,可选备份。
- 异地保留加密副本并定义保留策略。
- 完整恢复(含 Qdrant 与上传文件)已演练,RTO/RPO 已记录。
- 非破坏性场景不运行
docker compose down -v,不删除 PVC。
运行时与沙箱
- 生产镜像用固定 tag/digest,不用
latest,部署前扫描镜像。 - 沙箱文件系统隔离保持开启,保留 Worker 所需的 seccomp/能力配置,改动前先看沙箱加固说明。
- 沙箱出口白名单(
sandbox_network_allowlist_enabled)保持开启,只添加精确主机名;再按威胁模型在宿主机/集群层补充出口与资源限制。 - Docker、Kubernetes、PostgreSQL、Redis、Qdrant、Bubblewrap、宿主机内核及时打补丁。
日志与事件响应
- 收集并保护 API、worker、beat、frontend、代理日志,排除 token 与密码。
- 轮询
GET /api/v1/health,用管理端可观测接口/仪表盘(需admin:dashboard:access权限)。项目没有内置 Prometheus/metrics端点。 - 对健康检查失败、异常认证、队列积压、磁盘耗尽、备份失败配告警。
- 升级、密钥轮换、隔离、恢复、事后复盘流程已文档化。
这篇文章对你有帮助吗?