TRUST CENTER · 信任中心

信任中心

ChronoOps 部署在你自己的环境里。这一页写清它会连到哪里、谁能进来、什么授权了一次操作、事后能查到什么,每条都对得上产品实现。

  • 运行期不回连我们没有授权服务器、更新检查和使用统计;对外请求的目的地基本都由你配置,少数几项带内置默认地址,下面逐条列出。
  • 装在你的环境Compose 或 Helm 部署,支持内网与完全离线;数据留在你的数据库和存储里。
  • 一次审批一件事审批与作业、参数和目标清单绑定,执行时逐项重新核对。
  • 关键操作留痕交互式会话录不上就不放行,应用代码只写不改审计记录,读取录像同样留痕。

它会连到哪里去

私有化部署最先问的就是这个,下表逐条回答。

  • 产品内置运行期间产品不会主动连回我们:没有授权服务器、更新检查、遥测和崩溃上报,控制台前端也不加载外部脚本、字体或统计代码。唯一涉及我们地址的是安装时取镜像,见下表最后一行。
  • 产品内置对外请求的目的地基本都来自你的配置、数据库记录或挂载的文件。少数几行带有内置默认地址,下表逐条标出。
行为目的地默认状态完全离线时
授权校验与续期本地文件与你自己的数据库本地验签,无外部请求照常(到期按本机时钟判断;时钟往回调超过 5 分钟会触发防回拨保护)
更新检查、使用统计、崩溃上报产品不做这些请求照常
模型服务(AI 诊断与知识库)你配置的地址没有密钥就不发请求;只填密钥不填地址会走内置的公网默认地址指向内网模型即可用
云厂商接口(资产与账单)你自己的云账号相关适配器默认关闭不可用,其余功能照常
通知投递(飞书、钉钉、企业微信、Webhook、邮件)你登记的地址或 SMTP 服务器实时投递默认关闭内网渠道照常
Git / CI 预检你配置的 Git 服务默认关闭;打开后的默认地址是 GitHub、GitLab 的公网 API改成内网地址即可用
主机上的 Agent你的平台网关地址由 Agent 主动外连,不监听端口照常
安装时取镜像产品镜像默认来自我们的仓库;guacd、ClamAV、PostgreSQL 等第三方镜像来自 Docker Hub标准 Helm 安装会拉取用离线包安装,镜像在包里,不拉取

抓包会看到两处。注册和心跳时 Agent 试探云平台的元数据地址(OpenStack 系的 169.254.169.254,火山引擎的 100.96.0.96),它们属于你的云平台,不经过我们;控制台页脚有指向我们官网的链接,点了才跳转。产品不做时间同步,授权有效期和登录令牌都按本机时钟判断。清单由读代码核对,不是抓包结论。

谁能登录、谁能做什么

账号、认证与权限都在你的部署里,由你的管理员掌握。前端只隐藏按钮,权限判断始终在后端。

  • 产品内置本地账号口令以 bcrypt 存储。最小长度、字符组合、历史重复检查和有效期按租户设定,默认 12 位、四类字符、不能重复最近 5 个口令、90 天到期。连续登录失败会锁定账号,默认 5 次触发、锁 15 分钟。
  • 按部署配置多因素认证用 TOTP 动态口令,外加 10 个一次性恢复码。可信设备 7 天内不再提示,每人最多 5 台。按租户可设为不启用、由用户自行开启、仅管理员必须或全员必须;产品不含 WebAuthn、短信或邮件验证码。
  • 按部署配置企业身份对接实现了 OIDC、SAML 2.0、LDAP、AD 和 RADIUS,默认关闭,启用前要通过连通性探测并保留一个应急本地管理员账号。这几个协议目前只在我们自己的环境里验证过,没有做过客户目录的对接验收。对接你的目录,一定是先在你的环境里实测通过再切换。
  • 产品内置权限按角色授予,按租户隔离,可再收敛到项目范围。会话旁观、录像导出和法务保留不在租户管理员默认权限内,需单独授予角色。
  • 产品内置自动化访问用服务账号的 API 令牌:服务端只保存哈希,令牌权限必须是该账号角色的子集,涉及提权的权限不能作为令牌范围。
  • 产品内置进入远程会话这类敏感操作需要当场再次验证(step-up),验证结果与本次会话和目标资源绑定,API 令牌不能满足这道门。

一次审批只能放行一件事

