凭证管理平台

AgentKey是一个专为AI代理设计的集中式凭证管理平台,提供安全、生产就绪的环境,用于存储、轮换和访问凭证,采用行业标准加密和短期临时令牌。

  • by YASSERRMD
  • Rust
  • 本地部署
  • 6 星标
  • 更新于
在 GitHub 查看 YASSERRMD/agent-key

使用说明

代理密钥

Secure Credential Management for AI Agents

Features • Quick Start • SDK • API Reference • Architecture


概述

AgentKey是一个 集中式凭证管理平台 专为AI代理设计。它提供了一个安全的、生产就绪的环境,用于使用行业标准加密和短期临时令牌存储、轮换和访问凭据。

为什么选择AgentKey?

人工智能代理通常需要访问多个外部服务(OpenAI、AWS、数据库等),但安全管理这些凭据具有挑战性:

  • 危险分子:在代理代码或环境变量中硬编码秘密是危险的
  • 无审计追踪:谁访问了什么凭证,何时访问的?
  • 无旋转:秘密永远不变,增加暴露风险
  • 无中央控制:分散在不同系统中的凭据

AgentKey解决了这些问题 通过提供一个集中式的加密保险库,代理可以通过短期令牌访问。

特性

🔐 安全凭证存储

  • 静态AES-256-GCM加密
  • 用于访问的短期临时JWT令牌
  • 凭据从未在日志中公开

🤖 代理管理

  • 为每个AI代理创建专用身份
  • 每个代理有多个API密钥过期
  • 精细的访问控制

🔄 凭证轮换

  • 通过仪表板手动旋转
  • 通过SDK进行程序化轮换
  • 回滚的版本历史记录

📊 审计日志

  • 完整访问历史记录
  • IP地址跟踪
  • 事件过滤和搜索

🎨 现代仪表板

  • 基于React的直观用户界面
  • 实时统计
  • 团队协作功能

📦 开发包

  • 简单的凭证检索
  • 凭据的CRUD操作
  • 异步支持

📦 安装

先决条件

  • Docker&Docker编写
  • Node.js 18+(用于前端开发)
  • Rust 1.75+(用于后端开发)

快速入门(Docker Hub)

运行AgentKey的最快方法是使用我们预构建的Docker镜像:

# Pull the images
docker pull yasserrmd/agentkey-backend:latest
docker pull yasserrmd/agentkey-frontend:latest

# Run with docker-compose
curl -O https://raw.githubusercontent.com/YASSERRMD/agent-key/main/docker-compose.yml
docker-compose up -d

快速入门(本地开发)

  1. 克隆仓库:

    git clone https://github.com/YASSERRMD/agent-key.git
    cd agent-key
    
  2. 启动堆栈:

    docker-compose up -d --build
    

    后端运行 :8080,前端打开 :3000.

  3. 安装SDK(从源代码):

    cd sdk/python
    pip install -e .
    

创建您的第一个代理

  1. 注册 在 http://localhost:3000/signup
  2. 创建代理 (例如,“我的人工智能机器人”)
  3. 生成API密钥 对于代理人
  4. 添加凭据 (例如,OpenAI API密钥)
  5. 使用SDK 访问凭据

Python SDK使用

pip install agentkey
from agentkey import AgentKey

# Initialize with your agent's API key
agent = AgentKey(
    api_key="ak_your_agent_api_key",
    base_url="http://localhost:8080"
)

# Get a credential value
openai_key = agent.get_credential_value("openai-key")
print(f"Retrieved: {openai_key[:10]}...")

# List all credentials
credentials = agent.list_credentials()
for cred in credentials["data"]:
    print(f"- {cred['name']} ({cred['credential_type']})")

# Update a credential
agent.update_credential("openai-key", "sk-new-key-value")

# Create a new credential
agent.create_credential(
    name="database-password",
    secret="super-secret-password",
    credential_type="database"
)

软件开发工具包

开发包

完整文档: sdk/python/README.md

pip install agentkey
方法 说明
get_credential_value(name) 获取解密密钥
list_credentials() 列出所有代理凭据
create_credential(name, secret, ...) 创建新凭据
update_credential(name, new_secret) 更新现有机密
delete_credential(name) 删除凭据

api参考

认证

端点 方法 描述
/api/v1/auth/register POST 用户注册
/api/v1/auth/login POST 用户身份验证
/api/v1/auth/me GET 获取当前用户

代理

端点 方法 描述
/api/v1/agents GET 列出所有代理
/api/v1/agents POST 创建新代理
/api/v1/agents/{id} GET 获取代理详细信息
/api/v1/agents/{id} PATCH 更新代理
/api/v1/agents/{id} DELETE 删除代理

