安全从一台独享物理机开始,不从模糊承诺开始
每个有效订单分配一台独享 Apple Silicon 物理节点。VMOak 将管理面、交付流程和用户工作负载分开处理,并用凭据签发、运维审批与操作记录限制管理动作。
安全不是单方功能。我们负责节点交付、平台账户与必要运维控制;客户负责代码仓库权限、部署令牌、工作文件、远程连接端和团队成员访问。
- 节点归属
- 1 个有效订单对应 1 台独享物理机
- 访问方式
- 临时凭据交付后由客户首次更新
- 支持边界
- 不会索取完整私钥或代码仓库令牌
平台控制与客户控制各有明确边界
VMOak 的基础边界是物理节点归属,而不是在共享主机上划分逻辑配额。订单有效期间,分配给该订单的 Mac 由该客户独享;管理面负责订单、交付和必要运维,客户工作负载在所分配节点内运行。
物理节点隔离
每个订单对应独享物理机,处理器、内存和本机存储不与其他客户订单混用。远程桌面、SSH 任务与构建进程都落在同一台已分配设备上。
- 节点身份与订单记录绑定
- 交付前核对机型和存储容量
- 订单结束后停止原有访问路径
管理面与工作负载分离
控制台用于订单状态、凭据交付和支持请求,不作为客户代码、构建产物或项目文件的工作目录。客户任务在所分配的物理节点内执行。
- 支持请求只收集排障所需信息
- 管理动作按必要范围执行
- 故障处理完成后收回临时权限
客户侧责任
客户决定谁能连接节点、哪些仓库令牌可用以及哪些数据进入远程 Mac。团队权限变化、密钥撤销和业务数据备份应纳入内部流程。
- 限制仓库令牌的作用域和有效期
- 离职或转岗后立即移除访问
- 对敏感文件加密并保留独立备份
访问资料签发前,先完成五项设备核对
交付检查用于确认订单所对应的物理节点可以进入使用状态。检查结果围绕设备本身、系统、网络、存储和访问账户,不用未经验证的跑分代替可交付性判断。
-
01
通过后签发
设备状态
核对物理节点识别信息、订单机型和基础硬件状态,确保交付记录与实际分配设备一致。
-
02
启动确认
系统启动
确认 macOS 可正常启动,图形界面与命令行可进入,系统时间和基础服务状态符合交付要求。
-
03
连通确认
网络连通
确认节点具备必要的入站连接路径与出站访问能力,并核对远程桌面和 SSH 所需服务状态。
-
04
容量核对
存储容量
核对订单内置存储与已选择附加项,确认可见容量和文件系统状态,避免配置记录与节点实际容量不一致。
-
05
待客户更新
访问账户
确认临时账户可以用于首次连接,记录签发范围,并将首次更新凭据作为交付后的首个安全动作。
临时凭据只负责第一次进入,长期访问由客户接管
访问资料应被视为一次签发记录,而不是可以长期转发的固定口令。首次连接后立即更新凭据,再按人员和自动化任务拆分访问方式,可以减少共享密码带来的不可追溯风险。
临时账户进入
访问地址、账户名和临时凭据通过交付记录提供。不要把这组信息转发到公开群组、代码仓库或构建日志。
首次连接后更换
使用足够长度且不与其他服务复用的凭据。团队多人使用时,不应长期共用同一组可交互登录信息。
人员与自动化分开授权
交互式远程桌面、SSH 管理和 CI/CD Runner 使用不同权限路径。自动化令牌仅开放任务所需仓库与操作范围。
成员变化后立即清理
成员离职、职责变化或设备遗失时,撤销对应公钥、令牌和账户权限,并检查近期登录记录。
只上传公钥,不提交完整私钥
私钥应留在客户控制的连接端或受控密钥系统中。为不同人员和自动化任务使用可识别的独立密钥,撤销时才能精确定位。
- 公钥按使用者或任务命名
- 私钥文件限制本地读取权限
- 停止使用后删除对应公钥
identity: build-runner
scope: repository-read
interactive-login: false
expires: project-policy
owner: mobile-ci-team
示例表达最小权限思路,不代表平台替客户创建仓库访问策略。
需要人工介入时,权限必须有原因、有范围、有结束点
支持请求不会自动产生对客户工作负载的访问权。只有在客户明确授权且远程故障无法通过状态信息、脱敏日志或客户侧操作解决时,才进入必要的人工排查流程。
确认问题与授权
记录订单号、节点、问题时间、影响范围和客户已经执行的检查。需要进入节点时,先说明访问目的。
限定必要范围
访问仅覆盖当前故障所需的系统状态、服务配置或日志范围,不以排障为由浏览无关代码和业务文件。
记录操作过程
保留关键动作、观察结果和配置变更记录,使后续复核能够区分客户操作、系统状态与支持操作。
结束并收回权限
故障处理完成后关闭临时访问路径,向客户说明结果、变更项和建议继续观察的信号。
| 场景 | 优先由客户提供 | 可能需要的运维动作 | 不应提交 |
|---|---|---|---|
| 远程连接失败 | 发生时间、客户端网络、错误信息、节点标识 | 核对服务状态、端口路径和账户状态 | 完整私钥、未脱敏仓库令牌 |
| 构建进程中断 | 命令、退出码、脱敏日志、资源占用现象 | 检查系统进程、磁盘空间和基础服务 | 完整项目源码、生产密钥 |
| 存储容量异常 | 目录占用摘要、订单配置、预期容量 | 核对文件系统、挂载状态和订单附加项 | 业务文件内容、未加密数据副本 |
连接安全取决于传输、端口、终端和会话收尾
远程 Mac 的网络控制不能只看“能否连上”。连接端能力、暴露端口、客户端设备状态和会话结束方式共同决定实际风险。客户应优先使用支持加密传输的连接方式,并限制不必要的网络入口。
远程桌面会话
确认客户端支持所需的加密能力,避免在不受信任的终端保存长期凭据。结束工作时主动退出会话并关闭不再使用的客户端窗口。
- 连接前
- 核对地址、账户和客户端来源,确认本地设备已更新并启用屏幕锁定。
- 连接中
- 避免通过剪贴板传递长期密钥,不在共享屏幕时展示敏感配置。
- 连接后
- 退出图形会话,清理临时下载,并确认敏感应用没有继续停留在前台。
SSH 与自动化连接
使用独立公钥和最小权限令牌接入自动化任务。无需公开的服务不应额外开放端口,临时调试入口应在任务结束后关闭。
- 端口控制
- 仅保留任务实际需要的入口,避免为了方便长期开放无关服务。
- 密钥分离
- 人员密钥与 Runner 密钥分开,仓库读取与发布权限分开。
- 异常排查
- 发现陌生登录后先撤销相关密钥,再保留时间线、来源地址和进程信息。
付款状态进入订单,完整卡片资料不进入 VMOak 页面
支付流程只保留完成订单、核对状态和处理账单问题所需的信息。两类支付方式采用不同核对路径,但都以美元(USD)结算,实际可用网关以结账时返回为准。
Visa / Mastercard / Amex
卡片结算经 Stripe 处理。VMOak 页面避免保存完整卡号、安全码等完整卡片资料,订单侧仅接收完成结算和处理账单所需的状态信息。
- 以美元(USD)结算
- 订单记录付款状态与必要交易引用
- 账单问题通过控制台工单或支持邮箱处理
USDT-TRC20
USDT-TRC20 订单依据链上交易记录核对。客户提交账单问题时,可提供订单号、交易标识和付款时间,不应附带钱包私钥或其他控制凭据。
- 以美元(USD)计价
- 按订单与链上交易标识进行核对
- 私钥和助记信息始终由客户自行保管
先确认事实,再隔离影响,最后恢复与复盘
安全事件处理不以猜测替代证据。报告进入后,VMOak 会先确认涉及的订单、节点、账户和时间范围,再根据风险收束访问路径,保存必要信息并推进调查。
-
01
建立时间线
确认
核对报告主体、订单号、节点、首次发现时间、异常现象和仍在持续的影响,区分连接问题、账户问题与潜在安全事件。
-
02
限制影响面
隔离
根据影响范围收束可疑会话、凭据或网络入口。隔离动作以阻止风险继续扩大为目标,同时尽量保留后续调查所需证据。
-
03
核对证据
调查
检查相关登录记录、进程信息、配置变化、支持操作和客户提供的脱敏证据,判断入口、影响对象与持续时间。
-
04
恢复可用状态
恢复
在风险入口关闭后恢复必要访问,更新受影响凭据或配置,并明确客户需要执行的仓库令牌撤销、密钥轮换和文件检查。
-
05
形成处理记录
通知与复盘
向受影响客户说明已确认事实、处理动作、剩余风险和建议步骤。无法确认的部分会明确标注,不把推测写成结论。
把节点接入团队前,逐项完成这些动作
下面的清单适用于远程开发、CI/CD、自托管 Runner、AI 实验和创作工作流。团队规模越大,越需要把每一项落实为可追踪的负责人和周期。
更新首次凭据
第一次连接后立即更换临时凭据,避免与个人邮箱、代码托管或其他服务器使用同一口令。
负责人:节点管理员限制仓库令牌
只授予当前项目和任务所需权限,将读取、构建、发布与管理权限拆开,并设置内部更新周期。
负责人:代码仓库管理员拆分人员与 Runner 密钥
不要让自动化任务复用人员登录密钥。为每个 Runner 使用独立身份,便于停用、调查和轮换。
负责人:CI/CD 管理员定期清理访问
核对本机账户、SSH 公钥、仓库令牌和自动化配置,删除已结束项目或不再使用的入口。
负责人:团队权限负责人加密敏感文件
进入节点前先判断文件是否确有必要上传。敏感数据使用客户控制的加密方案,并保留独立备份。
负责人:数据所有者及时移除成员访问
成员离职、转岗或外包任务结束时,同步撤销远程账户、公钥、令牌和共享目录权限。
负责人:团队管理者选一台由单一订单独享的云端 Mac
先确认 M4 或 M4 Pro 配置、六个可订节点和计费周期,再进入控制台完成订单。节点实际可用状态以控制台实时返回为准。