ClouisleClouisle

安全检查清单

对外开放前逐项确认密钥、访问控制、代理、备份与沙箱

向用户开放前用本清单确认。清单描述运维人员的责任,自带 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_enabledtrueLLM、嵌入、重排与媒体供应商端点(model_endpoint_allowlist)用户可把模型请求指向任意地址,包括内网服务与云元数据端点,可能泄露凭据或探测内网
ssrf_protection_enabledtrue自定义 HTTP 工具、工作流 HTTP 节点、URL 导入/预览、数据库连接测试这些功能可访问私网、回环与云元数据地址;仍保留 URL/端口语法校验,但不再阻断内网目标
sandbox_network_allowlist_enabledtrue沙箱任务的出站目标(沙箱出口白名单)沙箱代码可连接任意网络,包括内网;文件系统隔离与资源上限仍然生效,且开关只影响新任务
  • 三张开关保持开启;确需关闭时记录原因、期限与补偿控制(如 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 端点。
  • 对健康检查失败、异常认证、队列积压、磁盘耗尽、备份失败配告警。
  • 升级、密钥轮换、隔离、恢复、事后复盘流程已文档化。

这篇文章对你有帮助吗?

本页目录