Token导航 LogoToken导航TokenDH.com
Aws MCP Multi Account Repo logo
运维云端stdio官方级别未说明来源级核验

Aws MCP Multi Account Repo

MCP Server

cdk

一个集中式代理,用于通过AWS MCP服务器查询多个AWS账户的资源,部署在AWS Bedrock AgentCore上。

工具数

7

提示词数

0

GitHub Stars

0

资源数

0
PythonClaude云计算Claude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

amitkalawat

提供方

amitkalawat

最后核验

2026/5/17 20:21

运行时

Node.js

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

npx cdk bootstrap # First time only

详细介绍

多账户AWS运营代理

使用部署在AWS Bedrock AgentCore上的AWS MCP服务器跨多个帐户查询AWS资源的集中式代理。

为什么?

AWS MCP服务器 是最近推出的托管服务,通过模型上下文协议(MCP)公开了15000多个AWS API。它使AI代理能够使用自然语言与AWS服务进行交互——查询资源、搜索文档和检索操作SOP。

问题: 大多数组织都运行多个AWS帐户(开发、暂存、生产、安全、共享服务)。运营团队通常从一个中央账户工作,需要对所有账户进行监控、合规和事件响应。手动切换上下文或跨帐户运行脚本是乏味的。

此解决方案: 我们构建了一个AI代理,可以从单个界面查询任何注册的AWS帐户。使用跨帐户IAM角色假设和组织范围的信任策略,代理可以安全地访问成员帐户,而无需存储凭据。

为什么选择AgentCore?

  • AgentCore运行时 为托管具有内置扩展、监控和JWT身份验证的AI代理提供托管基础架构
  • AgentCore网关 充当统一的工具层,允许代理通过单个经过身份验证的端点访问企业工具

为什么选择Lambda桥? AgentCore网关支持OAuth用于出站MCP调用,但AWS MCP服务器需要SigV4身份验证。由于Gateway无法使用SigV4对请求进行签名,因此我们使用Lambda函数作为网桥。网关调用Lambda(它可以在本地执行),Lambda处理SigV4签名以调用AWS MCP服务器。此模式还支持跨帐户凭据切换-Lambda在进行MCP调用之前在目标帐户中扮演角色。

结果:提出“列出生产中的EC2实例”或“在AWS文档中搜索Lambda最佳实践”等问题,并在整个AWS组织中获得答案。

建筑

                                    ┌─────────────┐
                                    │    USER     │
                                    │  (Browser)  │
                                    └──────┬──────┘
                                           │
                                           ▼ HTTPS
┌──────────────────────────────────────────────────────────────────────────────────┐
│                            CENTRAL OPERATIONS ACCOUNT                            │
│                                                                                  │
│    ┌─────────────────────────────────────────────────────────────────────────┐   │
│    │                           FRONTEND HOSTING                              │   │
│    │                                                                         │   │
│    │              ┌──────────────┐          ┌──────────────┐                 │   │
│    │              │  CloudFront  │ ───────▶ │   S3 Bucket  │                 │   │
│    │              │    (CDN)     │          │  (React App) │                 │   │
│    │              └──────┬───────┘          └──────────────┘                 │   │
│    └─────────────────────┼───────────────────────────────────────────────────┘   │
│                          │                                                       │
│                          ▼ API Call + JWT                                        │
│    ┌─────────────────────────────────────────────────────────────────────────┐   │
│    │                          AGENT LAYER                                    │   │
│    │                                                                         │   │
│    │    ┌────────────┐         ┌───────────────────────────────────────┐     │   │
│    │    │  Cognito   │◀─OAuth─▶│          AgentCore Runtime            │     │   │
│    │    │ User Pool  │         │              (Agent)                  │     │   │
│    │    └────────────┘         │  ┌─────────────────────────────────┐  │     │   │
│    │                           │  │ • Strands Agent + Claude Model  │  │     │   │
│    │                           │  │ • MCP Client for Gateway        │  │     │   │
│    │                           │  │ • Account resolution logic      │  │     │   │
│    │                           │  └─────────────────────────────────┘  │     │   │
│    │                           └───────────────┬───────────────────────┘     │   │
│    └───────────────────────────────────────────┼─────────────────────────────┘   │
│                                                │                                  │
│                        ┌───────────────────────┴───────────────────────┐         │
│                        ▼                                               ▼         │
│    ┌─────────────────────────────────┐       ┌─────────────────────────────────┐ │
│    │           DynamoDB              │       │        AgentCore Gateway        │ │
│    │        (Account Registry)       │       │         (Tool Router)           │ │
│    │  ┌───────────────────────────┐  │       └───────────────┬─────────────────┘ │
│    │  │ account_id │ name │ env   │  │                       │                   │
│    │  │ 1234...    │ Prod │ prod  │  │                       ▼ Invoke            │
│    │  │ 5678...    │ Dev  │ dev   │  │       ┌─────────────────────────────────┐ │
│    │  └───────────────────────────┘  │       │         Lambda Bridge           │ │
│    └─────────────────────────────────┘       │  ┌───────────────────────────┐  │ │
│                                              │  │ • STS AssumeRole          │  │ │
│                                              │  │ • SigV4 Request Signing   │  │ │
│                                              │  │ • MCP Session Management  │  │ │
│                                              │  └───────────────────────────┘  │ │
│                                              └───────────────┬─────────────────┘ │
│                                                              │                   │
│                                                              ▼ SigV4             │
│                                              ┌─────────────────────────────────┐ │
│                                              │        AWS MCP Server           │ │
│                                              │   (15,000+ AWS APIs via MCP)    │ │
│                                              └───────────────┬─────────────────┘ │
└──────────────────────────────────────────────────────────────┼───────────────────┘
                                                               │
                                               STS AssumeRole  │
                       ┌───────────────────────────────────────┘
                       ▼