凭证

端点 方法 描述
/api/v1/agents/{id}/credentials GET 列出代理凭据
/api/v1/agents/{id}/credentials POST 创建凭据
/api/v1/credentials/{id} GET 获取凭据详细信息
/api/v1/credentials/{id} PATCH 更新凭据
/api/v1/credentials/{id} DELETE 删除凭据

令牌(SDK)

端点 方法 描述
/api/v1/agents/{id}/credentials/{name}/token GET 获取临时令牌

配置

端点 方法 描述
/api/v1/credential-types GET 列出凭据类型
/api/v1/credential-types POST 创建自定义类型
/api/v1/audit GET 查看审核日志
/api/v1/stats GET 仪表板统计信息

建筑

系统概述

┌─────────────────────────────────────────────────────────────────┐
│                         AgentKey                                │
├─────────────────────────────────────────────────────────────────┤
│                                                                 │
│   ┌──────────────┐     ┌──────────────┐     ┌──────────────┐   │
│   │   React UI   │────▶│  Rust API    │────▶│  PostgreSQL  │   │
│   │  Dashboard   │     │  (Actix-web) │     │   + Redis    │   │
│   └──────────────┘     └──────────────┘     └──────────────┘   │
│                              │                                  │
│                              ▼                                  │
│                    ┌──────────────┐                            │
│                    │  Python SDK  │                            │
│                    │  (Agents)    │                            │
│                    └──────────────┘                            │
│                                                                 │
└─────────────────────────────────────────────────────────────────┘

技术栈

组件 技术
后端 Rust+Actix网站
数据库 PostgreSQL 15
缓存 Redis 7
前端 React+Vite+TypeScript
样式 尾风CSS
状态 状态
软件开发工具包 Python 3.8+

安全模型

  1. 凭据已加密:AES-256-GCM,带证书AAD
  2. 双密钥架构:
    • 代理API密钥:长期身份密钥(用于请求访问)
    • 短暂访问令牌:用于传输秘密的短暂JWT(5分钟)
  3. 代理隔离:每个代理只能访问自己的凭据
  4. 智能SDK:自动处理令牌生成、缓存和刷新

项目结构

agent-key/
├── src/                    # Rust backend
│   ├── handlers/           # HTTP request handlers
│   ├── services/           # Business logic
│   ├── models/             # Database models
│   └── middleware/         # Auth middleware
├── frontend/               # React dashboard
│   ├── src/
│   │   ├── components/     # UI components
│   │   ├── pages/          # Page layouts
│   │   ├── services/       # API clients
│   │   └── store/          # State management
├── sdk/
│   └── python/             # Python SDK
├── migrations/             # SQL migrations
├── docker-compose.yml      # Container orchestration
└── Dockerfile              # Backend container

发展

本地运行

# Backend (Rust)
cargo run

# Frontend (React)
cd frontend && npm run dev

# Full stack (Docker)
docker-compose up -d

运行测试

# Backend tests
cargo test

# Frontend tests
cd frontend && npm test

# Python SDK tests
cd sdk/python && python -m pytest tests/

推送到Docker Hub

构建镜像并将其推送到Docker Hub(替换 YASSERRMD 使用您的用户名):

# Backend
docker build -t YASSERRMD/agentkey-backend:latest .
docker tag YASSERRMD/agentkey-backend:latest YASSERRMD/agentkey-backend:0.1.0
docker push YASSERRMD/agentkey-backend:latest
docker push YASSERRMD/agentkey-backend:0.1.0

# Frontend
docker build -t YASSERRMD/agentkey-frontend:latest ./frontend
docker push YASSERRMD/agentkey-frontend:latest

路线图

  • []自动凭证轮换
  • []Webhook通知
  • []多租户改进
  • []TypeScript/Node.js SDK
  • []Go SDK
  • []SSO集成
  • []Kubernetes Helm图表

贡献

欢迎投稿!请在提交PR之前阅读我们的投稿指南。

  1. 克隆该仓库
  2. 创建要素分支
  3. 提交您的更改
  4. 打开拉取请求

许可证

该项目根据 代理密钥源可用许可证.

您可以:

  • 在本地用于个人、教育或内部业务目的
  • 自行托管您自己的应用程序
  • 修改并贡献改进

您不得:

  • 作为SaaS、托管服务或托管解决方案提供
  • 作为商业服务向第三方提供访问权限

看 许可证 完整条款。


Made with ❤️ for the AI Agent community