一次审批绑定到一个具体动作:哪条作业、哪些目标、什么参数。执行开始时逐项重新核对。

  • 产品内置审批记录保存作业定义、参数、命令和目标清单的哈希。执行时重新计算并逐项比对,任何一项对不上就拒绝执行。
  • 产品内置目标绑定的是解析后的主机清单,不是选择条件。审批通过后改动目标范围、分发路径或覆盖行为,都会使审批失效。
  • 产品内置审批一次性使用、会过期,且只能由原申请人使用;默认不允许审批自己的申请。有效期默认 30 分钟、高风险作业 15 分钟,作业定义可在 1 分钟到 24 小时之间自行设定。
  • 产品内置内置命令策略在服务端判断,6 条规则直接拒绝、7 条转入审批。终端会话在回车时走同一套规则:击键实时透传,但平台会吞掉那个回车并补发一次清行,被拒绝的命令不会在目标主机上执行。一次会话累计被拒 5 条命令就触发熔断:平台断开这次会话,本批还没发出的输入一并丢弃。
  • 产品内置风险等级由服务端重新判定,只会调高不会调低。无人值守的定时任务和巡检只能用判定为低风险的作业。
  • 按部署配置堡垒机连接默认在近期完成多因素认证后直接建立;启用访问策略后,可要求全部连接或生产、高风险目标先走审批。Kubernetes exec 与日志始终需要审批人。

边界:命令判断在平台侧,有三种输入它看不全——全屏程序(如 vim、top)里的输入、Tab 补全后由远端 shell 决定的最终命令、用方向键从 shell 历史召回的命令。这道策略拦的是误操作和高风险命令,兜底靠审批、录像和审计。它拦不住存心绕过的人。

AI 只给建议,执行始终由人决定

AI 辅助诊断产出结论和建议,拿不到执行权限;边界由代码结构决定。

  • 产品内置AI 模块对作业域唯一的写入能力是创建草稿作业定义,没有任何 AI 接口能直接执行操作。
  • 产品内置AI 处置计划需要两位不同的人审核通过,创建者不能批准自己的计划;通过后生成的仍是草稿作业,照常走审批和执行流程。
  • 产品内置计划里的步骤可引用产品内置的操作清单,引用清单之外的操作,整份计划被拒绝;带命令且没有标记为只读的步骤一律要求审批,模型输出里的危险命令被强制提升风险等级。无论怎样,计划本身都不会执行。
  • 产品内置处置后的验证回执由固定规则计算,只说明告警在 30 分钟观察窗口内是否恢复,不代表问题已解决。
  • 随环境确认产品不自带模型,也不自带模型密钥:没配置模型服务时,AI 功能直接返回“未配置”,不会向外发出任何请求。资产管理、作业和巡检本来就不需要 AI。
  • 按部署配置模型地址和向量化(embedding)地址是两项独立配置,都要显式填你自己的网关或私有模型。只给密钥不给地址,内置的默认地址就指向公网的 OpenAI 接口。我们也提供托管模型服务;填了它,诊断和检索用到的上下文就会发到我们这里。这是唯一一种数据会到我们手上的情况,用不用由你决定。
使用场景发送给模型的内容平台保留的内容
告警诊断告警字段与相关日志,日志正文最多 20000 字节;发送前会清理常见的密钥、令牌和连接串写法,尽力而为,不等于保证诊断结论、调用记录与输入输出的哈希;不保存提示词原文
Kubernetes 资源诊断只有平台判定出的规则编号和计数,资源名称以哈希表示;Pod 日志正文不发送诊断结论与调用记录
进程诊断只有结构化的事实、判定与未覆盖项,有长度和条数上限;不发送调用栈、命令和请求内容诊断结论与调用记录;结论需逐条引用已提供的事实,没有引用的内容在入库前就被丢弃
知识库问答问题原文和检索到的知识片段按原样发送;问题最长 16000 字符,检索上下文的预算是 4000 token问题与答案原文都会入库,用于回看和引用核对

告警诊断先脱敏、只留哈希;知识库问答按原样发送,问答原文入库。告警自动诊断默认关闭。

事后能查到什么

