aegis について
aegisは、AIエージェント向けのローカル優先の認証情報分離プロキシです。ネットワーク境界でシークレットを注入し、APIアクセスを制御・記録します。MCPサーバーも同じセキュリティ処理を通じて認証付きリクエストなどを提供します。
主な機能
- 01暗号化された認証情報ボルト
- 02ネットワーク境界での認証情報注入
- 03ドメイン制限とリクエスト検査
- 04エージェント単位の権限・範囲・レート制限
- 05監査ログとポリシー制御
活用シーン
- 01キーを見せずにエージェントからAPIを呼び出す
- 02認証情報の利用先を許可済みドメインやエージェントに限定する
- 03許可・ブロックされた認証情報リクエストを確認する
MCP 対応
MCPサーバーは、認証付きAPIリクエスト、シークレットを含まない利用可能サービス一覧、Aegisの状態確認のツールを公開します。ドメイン検査、エージェント認証、リクエスト本文の検査、レート制限、監査ログを含むGateのセキュリティ処理を適用します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの 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
AI エージェントが読み取れる場所に API キーを置くのはやめましょう。
Aegis は、AI エージェント向けのローカル優先の認証情報分離プロキシです。エージェントと、エージェントが呼び出す API の間に配置され、ネットワーク境界でシークレットを注入することで、エージェントが実際の認証情報を見たり、保存したり、送信したりすることを防ぎます。
仕組み
なぜ必要なのか?
AI エージェント(Claude、GPT、Cursor、カスタムボット)は、Slack、GitHub、Stripe、データベースなどの実際の API を呼び出す機会が増えています。現在の方法には危険があります。
- エージェントが生の API キーを見られる — 1 回のプロンプトインジェクションでキーが流出する可能性があります
- ドメイン制限がない — 侵害されたエージェントは、Slack トークンを
evil.comに送信できます - 監査証跡がない — エージェントが認証情報を使って何をしたのか確認できません
- アクセス制御がない — すべてのエージェントがすべての認証情報を使用できます
Aegis はこれら 4 つすべてを解決します。エージェントはローカルプロキシ経由で 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"
本番環境のセットアップ(エージェント認証あり)
# 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 エージェントなら、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 サーバーは 3 つのツールを公開します。
| ツール | 説明 |
|---|---|
aegis_proxy_request | 認証済みの API 呼び出しを行います(サービスとパスを指定すると、Aegis が認証情報を注入します) |
aegis_list_services | 利用可能なサービスを一覧表示します(名前のみで、シークレットは表示しません) |
aegis_health | Aegis の状態を確認します |
MCP サーバーは、Gate のセキュリティパイプライン全体(ドメイン制限、エージェント認証、本文の検査、レート制限、監査ログ)を再現します。
セットアップガイド
機能
| 機能 | 説明 |
|---|---|
| 暗号化されたボルト | PBKDF2 による鍵導出を使用した AES-256-GCM 暗号化認証情報ストレージ |
| HTTP プロキシ(ゲート) | 認証情報を透過的に注入 — エージェントは localhost:3100/{service}/path にアクセスします |
| ドメインガード | すべての送信リクエストを認証情報の許可リストと照合します。バイパスはできません |
| 監査台帳 | 許可・ブロックされたすべてのリクエストを、完全なコンテキストとともに記録します |
| エージェント ID | エージェントごとのトークン、認証情報のスコープ設定、レート制限 |
| ポリシーエンジン | 宣言型 YAML ポリシー — メソッド、パス、レート制限、時間帯の制限 |
| ボディインスペクター | 送信リクエストのボディをスキャンし、認証情報に類似したパターンを検出します |
| MCP サーバー | Claude、Cursor、VS Code、Windsurf、Cline 向けのネイティブ Model Context Protocol |
| ウェブダッシュボード | WebSocket ライブフィードを備えたリアルタイム監視 UI |
| Prometheus メトリクス | Grafana ダッシュボード向けの /_aegis/metrics エンドポイント |
| Webhook アラート | ブロックされたリクエストや有効期限が近い認証情報を通知する HMAC 署名付き通知 |
| RBAC | 16 種類の細かな権限を持つ管理者、オペレーター、閲覧者のロール |
| マルチボルト | 暗号化キーを分離した、開発/ステージング/本番環境用の個別ボルト |
| Shamir の秘密分散法 | チームのマスターキー管理向けの M-of-N 鍵分割 |
| クロスプラットフォーム鍵ストレージ | デフォルトでは OS のキーチェーン(macOS、Windows、Linux)を使用し、利用できない場合はファイルにフォールバック |
| TLS サポート | 証明書/鍵を設定して、ゲートでオプションの HTTPS を利用できます |
| 設定ファイル | 環境変数と CLI フラグで上書きできる aegis.config.yaml |
統合例
設定ファイルとポリシーが含まれた、手順ごとのガイドです。
- Slack Bot — ドメイン制限付きのプロキシアクセスで Slack ボットのトークンを保護します
- GitHub Integration — エージェントごとの権限付与と読み取り専用ポリシーで GitHub PAT を保護します
- Stripe Backend — ボディ検査とレート制限で Stripe API キーを分離します
- OpenClaw Skill — OpenClaw パーソナル AI アシスタント向けの Aegis スキルです
セキュリティ
- 公開済みの STRIDE 脅威モデル — 28 件の脅威を分析し、未対処の重大/高リスクな問題は 0 件です
- 完全なセキュリティアーキテクチャのドキュメント(信頼境界、暗号化パイプライン、データフロー)
- 保存データの暗号化に AES-256-GCM と ChaCha20-Poly1305 を使用
- すべてのリクエストでドメインガードを適用 — バイパスはできません
- エージェントトークンは SHA-256 ハッシュとして保存 — 復元はできず、再生成のみ可能です
- 認証情報のパターン検出のためにリクエストボディを検査します
- オープンソース(Apache 2.0)— コードを確認できます
Aegis の比較
.env ファイル | Vault/Doppler | Infisical | Aegis | |
|---|---|---|---|---|
| エージェントが生のキーを参照できる | はい | はい(取得後) | はい(取得後) | いいえ — 決してありません |
| ドメイン制限 | なし | なし | なし | あり |
| MCP ネイティブ | いいえ | いいえ | 追加中 | はい |
| ローカルファースト | はい | いいえ | いいえ | はい |
| セットアップ | 10 秒 | 30 分以上 | 15 分以上 | 約 2 分 |
各アプローチとの詳しい比較については、比較の全容をご覧ください。
ドキュメント
| ドキュメント | 説明 |
|---|---|
| 使用ガイド | 完全なリファレンス:CLI コマンド、設定、RBAC、ポリシー、Webhook、トラブルシューティング |
| セキュリティアーキテクチャ | 信頼境界、暗号化パイプライン、データフロー図 |
| 脅威モデル | STRIDE 分析 — 28 件の脅威、緩和策、残存リスク |
| 比較 | .env、Vault、Doppler、Infisical との詳細な比較 |
| FAQ | よくある質問と懸念事項 |
| ロードマップ | 機能ロードマップ |
| コントリビューション | コードスタイル、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 サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。