关于 aegis
aegis 是面向 AI Agent 的本地优先凭据隔离代理,在网络边界注入密钥,并控制和记录 API 访问。其 MCP 服务通过同一安全流程提供认证请求和服务状态查询。
主要功能
- 01加密凭据保险库
- 02在网络边界注入凭据
- 03域名限制与请求检查
- 04按 Agent 授权、限定范围和速率
- 05审计日志与策略控制
适用场景
- 01让 Agent 调用 API 而不暴露密钥
- 02将凭据限制给获准域名和 Agent
- 03检查允许和拦截的凭据请求
MCP 相关
MCP 服务提供工具,用于发起认证 API 请求、列出可用服务(不显示密钥)以及检查 Aegis 状态。它采用 Gate 安全流程,包括域名检查、Agent 身份验证、请求体检查、速率限制和审计日志。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
npx -y @getaegis/cliAEGIS_MASTER_KEY密钥Master encryption key for the credential vaultAEGIS_SALT密钥Hex-encoded 32-byte salt for key derivation (generated by aegis init)AEGIS_DATA_DIRDirectory for vault databases and registry (default: .aegis/)AEGIS_PORTGate proxy port (default: 3100)AEGIS_LOG_LEVELLog verbosity: debug, info, warn, error (default: info)AEGIS_LOG_FORMATLog output format: json or pretty (default: json)AEGIS_VAULTNamed vault to use (default: default)AEGIS_REQUIRE_AGENT_AUTH密钥Require agent authentication on every request (true/false, default: false)AEGIS_POLICY_MODEPolicy enforcement mode: enforce, dry-run, or off (default: enforce)AEGIS_POLICIES_DIRDirectory containing YAML policy filesAEGIS_METRICSEnable Prometheus metrics endpoint (true/false, default: true)本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
Aegis
别再把 API 密钥放在 AI Agent 能读取的地方。
Aegis 是一个本地优先的 AI Agent 凭据隔离代理。它位于你的 Agent 与其调用的 API 之间,在网络边界注入机密信息,让 Agent 永远无法看到、存储或传输真实凭据。
工作原理
为什么?
AI Agent(Claude、GPT、Cursor、自定义机器人)越来越多地调用真实 API,例如 Slack、GitHub、Stripe 和数据库。当前的做法很危险:
- Agent 能看到原始 API 密钥 — 一次提示词注入就能窃取这些密钥
- 没有域名防护 — 被攻陷的 Agent 可以将你的 Slack 令牌发送到
evil.com - 没有审计跟踪 — 你无法查看 Agent 如何使用你的凭据
- 没有访问控制 — 每个 Agent 都能使用每项凭据
Aegis 一举解决以上四个问题。你的 Agent 通过本地代理发起 HTTP 调用。Aegis 负责身份验证、强制执行域名限制,并记录所有操作。
快速开始
# Install
npm install -g @getaegis/cli
# Initialize (stores master key in OS keychain by default)
aegis init
# Add a credential
aegis vault add \
--name slack-bot \
--service slack \
--secret "xoxb-your-token-here" \
--domains slack.com
# Start the proxy
aegis gate --no-agent-auth
# Test it — Aegis injects the token, forwards to Slack, logs the request
# X-Target-Host tells Gate which upstream server to forward to (optional if credential has one domain)
curl http://localhost:3100/slack/api/auth.test \
-H "X-Target-Host: slack.com"
生产环境设置(含 Agent 身份验证)
# Create an agent identity
aegis agent add --name "my-agent"
# Save the printed token — it's shown once only
# Grant it access to specific credentials
aegis agent grant --agent "my-agent" --credential "slack-bot"
# Start Gate (agent auth is on by default)
aegis gate
# Agent must include its token
curl http://localhost:3100/slack/api/auth.test \
-H "X-Target-Host: slack.com" \
-H "X-Aegis-Agent: aegis_a1b2c3d4..."
MCP 集成
Aegis 是一流的 MCP 服务。任何兼容 MCP 的 AI Agent 都可以直接使用,无需 HTTP 调用。
之前(配置中使用明文密钥):
{
"mcpServers": {
"slack": {
"command": "node",
"args": ["slack-mcp-server"],
"env": { "SLACK_TOKEN": "xoxb-1234-real-token-here" }
}
}
}
之后(使用 Aegis,不会显示密钥):
{
"mcpServers": {
"aegis": {
"command": "npx",
"args": ["-y", "@getaegis/cli", "mcp", "serve"]
}
}
}
为你的 AI 主机生成配置:
aegis mcp config claude # Claude Desktop
aegis mcp config cursor # Cursor
aegis mcp config vscode # VS Code
aegis mcp config cline # Cline
aegis mcp config windsurf # Windsurf
MCP 服务提供三个工具:
| 工具 | 描述 |
|---|---|
aegis_proxy_request | 发起经过身份验证的 API 调用(提供服务名称和路径,Aegis 会注入凭据) |
aegis_list_services | 列出可用服务(仅名称,绝不显示机密信息) |
aegis_health | 检查 Aegis 状态 |
MCP 服务复现了完整的 Gate 安全流程:域名防护、Agent 身份验证、请求正文检查、速率限制和审计日志记录。
设置指南
功能
| 功能 | 描述 |
|---|---|
| 加密保险库 | 使用 AES-256-GCM 加密凭据存储,并通过 PBKDF2 派生密钥 |
| HTTP 代理(Gate) | 透明注入凭据——Agent 通过 localhost:3100/{service}/path 访问 |
| 域名防护 | 根据凭据允许列表检查每个出站请求,不可绕过 |
| 审计账本 | 记录每个请求(允许和拦截),并附带完整上下文 |
| Agent 身份 | 每个 Agent 独立的令牌、凭据范围和速率限制 |
| 策略引擎 | 声明式 YAML 策略——限制方法、路径、速率和时段 |
| 请求体检查器 | 扫描出站请求体,检测类似凭据的模式 |
| MCP 服务 | 原生支持 Model Context Protocol,可用于 Claude、Cursor、VS Code、Windsurf、Cline |
| Web 控制面板 | 实时监控界面,支持 WebSocket 实时动态 |
| Prometheus 指标 | /_aegis/metrics 端点,可用于 Grafana 控制面板 |
| Webhook 告警 | 对被拦截的请求和即将过期的凭据发送 HMAC 签名通知 |
| RBAC | 管理员、操作员、查看者角色,包含 16 项细粒度权限 |
| 多保险库 | 为开发、预发布和生产环境设置独立保险库,使用相互隔离的加密密钥 |
| Shamir 秘密共享 | 通过 M-of-N 密钥拆分管理团队主密钥 |
| 跨平台密钥存储 | 默认使用操作系统密钥链(macOS、Windows、Linux),并提供文件回退方案 |
| TLS 支持 | 可选为 Gate 启用 HTTPS,并配置证书和密钥 |
| 配置文件 | 使用 aegis.config.yaml,支持通过环境变量和 CLI 标志覆盖配置 |
集成示例
提供分步指南、配置文件和策略:
- Slack Bot — 通过限制域名的代理访问保护 Slack Bot 令牌
- GitHub 集成 — 使用按 Agent 授权和只读策略保护 GitHub PAT
- Stripe 后端 — 通过请求体检查和速率限制隔离 Stripe API 密钥
- OpenClaw 技能 — 面向 OpenClaw 个人 AI 助手的 Aegis 技能
安全
- 已发布 STRIDE 威胁模型——分析了 28 项威胁,未缓解的严重/高危问题为 0 项
- 完整的安全架构文档(信任边界、加密流程、数据流)
- 使用 AES-256-GCM 和 ChaCha20-Poly1305 加密静态数据
- 对每个请求强制执行域名防护——不可绕过
- Agent 令牌以 SHA-256 哈希形式存储——无法恢复,只能重新生成
- 检查请求体以检测凭据模式
- 开源(Apache 2.0)——可阅读代码
Aegis 对比
.env 文件 | Vault/Doppler | Infisical | Aegis | |
|---|---|---|---|---|
| Agent 能看到原始密钥 | 是 | 是(获取后) | 是(获取后) | 否——始终不可见 |
| 域名限制 | 否 | 否 | 否 | 是 |
| 原生支持 MCP | 否 | 否 | 正在添加 | 是 |
| 本地优先 | 是 | 否 | 否 | 是 |
| 设置耗时 | 10 秒 | 30 分钟以上 | 15 分钟以上 | 约 2 分钟 |
请参阅完整对比,了解与各类方案的详细比较。
文档
| 文档 | 描述 |
|---|---|
| 使用指南 | 完整参考:CLI 命令、配置、RBAC、策略、Webhook、故障排除 |
| 安全架构 | 信任边界、加密流程、数据流图 |
| 威胁模型 | STRIDE 分析——28 项威胁、缓解措施和剩余风险 |
| 对比 | 与 .env、Vault、Doppler、Infisical 的详细对比 |
| 常见问题 | 常见问题和疑虑 |
| 路线图 | 功能路线图 |
| 贡献指南 | 代码风格、PR 流程、架构概览 |
安装
# npm
npm install -g @getaegis/cli
# Homebrew
brew tap getaegis/aegis && brew install aegis
# Docker
docker run ghcr.io/getaegis/aegis --help
需要 Node.js ≥ 20——使用 node -v 检查
开发
git clone https://github.com/getaegis/aegis.git
cd aegis
yarn install
yarn build
yarn test
有关代码风格、PR 流程和架构概述,请参阅 CONTRIBUTING.md。
许可证
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。