审计记录、会话录像和逐条操作台账分开存放:审计记录回答谁做了什么,录像回答屏幕上出现了什么。

  • 产品内置审计记录包含请求 ID、操作者、租户、来源 IP、User-Agent、模块、动作、资源、结果和时间。应用代码里只有写入路径,没有任何改写或删除审计记录的语句。
  • 产品内置写入和读取都对令牌、口令、密钥这类字段做脱敏替换;在审计记录里,审批意见、申请理由和工单号只留长度和哈希,原文存在对应的审批事件上。
  • 产品内置交互式会话必须录制才能开始,WebSSH、SSH、Telnet、RDP、VNC 和 Kubernetes Exec 录不上就不放行。录像是 gzip 压缩的 JSONL,分块存储、每块一个 SHA-256,读取时逐块校验,默认保存 30 天。
  • 产品内置文件传输、只读数据库会话、Kubernetes 日志和受控 Web 应用不做录像,而是逐条记录元数据:文件传输留下路径与内容的哈希、大小和结果,数据库会话留下语句哈希、行数和耗时。
  • 产品内置每次读取录像都留下审计记录,包括读了哪一段、是否提供理由和工单号。
  • 按部署配置运行账号还可以收紧到审计表上只有插入和查询权限,需在交付时启用最小权限数据库角色;默认部署用的是数据库属主账号。
  • 按部署配置审计导出(JSONL/CSV,带 SHA-256 清单)随产品提供,由单独的导出权限控制,单次最多 10000 行、20 MiB,时间范围不超过 366 天。带签名的录像导出、对象存储的一次写入保护、法务保留和 SIEM 转发默认关闭,要由运维显式配置。

边界:会话录像保存目标主机回显的输出,操作者敲入的字节只记哈希和长度;审计表本身没有哈希链或一次写入保护,有数据库直连权限的人仍可改动记录。需要不可篡改的归档,就启用对象存储一次写入保护,或把审计导出交给自己的归档系统。

凭据与密钥放在哪里

目标系统的口令和私钥由管理员登记,使用者不需要知道;主服务只能封存,打不开。

  • 产品内置目标系统的口令、SSH 私钥和口令短语以信封加密保存:AES-256-GCM 数据密钥,再用 RSA-OAEP 包装,并绑定租户、凭据、用途和版本。
  • 产品内置主服务只持有加密用的公钥,解密私钥只在独立的接入网关进程里。凭据接口只写不读:产品没有“查看密码”这个功能。
  • 产品内置凭据更换由人发起并需要授权:网关自己生成新口令或新密钥,改到目标系统后验证能登录,验证失败回滚到上一版本。
  • 产品内置堡垒机的 SSH 连接按登记的主机公钥严格校验,主机密钥变化时连接中止,需要管理员确认,前后指纹都记入审计。
  • 按部署配置主机上的 Agent 用双向 TLS 接入。首次注册只上传证书请求,私钥不离开主机;证书默认 90 天,剩余寿命不到三分之一时自动续期。吊销通过服务端账本实时生效。

边界:密钥来自部署时挂载的文件,产品没有 KMS、HSM 或外部密钥管理集成,也没有自动换密钥的流程。平台数据库整体不加密,只有凭据、令牌种子等字段是信封加密;磁盘与备份加密由你的环境提供。

装到主机上的那个 Agent

运维平台天然握着高权限,Agent 的身份、端口、采集范围和卸载残留都在下面。

  • 产品内置Agent 不监听任何端口,连接一律由它向平台的 Agent 网关发起(gRPC,默认 9090)。纳管一台主机不需要在它上面开放入站端口。
  • 产品内置默认心跳只上报主机自述信息:主机名、操作系统与架构、machine-id、非回环 IPv4、CPU/内存/磁盘规格和 Agent 版本。不读取账号列表,也不收集进程清单。
  • 按部署配置作业执行通道在平台侧默认关闭:管理员显式开启之前,任何作业都无法把命令下发到主机,可先纳管、做清单和巡检。交互式远程会话(WebSSH)是另一条通道,按权限和审批控制,不受这个开关约束。
  • 按部署配置默认安装的服务以 root 运行,这是记录在案的产品决策:执行面保持特权,约束放在平台侧的权限、命令策略、审批绑定和审计上。安装包同时提供受限的非 root 配置,代价是需要特权的操作会在主机上失败。
  • 产品内置Agent 不去互联网或我们的服务器取升级包。升级件只从你的平台拉取,凭平台签发的短期凭证。校验 SHA-256 和 Ed25519 签名、跑过健康检查,才替换二进制;旧版本留一份,两分钟内没恢复心跳就自动回滚。
  • 产品内置卸载会停止并移除服务和程序,但保留 /etc/chronoops-agent 和 /var/lib/chronoops/agent(含身份文件与证书)以便追溯。要彻底清除,自行删除这两个目录。

注册和心跳时 Agent 试探云厂商的链路本地元数据地址(169.254.169.254 等),以关联云实例 ID,没有响应就跳过。

部署、备份与升级

