安全最佳实践
作为供应商,你需要了解以下安全机制和最佳实践,保护你的机器和平台用户的数据。
node-secret 安全
node-secret 是节点身份凭证,格式为 ns_<64位十六进制>。
安全规则:
- 由
setup.sh自动写入/etc/ark/node-secret,权限为600(仅 root 可读) - 永不写入 systemd 服务文件、环境变量文件、Docker Compose 文件
- 永不出现在任何日志、git 仓库、shell history 中
- 遗失 node-secret 需在控制台重置,旧 secret 立即失效
查看 node-secret 摘要:
bash
# 仅显示前 8 位(hint),用于确认身份,不泄露完整 secret
sudo cat /etc/ark/node-secret | cut -c1-10任务沙箱隔离
所有任务在独立 Docker 容器中运行,具有以下隔离措施:
| 隔离层 | 配置 |
|---|---|
| 文件系统 | 容器只读层 + 独立 overlay 可写层 |
| 网络 | 独立网络命名空间,默认无出站访问(可配置) |
| 进程 | PID 命名空间隔离,无法看到宿主机进程 |
| 用户 | 默认以非 root 用户运行 |
| 资源 | cgroup 限制 CPU、内存、GPU 用量 |
DANGER
请勿手动修改 Nomad / Docker 的安全配置(如开启 --privileged)。违规配置会导致节点被下线并扣除押金。
防火墙配置
节点只需开放以下端口:
| 端口 | 协议 | 用途 |
|---|---|---|
| 无 | — | 节点纯出站连接 Nomad Server,无需对外开放任何入站端口 |
节点 Nomad client 主动 retry_join 接入编排器(出站 RPC :4647 / Serf :4648),交互式实例经 cloudflared 出站隧道暴露,节点无需开放任何入站端口。
推荐防火墙配置(UFW):
bash
# 默认拒绝所有入站
sudo ufw default deny incoming
sudo ufw default allow outgoing
# 允许 SSH(替换为你的管理 IP)
sudo ufw allow from YOUR_ADMIN_IP to any port 22
# 启用防火墙
sudo ufw enableGPU 访问控制
每个任务通过 --gpus device=X 只分配特定 GPU,不能访问其他 GPU:
bash
# 平台自动生成,类似:
docker run --gpus device=0 --rm ...多任务并发时,不同任务分配不同 GPU 设备,互不干扰。
数据隐私
- 用户数据仅在任务运行期间存在于节点,任务结束后容器及所有数据自动删除
- 平台不存储任务的输入/输出内容,只记录元数据(任务 ID、状态、计费信息)
- 节点无法访问用户的 API Token 或账户信息
安全更新
节点的 Nomad client 与 Docker 由 systemd 托管。如需更新,重跑 setup.sh 会拉取最新组件:
bash
sudo systemctl restart nomad
# 或重跑安装脚本更新组件
sudo bash <(curl -fsSL https://api.arkcore.cloud/node-setup.sh) \
--token YOUR_JOIN_TOKEN --api https://api.arkcore.cloud异常处理
发现以下情况请立即联系 security@arkcore.cloud:
- 节点被访问到宿主机文件系统
- 容器内出现意外的网络请求
- node-secret 疑似泄露
