AI隐私计算配置:从部署到验证的实操步骤
AI隐私计算配置的第一步不是找安装包,而是确认参与方数量、网络连通方式和数据不出域的边界。
如果这些没定,后面装好的组件也跑不通。
下面以常见的联邦学习协调端加客户端模式为例,给出在 Linux 测试环境中的配置流程,适用于 Ubuntu 22.04 或 CentOS 7 以上、有 Docker 基础的环境。
先确认三个前提,避免装完才发现方向不对
隐私计算方案很多,联邦学习、安全多方计算、可信执行环境的部署方式差别很大。
动手前先回答三个问题:
- 参与方是谁:至少两方,每方有独立的数据和计算节点,不能把数据汇总到一台机器上。
- 数据怎么对齐:各方样本 ID 是否已经对齐,没有对齐就需要先做隐私求交(PSI),这一步通常由协调端发起。
- 网络怎么通:协调端能被所有客户端访问,端口固定,防火墙和 SELinux 规则提前放行。
假设我们使用一个支持联邦学习与 PSI 的开源框架(如 FATE),在测试环境准备三台机器:协调端 192.168.1.10,客户端 A 192.168.1.11,客户端 B 192.168.1.12。
实际部署时请以所选框架的官方文档为准,本文只演示通用配置思路。
部署协调端与客户端
协调端负责调度任务和交换加密中间结果,客户端各自持有原始数据。
以下命令在三台机器上分别执行。
第一步:安装 Docker 与 Docker Compose
# Ubuntu 示例
sudo apt update
sudo apt install -y docker.io docker-compose
sudo systemctl enable --now docker
第二步:获取框架部署包
从项目官方仓库下载对应版本,不要混用不同版本的协调端和客户端。
解压后进入 docker-deploy 目录:
tar -zxvf fate.tar.gz
cd fate/docker-deploy
第三步:修改配置文件
协调端修改 confs/coordinator.conf,至少设置监听地址和端口:
[coordinator]
host = 0.0.0.0
port = 9370
客户端修改 confs/client.conf,把协调端地址指向 192.168.1.10:9370,并填写本机参与方 ID。
参与方 ID 必须唯一,后续任务配置会用到。
第四步:启动服务
docker-compose up -d
启动后检查容器状态:
docker-compose ps
所有容器状态应为 Up。
如果某个容器反复重启,先看日志:
docker-compose logs -f <容器名>
容易卡住的三个配置点
端口没放行。
协调端的 9370 端口和客户端的通信端口都需要在防火墙中放行。
CentOS 上执行:
sudo firewall-cmd --permanent --add-port=9370/tcp
sudo firewall-cmd --reload
Ubuntu 使用 ufw allow 9370/tcp。
证书或密钥不一致。
隐私计算依赖 TLS 和密钥交换,协调端与客户端必须使用同一套 CA 签发的证书。
如果启动日志出现 certificate verify failed,检查证书路径和有效期,不要直接关闭校验。
参与方 ID 重复或未注册。
客户端启动时如果提示 party not registered,回到协调端确认该参与方 ID 已加入配置,并重启协调端。
验证加密链路是否真正生效
服务起来不等于隐私计算配置成功。
用一次最小任务验证:
- 在客户端 A 准备一份小样本数据,客户端 B 准备另一份,样本 ID 有交集。
- 提交一个 PSI 任务,观察协调端日志是否出现任务调度记录。
- 任务完成后检查输出目录,确认双方只拿到交集 ID,没有拿到对方原始数据。
- 在客户端抓包或查看网络连接,确认通信内容不是明文样本数据。
如果任务一直处于等待状态,优先检查客户端与协调端的时间是否同步,时间偏差过大会导致任务状态异常。
配置完成后还要做什么
隐私计算配置不是一次性的。
每次新增参与方或调整数据源,都要重新确认网络策略、证书有效性和参与方 ID 注册状态。
生产环境建议把协调端和客户端日志接入统一日志系统,保留任务调度和异常记录,方便后续排查。
如果你还在选型阶段,先明确是只需要联邦学习还是也要支持安全多方计算,不同框架的配置复杂度差别很大,不要为了“一步到位”把测试环境堆得过重。