┌──────────────────────────────────────────────────────────────────────────────────┐
│                              MEMBER ACCOUNTS                                     │
│                                                                                  │
│     ┌──────────────────┐   ┌──────────────────┐   ┌──────────────────┐          │
│     │    Production    │   │     Staging      │   │   Development    │   ...    │
│     │  ┌────────────┐  │   │  ┌────────────┐  │   │  ┌────────────┐  │          │
│     │  │ CentralOps │  │   │  │ CentralOps │  │   │  │ CentralOps │  │          │
│     │  │ TargetRole │  │   │  │ TargetRole │  │   │  │ TargetRole │  │          │
│     │  │ (ReadOnly) │  │   │  │ (ReadOnly) │  │   │  │ (ReadOnly) │  │          │
│     │  └────────────┘  │   │  └────────────┘  │   │  └────────────┘  │          │
│     └──────────────────┘   └──────────────────┘   └──────────────────┘          │
└──────────────────────────────────────────────────────────────────────────────────┘

包含7个CDK堆栈的完整AgentCore堆栈:Cognito、DynamoDB、Lambda、角色、ECR、网关、运行时。 基础设施完全自动化——单一命令部署一切。

请求流

当用户询问时 *“在生产帐户中列出S3存储桶”*:

1. USER → CLOUDFRONT → S3
   User opens React app served via CloudFront/S3

2. FRONTEND → COGNITO
   User authenticates via Cognito Hosted UI (OAuth/PKCE)
   ← Returns ID Token (JWT with aud=client_id)

3. FRONTEND → RUNTIME
   POST /invocations with prompt and ID Token
   Runtime validates JWT against Cognito

4. RUNTIME (Agent) → DYNAMODB
   Agent queries account registry to resolve "Production"
   ← Returns: { account_id: "123456789012", name: "Production", ... }

5. RUNTIME (Agent) → GATEWAY
   MCP tool call: bridge-lambda___query
   Args: { account_id: "123456789012", tool_name: "aws___call_aws",
           arguments: { cli_command: "aws s3 ls" } }

6. GATEWAY → LAMBDA
   Invokes Lambda bridge with tool arguments (SigV4 signed)

7. LAMBDA → STS
   AssumeRole to arn:aws:iam::123456789012:role/CentralOpsTargetRole
   ← Returns temporary credentials for target account

8. LAMBDA → AWS MCP SERVER
   Calls AWS MCP Server with assumed credentials (SigV4)
   ← Returns S3 bucket list from Production account

9. Response flows back: Lambda → Gateway → Runtime → Frontend → User

特征:

  • 具有自动扩展功能的托管基础设施
  • 通过Cognito进行JWT身份验证
  • 通过DynamoDB进行动态帐户管理
  • 带有流式响应的React前端

快速开始

先决条件

  • 配置了适当权限的AWS CLI
  • Node.js 18+和npm
  • Python 3.11+虚拟环境
  • Docker(用于代理容器构建)