Docker Compose 或 Helm 装在你的环境里,支持内网与完全离线。数据库和对象存储可用你现成的实例;Compose 离线包带了 PostgreSQL 和 Redis 镜像,Kubernetes 部署不自带。

  • 产品内置离线交付是一个包:镜像、Helm chart、数据库迁移程序、Agent 多架构安装包、安装升级回滚工具、SBOM 和逐文件的 SHA-256 清单。安装、升级、回滚前一定会核对这份清单,对不上就不往下走。分离签名的校验要显式打开,并指向我们单独交付的公钥;否则默认用包内自带的公钥,缺少签名就跳过。
  • 产品内置用交付工具做安装、升级和回滚时默认是演练模式,真正执行要显式关闭演练并逐项确认,数据库结构回滚要再单独确认一次。(一键快速安装脚本是另一条路径,默认直接执行。)
  • 按部署配置数据库迁移由单独的程序执行。把迁移账号和应用运行账号分开、让应用只拿到需要的权限,是交付时启用的一步:启用后由一次性任务创建受限账号并在启动前核对权限;默认部署里两者仍是同一账号。
  • 产品内置后端镜像基于无发行版基础镜像并以非 root 运行,接入网关容器以只读根文件系统运行。后端和前端镜像提供 linux/amd64 与 linux/arm64,Agent 另有 windows/amd64。
  • 按部署配置Compose 部署提供备份与恢复脚本:逻辑备份加卷归档,带校验和与行数清单;恢复默认是验证模式,破坏性恢复要过四道检查。Kubernetes 环境的备份由其存储层负责,脚本不覆盖。
  • 随环境确认信创环境按目标的操作系统、内核、芯片架构和数据库逐项评估。产品提供 arm64 制品和一份固定的验证矩阵。目前还没有哪一套组合走完全部实测并留档,兼容结论要按这份矩阵在你的环境里跑过才出具。

交付前两件事。备份不含密钥文件和授权文件,得单独归档——没有它们,恢复的数据库解不开已存的凭据。默认部署为单副本;要多副本,得把存储、消息、会话目录和一次数据库迁移一起规划。多副本也不等于高可用:owner 节点不可用时,上面的活动会话会中断。

授权与续期不需要联网

授权是一份离线签名文件,在你自己的环境里校验。产品没有授权服务器,也没有激活回调。

  • 产品内置授权文件用 Ed25519 签名,服务端用本地挂载的公钥校验。授权相关的代码里没有任何网络调用,校验只读本地文件和你自己的数据库。
  • 产品内置授权绑定的是租户标识,不是机器。签名内容里没有机器码、MAC 地址或主机指纹,规模由签名里的节点数限制。社区版上限是单租户、50 个节点、1 个 Kubernetes 集群。
  • 产品内置续期和回退都是离线的:我们按你当前授权的指纹和序号签一份新文件,序号必须递增、指纹必须对得上,重放或断链会被拒绝。没有自动续期,也没有定时回调。
  • 产品内置授权过期时,业务接口返回明确的错误码,数据不会被删除;授权管理接口仍可用,导入新文件就能恢复,不会把管理员锁在门外。
  • 随环境确认我们在签发和续期时拿到的,只有你告知的租户标识、主体名称、版本、节点数、功能范围和有效期,以及续期时的当前指纹与序号。产品不回传任何使用数据、资产清单或运行指标。

版本怎么出、问题怎么报

交付物的完整性可自行核对;开发流程里哪些自动拦住、哪些靠约定,我们分开说。

  • 产品内置交付包里每个文件都有 SHA-256,清单再附一份分离签名;安装、升级、回滚前都会先核对一遍。请用我们单独提供的公钥校验,不是包内自带的那一份。
  • 产品内置Agent 升级包由发布流程用 Ed25519 签名,平台重新计算哈希并验签通过后才允许下发。
  • 我们的做法改动按影响范围分级。涉及身份、审计、作业、Agent、许可、终端和数据库迁移的改动判为高风险,要加跑竞态检测、PostgreSQL 集成测试和对应的冒烟门禁。完整回归留给流水线自身、部署配置和识别不出的路径,另外每天定时跑一次。
  • 我们的做法涉及产品范围、安全边界、默认策略和版本划分的决定,记成编号的产品决策文档,包括没有满足独立评审的情况。
  • 我们的做法发现产品的安全问题,请发到 weiwendi@aiops.red,附复现步骤、影响范围和版本信息,不要附真实凭据或客户数据。我们会确认收到、跟进修复,并说明补丁在离线环境如何获取;确认时间、修复窗口和适用版本范围按双方确认的服务方案或合同执行,产品本身不带统一的响应时限。

我们对交付物做的是完整性校验:第三方依赖的漏洞扫描和镜像签名还没做,公开的漏洞披露政策和受支持版本列表也在补。支持范围和服务时间同样以双方确认的服务方案或合同为准。