AI News HubLIVE
站内改写2 分钟阅读

面向安全本地AI使用的新软件开发工具

sde 是一款 CLI 工具,专为 macOS 上 AI 辅助开发提供容器隔离环境。它默认实施出口允许列表,通过主机钥匙串管理凭证,并要求显式的、有时限的授权才能执行写操作,从而保护代码和秘密信息。

来源Hacker News AI作者: alexfg93

sde 是一款专为 macOS 设计的命令行工具,旨在为 AI 辅助开发提供安全的容器隔离环境。在 AI 代理直接与代码库交互的场景下,传统做法容易暴露整个系统——代理获得 shell 后可以 curl、git push、读取所有 .env 文件。sde 通过清晰的边界划分解决了这一问题。

sde 的核心特性包括:默认的出口允许列表——工作空间仅能访问用户明确列出的域名,其他所有流量在 DNS 层返回 NXDOMAIN,在 iptables 层丢弃。云实例元数据地址(169.254.169.254)始终被拦截。凭证永远不离开主机:Git 令牌存储在 macOS 钥匙串中,工作空间通过 Unix socket 代理通信,每次操作临时生成令牌,并通过环境变量注入容器文件系统,不会留下持久化的 .gitconfig 文件。写操作需要授权:git pull 默认允许,但 git push 必须从主机终端执行显式的、有时限的授权命令。

对于 AWS 凭证,sde 采用 credential_process 方式——容器内部不存储静态密钥。sde 在容器内注入 ~/.aws/config 文件,其中配置了 credential_process 回调主机上的代理,代理进而调用主机的 aws configure export-credentials 命令,从而为每次操作提供短期 SSO 凭证。

安装方面,sde 支持从源码构建和 Homebrew 安装。要求 macOS 13 Ventura 或更高版本(Apple Silicon 或 Intel),并需要 Colima 或 OrbStack 作为容器运行时。

sde 提供了一套完整的命令体系:sde init 检测项目并生成拓扑文件;sde up 启动环境;sde down 停止容器但保留卷;sde shell 进入工作空间容器的交互式 shell;sde grant push 用于授权推送操作。此外还有日志查看、端口映射、状态检查、审计日志等命令。

拓扑文件(topology.yaml)定义了项目名称、网络配置、服务(工作空间、数据库等)以及凭证提供者。例如,可以指定工作空间容器使用 Node.js 镜像,挂载卷,映射端口,并设置数据库容器。出口规则可以允许 npm 注册表、GitHub 和 Anthropic API 等域名。

sde 的整体架构包括主机上的 sde CLI、代理守护进程、凭证助手、DNS 解析器容器,以及运行在容器运行时中的工作空间和数据库容器。DNS 容器负责执行出口策略,凭证代理运行在主机上,通过 Unix socket 与工作空间通信。

sde 采用 GNU GPL v3 许可证,目前处于积极开发阶段。v1 目标覆盖工作空间隔离、凭证代理、出口策略以及 macOS 上 AWS/GitHub 凭证集成。未来计划支持 Linux 运行时和更多令牌提供者。