部署基础设施

cd agentcore-gateway/infrastructure
npm install
npx cdk bootstrap  # First time only
npx cdk deploy --all --region us-east-1

构建和部署代理

# Build container
cd agentcore-gateway/agent
docker build -t central-ops-agent .

# Push to ECR (get repo URL from stack outputs)
aws ecr get-login-password --region us-east-1 | docker login --username AWS --password-stdin .dkr.ecr.us-east-1.amazonaws.com
docker tag central-ops-agent:latest .dkr.ecr.us-east-1.amazonaws.com/central-ops-agent-dev:latest
docker push .dkr.ecr.us-east-1.amazonaws.com/central-ops-agent-dev:latest

# Deploy Runtime
cd ../infrastructure
npx cdk deploy -c deployRuntime=true CentralOps-Runtime-dev

部署前端

cd agentcore-gateway/frontend
cp .env.example .env  # Fill in values from stack outputs
npm install && npm run build
./scripts/deploy.sh

可用工具

代理通过网关公开AWS MCP服务器工具:

帐户特定工具(需要Account_id)

  • aws___call_aws -在目标帐户中执行AWS CLI命令
  • aws___list_regions -列出可用的AWS区域

全局工具(无需account_id)

  • aws___search_documentation -搜索AWS文档
  • aws___read_documentation -阅读特定文档页面
  • aws___retrieve_agent_sop -获取AWS任务SOP
  • aws___suggest_aws_commands -获取CLI帮助
  • aws___recommend -获取文档推荐

查询示例

"List all EC2 instances in the production account"
"Search AWS documentation for Lambda best practices"
"Get the SOP for setting up a VPC"
"Show me S3 buckets across all accounts"
"How do I use the aws s3 sync command?"

项目结构

├── README.md                              # This file
├── agentcore-gateway/                     # Main implementation
│   ├── agent/                             # Runtime agent code + Dockerfile
│   ├── frontend/                          # React frontend (Vite + TailwindCSS)
│   ├── infrastructure/                    # CDK TypeScript (7 stacks)
│   │   └── lib/                           # DynamoDB, Cognito, Lambda, Roles, ECR, Gateway, Runtime
│   ├── lambda/                            # Lambda bridge for AWS MCP Server
│   └── tests/                             # Unit tests
├── direct-proxy/                          # Alternative: Local development approach
│   └── README.md                          # Direct proxy documentation
├── ARCHITECTURE_AGENTCOREGATEWAY.md       # Gateway + Lambda architecture details
└── ARCHITECTURE_SECURITY.md               # Enterprise IdP integration guide

添加新帐户

  1. 部署 CentralOpsTargetRole 在会员帐户中:
   aws cloudformation deploy \
     --template-file agentcore-gateway/infrastructure/member-account-role.yaml \
     --stack-name CentralOpsTargetRole \
     --parameter-overrides CentralAccountId= \
     --capabilities CAPABILITY_NAMED_IAM
  1. 添加到DynamoDB注册表:
   aws dynamodb put-item \
     --table-name central-ops-accounts-dev \
     --region us-east-1 \
     --item '{"account_id":{"S":"ACCOUNT_ID"},"name":{"S":"Account Name"},"environment":{"S":"prod"},"enabled":{"BOOL":true}}'

安全

  • 只读访问:所有IAM角色都使用只读权限
  • 跨账户:根据组织条件使用STS假设角色
  • JWT身份验证:基于Cognito的网关和运行时身份验证
  • 审计:CloudTrail记录所有带有用户归因的API调用

文档

文档描述
agentcore网关/README.md详细的网关设置和配置
建筑师\_ GENTCOREGATEWAY.md技术架构深度挖掘
建筑_服务.md企业IdP集成(Okta、Azure AD)
直接代理/README.md替代性地方发展方法

替代方案:直接代理

有关没有AgentCore基础架构的本地开发或更简单的部署,请参阅 直接代理/ 使用的实现 mcp-proxy-for-aws 子流程调用。

参考文献

许可证

该项目根据MIT许可证获得许可。

目录标签

目录标签

PythonClaude云计算AWS管理本地部署多账户操作自动化工具AI代理

支持客户端

Claude

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

oauth

运行时(runtime,运行环境)

Node.js

来源包(packageName,安装包名)

cdk

工具数量(toolCount,工具数)

7

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdiooauth部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP