AWS MCP Server 正式 GA:让 AI Agent 安全调用 15000+ AWS API,免费用

起因

前段时间搭了个运维 Agent,想让它帮我做些日常的 AWS 操作——查 EC2 状态、看 CloudWatch 指标、翻一下 S3 对象。

最开始的做法是手写 tool function。每接一个 AWS 服务就写一个工具:describe_instances、get_metric_data、list_objects... 写了两天发现不对劲——AWS 有 200 多个服务,每个服务几十个 API,这写到猴年马月?

5 月 6 号,亚马逊云科技正式发布了 AWS MCP Server(GA)。简单说:一个托管的远程 MCP 服务器,让 AI Agent 通过标准的 MCP 协议安全访问 15000+ AWS API

不用再一个个手写 tool function 了。折腾了一天接上,记录一下。

这东西是什么

MCP(Model Context Protocol)是一个开放协议,定义了 AI Agent 跟外部工具/数据源之间的通信标准。很多 AI 工具都支持——Claude Code、Kiro、Cursor 等。

AWS MCP Server 是亚马逊云科技提供的一个托管远程 MCP 服务器。它暴露了四个核心工具:

1. call_aws

调用任意 AWS API。你不用写 SDK 代码,直接告诉 Agent "帮我看看 us-east-1 的 EC2 实例状态",Agent 通过 call_aws 工具就能调 DescribeInstances API。

覆盖 15000+ AWS API。

2. search_documentation

搜索 AWS 官方文档。Agent 碰到不确定的事情可以先查文档再操作。

3. read_documentation

读取特定文档页面。跟 search 配合用——先搜到相关文档,再读具体内容。

4. run_script

在沙箱环境里跑 Python 脚本。处理 call_aws 返回的数据、做计算、生成报告。

架构和安全

IAM SigV4 认证

MCP Server 不是裸跑的。所有调用通过 mcp-proxy-for-aws 代理,走 IAM SigV4 签名认证。

Agent(Claude Code / Kiro / Cursor)
    ↓ MCP 协议
mcp-proxy-for-aws(本地代理)
    ↓ SigV4 签名
AWS MCP Server(远程托管)
    ↓ IAM 权限控制
AWS API(EC2 / S3 / CloudWatch / ...)

你给 IAM 角色什么权限,Agent 就能做什么。最小权限原则照样适用

CloudTrail 审计

每次 Agent 通过 MCP Server 调用的 AWS API 都会记录到 CloudTrail。谁的 Agent、什么时候、调了什么 API——全有记录。

CloudWatch 监控

MCP Server 的调用指标自动上报 CloudWatch。可以设告警:Agent 调用量异常增长、错误率升高等。

上手步骤

1. 安装 mcp-proxy-for-aws

这是一个本地代理,负责 SigV4 签名和 MCP 协议转换:

# 通过 pip 安装
pip install mcp-proxy-for-aws

# 或者直接用 GitHub 上的预编译包
# https://github.com/aws/mcp-proxy-for-aws

2. 配置 IAM 权限

给你的 IAM 用户/角色配置权限。建议按需给:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "ec2:Describe*",
        "cloudwatch:GetMetricData",
        "s3:ListBucket",
        "s3:GetObject"
      ],
      "Resource": "*"
    }
  ]
}

别给 *:*。Agent 有了 AWS API 访问能力后,权限控制更重要了。

3. 在 MCP 客户端中配置

以 Claude Code 为例:

{
  "mcpServers": {
    "aws": {
      "command": "mcp-proxy-for-aws",
      "args": ["--region", "us-east-1"],
      "env": {
        "AWS_PROFILE": "your-profile"
      }
    }
  }
}

Kiro、Cursor 等其他 MCP 兼容客户端配置类似。

4. 开始用

配置完之后,你的 AI Agent 就能直接操作 AWS 了:

你:帮我看看 us-east-1 有多少台运行中的 EC2 实例

Agent:[调用 call_aws: ec2.DescribeInstances]
       当前 us-east-1 有 12 台运行中的 EC2 实例...

你:CPU 使用率超过 80% 的有哪些?

Agent:[调用 call_aws: cloudwatch.GetMetricData]
       有 3 台 CPU 使用率超过 80%:
       - i-0abc123: 92%
       - i-0def456: 85%
       - i-0ghi789: 81%

Agent 会自动选择合适的 AWS API 调用。不需要你记 API 名称。

Agent Skills(从 SOPs 升级)

之前亚马逊云科技有个 Agent SOPs(标准操作流程)的概念。现在升级为 Skills

Skills 本质是预定义的操作模板——比如"检查 EC2 健康状态"、"分析 CloudWatch 日志"。Agent 可以根据用户意图自动匹配合适的 Skill 执行。

区别在于 Skills 更灵活:不是死板的脚本流程,Agent 可以根据上下文调整执行策略。

实际用起来的感受

跑了一周,说说真实体验:

好的地方

  1. 省了大量代码。之前每接一个 AWS 服务都得写 tool function,现在一个 MCP Server 搞定所有。
  2. Agent 自己会查文档。不确定的时候它会先 search_documentation 看一下怎么操作。比之前胡猜强。
  3. 沙箱脚本很实用。查完数据后用 run_script 做简单处理——排序、过滤、聚合——不用切回终端自己写。

注意的地方

  1. 权限真的要控好。Agent 能调 15000+ API,如果 IAM 权限太宽,它真的可能做出你不想要的操作。最小权限原则必须严格执行。
  2. Region 限制。目前只支持 us-east-1 和 eu-central-1 两个 Region。其他 Region 要等后续支持。
  3. 免费但有间接成本。MCP Server 本身免费,但 Agent 调用的 AWS API 正常计费。比如调了 100 次 DescribeInstances,按 EC2 API 计费。

支持的 MCP 客户端

只要支持 MCP 协议的工具都能用:

  • Claude Code
  • Kiro(亚马逊云科技的 AI IDE)
  • Cursor
  • 其他 MCP 兼容客户端

配置方式大同小异——都是在 MCP 配置文件里指定 mcp-proxy-for-aws 命令。

跟直接写 boto3 代码的区别

对比项 直接用 boto3 AWS MCP Server
开发方式 手写每个 API 调用 Agent 自动选择 API
覆盖范围 需要逐个接入 15000+ API 开箱即用
灵活性 完全控制 Agent 决策
适用场景 确定性操作 探索性/运维/问答
安全模型 代码控制 IAM + MCP 层

两者不互斥。确定性的自动化流程(CI/CD pipeline)用 boto3 写死逻辑。探索性的运维操作("帮我排查这个问题")用 MCP Server 让 Agent 灵活处理。

参考链接

总的来说,AWS MCP Server 解决了一个很实际的问题:Agent 接入 AWS 服务的开发成本。不用再一个个手写 tool function 了,一个 MCP Server 搞定 15000+ API。加上 IAM 权限控制和 CloudTrail 审计,安全性也有保障。免费用,只付底层 AWS 资源的费用。

posted @ 2026-05-18 20:04  亚马逊云开发者  阅读(23)  评论(0)    收藏  举报