文章摘要
Plane公司为满足高度监管行业的需求,开发了完全隔离的“空气隔离”版本软件。这一决策源于客户对数据主权和网络隔离的严格要求,特别是在国防和政府云领域。经过六个月的开发,该功能现已正式推出,成为公司战略产品之一,专为那些数据隔离不仅是优选而是必须的行业设计。
文章总结
关于Plane的完全隔离部署(Air-Gapped)你需要了解的一切
去年某个周四下午,我们刚刚庆祝了一项重大企业合作的成功,却接到了一位美国联邦承包商首席信息安全官(CISO)的电话。他明确表示,他们的联邦合同要求完全的网络隔离,不允许任何外部连接。尽管他们喜欢我们的平台,但除非我们能提供完全隔离的解决方案,否则合作无法推进。这一需求促使我们决定开发Plane的完全隔离版本。经过六个月的开发,这一版本现已正式推出。
受监管行业的需求
多个受监管行业对完全隔离的软件环境有着持续的需求。例如,受《国际武器贸易条例》(ITAR)约束的国防承包商需要完全的网络隔离;政府云(GovCloud)用户需要符合《联邦风险与授权管理计划》(FedRAMP)且无外部依赖的解决方案;处理受保护健康信息(PHI)的医疗机构和管理敏感交易数据的金融机构也面临类似的限制。
尽管我们已有强大的自托管选项,但法律和合规团队仍反馈称,仍需要虚拟专用网络(VPN)隧道的“私有云”解决方案无法满足他们的严格要求。
战略契合
开发完全隔离的部署选项完善了Plane的部署三部曲:
- 云部署:完全托管的SaaS服务,无需维护。
- 自托管:客户管理的部署,控制数据驻留。
- 完全隔离:满足最严格的安全要求。
这一战略扩展降低了企业增长的风险,解锁了因技术安全要求而受阻的高额交易。更重要的是,完全隔离版本为我们提供了一个强化的安全基线,使所有产品线受益。
Plane中的“完全隔离”意味着什么
构建真正的完全隔离解决方案需要重新思考Plane的每个组件如何运作。以下是我们部署选项之间的关键区别:
| 组件 | 云/自托管 | 完全隔离 |
| --- | --- | --- |
| 镜像 | 从注册表拉取 | 预打包在2GB的.tar.gz文件中 |
| 许可 | 在线“Prime”ping | 离线、加密、版本固定 |
| 更新 | plane upgrade CLI | 完整容器交换,保留数据 |
| 遥测 | 选择加入分析 | 默认禁用 |
在完全隔离的安装中,Plane实例完全位于您的安全边界内,没有任何出站连接,甚至没有用于许可验证或更新的连接。
构建细节
完全隔离解决方案的基础是一个单一的、自包含的工件,包含运行Plane所需的一切,无需外部连接。这个不可变的包包括:
- 九个服务特定的Docker镜像
- 四个依赖的Docker镜像
- 配置模板
- 带有完整性验证的安装脚本
每个组件都附带一个SHA-256清单,在我们的CI过程中进行加密签名,确保包在传输或存储过程中未被篡改。
离线安装程序
完全隔离部署的核心是install.sh脚本,它管理整个设置过程,无需外部连接。安装程序引导您完成配置,然后:
- 将所有Docker镜像加载到本地注册表
- 配置环境变量,包括唯一的
MACHINE_SIGNATURE - 设置完整的目录结构,包括单独的数据和日志目录
- 通过内置验证检查验证安装完整性
完全隔离测试
为确保真正的隔离,我们在零外部连接的环境中严格测试了整个部署过程。我们的测试环境模拟了受监管行业中的严格网络限制,确保在部署Plane时,它能在最严格的网络环境中无缝运行。
解决的难题
供应链信任
在完全隔离的环境中,最大的安全挑战是建立对软件供应链的信任。我们通过多层方法解决了这一问题:
- 可重复构建:我们的CI管道生成确定性工件,可以独立验证,并在相同输入下始终生成相同的校验和。
- 加密签名:每个包都用我们的组织GPG密钥签名,并在安装时验证。
- 工件来源:我们为每个包提供全面的保管链记录,记录每个构建步骤和依赖项。
外部集成
项目管理软件通常严重依赖外部服务,这在完全隔离的环境中是一个挑战。我们通过实施webhook代理模式解决了这一问题:
- 所有外部集成点都有明确记录
- 集成配置包括连接规范
- 集成允许列表让您的安全团队在DMZ内选择性打开特定端口
保持包大小可控
完全隔离的包可能迅速变得笨重,使物理传输变得困难。我们通过多种技术将包优化到可管理的2GB:
- 多阶段构建:我们的Docker镜像使用多阶段构建来消除开发依赖
- 层优化:我们精心安排Dockerfile层以最大化跨服务的重用
- 修剪调试符号:生产镜像去除了调试信息
- 增量压缩:对于更新,我们实现了版本之间的增量压缩系统
首个客户
我们的首个完全隔离部署是与一家受ITAR限制的国防承包商合作。他们的要求是最严格的:没有任何互联网连接,物理隔离,并符合联邦安全控制。部署过程非常顺利,从接收tarball到首次登录仅需45分钟。他们的安全团队表示,Plane“无需任何代码更改即可满足ITAR隔离规则”。
未来计划
我们刚刚开始推出完全隔离的解决方案,以下是我们的路线图:
- 半自动更新器:我们正在开发一种简化的更新机制,可与USB驱动器或内部工件代理一起使用。
- 完全隔离友好的市场:我们正在构建一个经过验证的插件和集成包,可包含在完全隔离的部署中。
- FIPS验证的加密模块:我们正在为所有加密模块进行FIPS 140-2/3验证,以满足政府客户的最严格安全要求。
准备好进行完全隔离部署了吗?
如果您的组织在国防、医疗或金融等受监管行业运营,或者您只需要最高级别的数据隔离,Plane的完全隔离部署可能是您一直在寻找的解决方案。我们的安全团队专门帮助组织应对完全隔离环境的独特挑战,他们将与您合作评估需求、规划部署,并确保顺利实施,满足您的安全和合规需求。
因为在没有任何东西可以离开网络的环境中,正确的软件仍然需要提供一切。
评论总结
Plane的优势与创新
- Plane开发了一个完全隔离的版本,适用于受监管行业,且性能优于SaaS版本。
- "our air-gapped deployment actually runs faster than our SaaS version."
- "regulated industries need alternatives to cloud-only tools like Jira."
- Plane是开源的,填补了自托管项目管理软件的空白。
- "Big fan of Plane since it's open-core."
- "Doesn't seem to be a lot of options for self-hosted/open-core project management software."
- Plane开发了一个完全隔离的版本,适用于受监管行业,且性能优于SaaS版本。
与Jira的对比
- Jira已有自托管和隔离环境的解决方案,Plane的创新性受到质疑。
- "Jira has a self-hosting option. It already is air gap ready."
- "Ehm, fairly sure you can use Jira in an air-gapped environment."
- 有人对Plane的定价和透明度提出疑问。
- "There is no price anywhere."
- "I don't understand the point of posting on HN if that's the case."
- Jira已有自托管和隔离环境的解决方案,Plane的创新性受到质疑。
技术细节与行业需求
- 离线更新和补丁管理是用户关注的重点。
- "Any more details about the offline patch/upgrade process?"
- 高度监管行业对数据主权和安全性的需求强烈。
- "As a DoD employee, it would be amazing if more companies took this seriously."
- "This also makes it infinitely more useful for healthcare."
- 离线更新和补丁管理是用户关注的重点。
其他替代方案
- Gitea和DocMost等工具也提供了类似功能,但各有局限性。
- "gitea has kanban built-in into the projects feature."
- "I am also building DocMost, a self-hostable Confluence alternative."
- Gitea和DocMost等工具也提供了类似功能,但各有局限性。
安全与信任问题
- 用户对Plane的安全性和公司背景表示担忧。
- "I'd be very hesitant about buying software from a company with a .so domain."
- "If they said 'implement a backdoor for us', are you sure the company would be able and willing to say no?"
- 用户对Plane的安全性和公司背景表示担忧。
总结:Plane通过提供完全隔离的版本和开源特性,吸引了受监管行业的关注,但其创新性和定价透明度受到质疑。Jira已有类似解决方案,用户对Plane的安全性和技术细节提出了进一步要求。其他工具如Gitea和DocMost也提供了替代方案,但功能上各有局限。