物理节点边界
每个有效订单对应一台独享物理机和一段明确租期。设备不是共享虚拟机,处理器、内存与本地存储不会以多租户虚拟会话形式分配给其他客户。
- 边界对象订单、设备、节点、租期
- 核对位置控制台中的实例详情
- 客户动作确认设备标识与租期起止信息
每个订单对应一台有明确租期的独享物理机,非虚拟机。ZoomMini 负责物理节点与控制台的运行,客户负责系统账户、应用配置、代码、秘密信息与备份。边界明确,权限才能被审计和回收。
独享物理机把客户工作负载放在明确的设备边界内,但设备独享不等于所有账户、远程入口和应用凭据自动安全。真正可执行的隔离模型由物理层、控制层、系统层和工作负载层共同组成。
每个有效订单对应一台独享物理机和一段明确租期。设备不是共享虚拟机,处理器、内存与本地存储不会以多租户虚拟会话形式分配给其他客户。
控制台用于读取设备状态与连接信息;VNC、屏幕共享和 SSH 用于进入系统。控制台会话和操作系统会话是两个权限面,应分别保护,不应共用弱凭据。
获得远程地址不应自动获得全部系统权限。管理员权限、日常开发账户、CI runner 和临时排障账户应分开,按任务授予权限,并在任务完成后及时回收。
访问控制的目标不是增加登录步骤,而是让团队能够回答三个问题:谁进入过设备、使用了什么权限、离开项目后是否已经失去访问能力。
不要让多人长期共用同一系统账户。唯一账户能把终端历史、文件所有权、runner 操作和排障记录关联到明确人员,也能在成员离组时单独撤销访问。
为不同人员和自动化任务使用不同密钥,记录密钥用途与持有人。私钥只保存在受控终端或密钥系统中,不通过工单、邮件、聊天记录和代码仓库传递。
日常构建不应持续使用管理员权限。为 CI runner 限定工作目录、仓库范围和必要命令;需要临时提权时,先确认变更目的,完成后恢复原权限。
团队应根据内部策略定期轮换系统密码、SSH 密钥和仓库令牌。发现成员离组、设备转交、密钥暴露或异常登录时,应立即轮换,不等待常规周期。
删除不再使用的公钥、账户、runner 注册、远程桌面保存项和自动化任务。仅停用人员账号而保留其共享令牌,会留下难以归属的持续访问路径。
ZoomMini 提供设备和远程入口。客户决定哪些代码、构建产物、测试数据与秘密信息进入设备,也负责在租期结束前完成验证、备份和迁出。
远程操作按工作类型选择 VNC、屏幕共享或 SSH。连接前核对控制台提供的地址和设备信息;SSH 首次连接时核对主机指纹,发现变化先停止连接并排查原因。
仓库凭据、签名材料、部署密钥和服务令牌由客户自行管理。优先使用受控密钥系统按任务注入,设置有效范围和撤销路径,不把秘密写入版本库。
提交排障信息前移除密码、私钥、完整令牌、完整支付凭据和与问题无关的个人数据。保留问题时间、命令、错误码和必要上下文,避免因过度删除导致无法复现。
在到期时间前迁出代码、构建产物、日志与业务数据,并验证备份可以读取。随后撤销仓库令牌、部署凭据和 runner 注册,删除不再需要的本地副本。
持续集成环境通常拥有仓库读取、签名、测试和发布权限。应把这些能力拆成独立秘密,按流水线阶段注入,并保证每项秘密都能单独轮换与撤销。
令牌只覆盖需要的仓库和操作。只做拉取的 runner 不应获得管理权限,临时任务不应复用长期发布令牌。
runner 使用独立账户和工作目录。依赖缓存应可验证来源,构建脚本避免输出环境变量和请求头中的秘密信息。
签名证书和相关私钥放入受控密钥系统,仅在需要签名的任务中注入。任务完成后清理临时文件和进程环境。
发布令牌与仓库令牌分开,测试流水线不能继承生产发布权限。人员或项目变化时,能够单独撤销而不影响其他任务。
检查构建脚本是否打印环境变量,失败处理是否回显完整命令,缓存目录是否包含凭据文件,以及产物归档是否意外收录配置文件。发现秘密进入日志后,不只删除日志,还要轮换对应凭据。
$ git grep -nE "TOKEN|PRIVATE_KEY|PASSWORD" -- .
$ find build/ -type f -name "*.env" -o -name "*.key"
$ security find-identity -v -p codesigning
$ launchctl list | grep runner
检查结果:
✓ 仓库中未发现明文秘密
✓ 构建归档未包含凭据文件
✓ runner 使用独立系统账户
✓ 签名材料由受控流程注入
ZoomMini 的服务可用率目标为 99.9%。所有节点全年 365 天正常运行;运行记录按日呈现,事件标记用于提示需要复核的状态变化,不直接等同于整日不可用。
若客户认为服务未达到目标,应通过控制台提交工单,提供订单标识、节点、受影响时间段、可复现现象和脱敏日志。符合条件的请求按服务条款审核,并以服务额度赔付。
查看服务条款与审核口径疑似账户异常、未授权访问或秘密泄露时,应避免一边继续运行高权限任务,一边等待完整结论。先缩小影响范围,再保存必要记录、通知支持团队并轮换秘密信息。
记录发现时间、设备标识、节点、异常账户、相关进程和受影响工作负载。区分控制台异常、系统账户异常、仓库令牌异常和应用行为异常,避免把不同权限面混为一个问题。
暂停可疑自动化任务,撤销异常会话,停用相关账户或公钥,并限制高风险令牌。不要为了保留现场而让已知异常访问持续扩大;限制动作本身也要记录时间和执行人。
保存与事件相关的登录记录、命令历史、runner 输出、进程信息和错误码。导出前完成脱敏,不发送密码、私钥、完整支付凭据或与事件无关的个人信息。
通过控制台工单或 support@zoommini.com 提交订单标识、节点、发生时间、已执行限制动作和脱敏日志。若仍存在持续风险,在主题中明确标注“安全事件”,便于快速分流。
按影响范围轮换系统凭据、SSH 密钥、仓库令牌、runner 密钥、签名材料和部署凭据。恢复任务前确认旧凭据已经失效,新权限符合最小范围,异常进程不再存在。
从控制台提交工单,便于将请求与订单、节点和设备状态关联。
发送邮件至 support@zoommini.com,主题中写明“安全事件”和订单标识。
清晰的责任边界可以减少排障中的等待和重复确认。物理节点、控制台与设备交付属于 ZoomMini 的运行范围;进入系统后的账户、应用、代码、秘密信息和备份属于客户控制范围。
| 控制领域 | ZoomMini 负责 | 客户负责 | 建议核对点 |
|---|---|---|---|
| 物理节点 | 设备与订单的独享对应关系、节点基础运行、控制台中的设备状态。 | 按订单用途使用设备,并在租期内完成工作负载管理与数据迁出。 | 设备标识、节点、租期起止时间。 |
| 控制台账户 | 提供账户访问、订单管理、实例状态和工单入口。 | 保护登录凭据,识别异常访问,并及时更新或撤销相关权限。 | 近期访问、订单变化、工单记录。 |
| 远程连接 | 在控制台提供对应设备的连接信息和状态说明。 | 核对地址与主机指纹,保护远程凭据,配置可信客户端。 | 节点、地址、指纹、连接账户。 |
| 系统账户 | 提供可使用的 macOS 图形界面和命令行环境。 | 创建唯一账户、执行最小权限、轮换凭据、移除离组成员。 | 账户清单、公钥清单、管理员权限。 |
| 应用与 CI/CD | 维持物理节点与控制台的服务运行。 | 管理 Xcode、依赖、runner、脚本、仓库权限和发布流程。 | runner 账户、工作目录、令牌范围。 |
| 代码与密钥 | 不替客户决定代码和秘密信息的存放、授权与轮换策略。 | 使用受控密钥系统,避免明文写入脚本、仓库和日志。 | 秘密用途、范围、持有人、撤销方式。 |
| 日志与支持 | 根据工单信息排查物理节点和控制台相关问题。 | 提交准确时间、复现步骤和脱敏日志,不发送秘密信息。 | 错误码、版本、时间线、已执行动作。 |
| 备份与迁出 | 在控制台呈现订单和设备的租期信息。 | 制定备份策略,验证可恢复性,并在租期结束前迁出数据。 | 备份完整性、恢复测试、令牌撤销。 |
订单对应的独享物理机、节点基础运行、设备状态、订单管理入口和支持工单处理。
操作系统权限、远程凭据、应用配置、代码、密钥、构建流水线、日志脱敏、备份与迁出。
客户提供订单、节点、时间线和脱敏日志;ZoomMini 根据边界定位基础设施状态,双方分别完成各自权限面的验证。
选择适合的机型和租期后,按唯一账户、SSH 密钥、最小权限、受控密钥注入与到期迁出清单配置环境。