亚马逊AWS官方博客

将 AWS DevOps Agent 智能运维能力延伸到中国区

摘要:AWS DevOps Agent 是 AI 驱动的智能运维助手,但目前仅在 AWS Commercial 分区(aws 分区)可用,不支持中国区(aws-cn 分区)。本文介绍一种基于 MCP(Model Context Protocol)协议的桥接方案,通过在 Commercial 分区部署 MCP Server 作为中间层,实现 DevOps Agent 对中国区资源的跨分区运维管理。


一、引言

AWS DevOps Agent 是一款 AI 驱动的全天候智能运维助手。它能够自动响应告警、排查故障根因、生成修复建议,并持续评估系统可靠性以预防事故。对于运维团队而言,DevOps Agent 意味着更快的 MTTR(平均恢复时间)和更少的凌晨被叫醒。

然而,DevOps Agent 目前仅在 Commercial 分区的 6 个 Region 提供服务。值得注意的是,Agent Space 具备跨 Region 监控能力——即使在 us-east-1 创建 Agent Space,也可以管理同一分区内任意 Region 的资源(例如香港 ap-east-1)。但这种跨 Region 能力仅限于同一分区内;对于 AWS 中国区(aws-cn 分区),由于分区隔离的硬约束,DevOps Agent 无法直接访问。

本文将介绍一种经过验证的桥接方案:通过 MCP 协议,让运行在 Commercial 分区的 DevOps Agent 能够远程管理中国区资源——无需等待服务正式落地中国区。

二、为什么不能直接用?—— 分区隔离约束

在探讨解决方案之前,有必要理解为什么”简单地把 Agent 指向中国区”这条路走不通。

2.1 分区是硬边界

AWS Commercial 分区(aws 分区)和 AWS 中国分区(aws-cn 分区)是两个完全独立的 partition。这意味着:

  • IAM 信任策略不能跨分区建立:你无法在 aws-cn 的 IAM Role 中信任一个 aws 分区的 Principal。尝试这样做会直接失败(CREATE_FAILED)。
  • DevOps Agent 的 Secondary Account 机制依赖跨账号 AssumeRole:这是 Agent 管理多账号资源的标准方式,但对 aws-cn 分区物理不可行。
  • IAM Roles Anywhere 解决不了根本问题:它能简化凭证管理(用证书替代长期 AK/SK),但不能让 DevOps Agent 直接调用 aws-cn 的 API endpoint。API 调用路径仍然需要桥接。

简言之,这不是一个配置问题,而是架构层面的硬约束。我们需要一个”中间人”来跨越这道边界。

三、方案选型:MCP 协议桥接

3.1 什么是 MCP

MCP(Model Context Protocol) 是一个标准化的协议,定义了 AI Agent 与外部工具之间的通信方式。你可以把它理解为 AI Agent 世界的”USB 接口”——任何遵循 MCP 协议的工具(MCP Server)都可以被 Agent(MCP Client)即插即用。

3.2 为什么选择 MCP 桥接

DevOps Agent 原生支持作为 MCP Client 连接外部 MCP Server:

  • 支持 Streamable HTTP transport
  • 支持多种认证方式(OAuth 2.0、API Key、Bearer Token)
  • 提供工具白名单机制,可精确控制暴露哪些能力

这意味着我们可以部署一个 MCP Server,让它:

1. 对外暴露标准 MCP 接口给 DevOps Agent

2. 对内使用 aws-cn 凭证调用中国区 API

Agent 自身不需要持有中国区凭证,只需要知道如何与 MCP Server 通信。

3.3 选择 awslabs/aws-api-mcp-server

我们选择 AWS 官方维护的 awslabs/aws-api-mcp-server 作为 MCP Server 实现,原因是:

特性 价值
call_aws 单工具设计 一个工具覆盖所有 AWS CLI 命令,无需为每个服务单独注册
suggest_aws_commands 根据自然语言推荐 CLI 命令,覆盖模型知识截止后的新 API
READ_OPERATIONS_ONLY 内置只读保护,比对 Service Authorization Reference 自动拦截写操作
REQUIRE_MUTATION_CONSENT 写操作需用户确认,支持渐进式开放权限
官方维护 持续更新,安全性有保障

3.4 认证方案:ALB Header API Key

一个需要解决的问题是认证。aws-api-mcp-server 在 Streamable HTTP 模式下 AUTH_TYPE 仅支持 oauthno-auth,不支持原生 API Key 认证。

3.4.1 我们的解法是认证下沉到 ALB

  • MCP Server 自身设为 AUTH_TYPE=no-auth
  • 在 ALB Listener Rule 中匹配 X-API-Key header
  • 匹配成功 → 转发到 MCP Server;不匹配 → 返回 401 Unauthorized
  • DevOps Agent 注册时使用 API Key 方式,header 自动附加 X-API-Key

这种方式简单、可靠,且不引入额外的认证基础设施(如 Cognito)。

四、架构设计

4.1 整体架构

4.2 数据流

  1. 用户在 DevOps Agent 控制台提问(如”查一下 cn-north-1 有哪些运行中的 EC2″)
  2. Agent 决定调用 MCP Server 的 call_aws 工具
  3. 请求经 ALB(校验 API Key)转发到 EC2 上的 MCP Server
  4. MCP Server 使用本地 aws-cn profile 的凭证,执行 aws ec2 describe-instances --region cn-north-1
  5. 结果沿原路返回,Agent 解析并以自然语言呈现给用户

4.3 部署位置与凭证方案

本文方案将 MCP Server 部署在 Commercial 分区(us-east-1),通过 IAM Roles Anywhere 获取中国区临时凭证,优先保障快速验证和 DevOps Agent 连接稳定性。生产环境中,建议根据安全合规要求选择以下凭证方案:

维度 IAM Roles Anywhere(MCP Server 部署在 Commercial 分区) EC2/ECS Role(MCP Server 部署在中国区)
凭证类型 临时凭证(STS,默认 1 小时 TTL) 自动轮转,无需管理
凭证是否出境 是(临时凭证在 Commercial 分区侧使用) 否(凭证不离开中国区)
额外依赖 PKI 基础设施(CA、证书签发、CRL 吊销)
网络路径 Agent → Commercial 分区 MCP Server(稳定)→ 跨境 → aws-cn API Agent → 跨境 → 中国区 MCP Server → aws-cn API(本地调用)
域名与证书 ACM 自动管理 中国区需自行管理证书(ICP 备案视情况而定)
运维复杂度 中(需维护证书生命周期) 低(IAM Role 原生集成)
适合场景 不方便迁移 MCP Server,但需消除长期凭证 合规要求高,或中国区已有成熟基础设施

五、关键实现步骤

5.1 部署 MCP Server

在 EC2 上安装并启动 awslabs/aws-api-mcp-server

# 安装 uvPython 包管理工具)

curl -LsSf https://astral.sh/uv/install.sh | sh
# 安装 IAM Roles Anywhere credential helper
curl -LsSf https://rolesanywhere.amazonaws.com/releases/1.1.1/X86_64/Linux/aws_signing_helper \
  -o /usr/local/bin/aws_signing_helper
chmod +x /usr/local/bin/aws_signing_helper
# 通过 uvx 启动 MCP Server(或配置为 systemd 服务)
uvx awslabs.aws-api-mcp-server@latest

以 systemd 服务形式运行时,完整配置如下:

[Unit]
Description=AWS API MCP Server (aws-cn bridge)
After=network-online.target
Wants=network-online.target
[Service]
Type=simple
User=root
Environment="HOME=/home/ec2-user"
Environment="PATH=/root/.local/bin:/usr/local/bin:/usr/bin:/bin"
Environment="AWS_API_MCP_TRANSPORT=streamable-http"
Environment="AWS_API_MCP_HOST=0.0.0.0"
Environment="AWS_API_MCP_PORT=8000"
Environment="AWS_API_MCP_ALLOWED_HOSTS=your-mcp-server.example.com"
Environment="AWS_API_MCP_ALLOWED_ORIGINS=*"
Environment="AWS_API_MCP_PROFILE_NAME=cn-profile"
Environment="READ_OPERATIONS_ONLY=true"
Environment="AUTH_TYPE=no-auth"
Environment="AWS_CONFIG_FILE=/home/ec2-user/.aws/config"
ExecStart=/root/.local/bin/uvx awslabs.aws-api-mcp-server@latest
Restart=on-failure
RestartSec=5
StandardOutput=append:/var/log/mcp-cn-bridge.log
StandardError=append:/var/log/mcp-cn-bridge.log
[Install]
WantedBy=multi-user.target

MCP Server 通过 boto3 的 credential_process 机制获取中国区临时凭证。具体流程是在 ~/.aws/config 中配置 IAM Roles Anywhere credential helper

[profile cn-profile]
region = cn-north-1
credential_process = /usr/local/bin/aws_signing_helper credential-process \
  --certificate /home/ec2-user/.aws/roles-anywhere/client.crt \
  --private-key /home/ec2-user/.aws/roles-anywhere/client.key \
  --trust-anchor-arn <your-trust-anchor-arn> \
  --profile-arn <your-profile-arn> \
  --role-arn <your-role-arn> \
  --endpoint https://rolesanywhere.cn-north-1.amazonaws.com.cn \
  --region cn-north-1

其中中国区侧需要预先创建以下资源(参考 IAM Roles Anywhere Getting Started):

1. Trust Anchor — 绑定你的 CA 证书(自签 CA 或 ACM Private CA)

2. IAM Role — 信任 rolesanywhere.amazonaws.com,附加只读权限

3. Profile — 关联 IAM Role,设置凭证有效期(如 3600 秒)

客户端证书和私钥由 aws_signing_helper 使用,每次被 boto3 调用时向中国区 IAM Roles Anywhere 换取临时 STS 凭证(默认 1 小时 TTL,过期自动刷新)。

5.1.1 需要注意的坑

问题 原因 解决方式
ProfileNotFound systemd 默认 HOME=/,读不到用户目录的 config(含 credential_process) 显式设置 HOMEAWS_CONFIG_FILE
Invalid Host header (400) MCP Server 对 Host header 做白名单校验 设置 AWS_API_MCP_ALLOWED_HOSTS 为你的域名
ALB 健康检查失败 MCP Server 没有 /health 端点 健康检查路径改为 /mcp,matcher 设为 406
uvx: not found systemd PATH 不含 ~/.local/bin 在 service unit 中显式设置完整 PATH

5.2 配置 ALB 认证

ALB Listener Rule 配置:
  Priority 10:
    Condition: HTTP Header X-API-Key == <your-api-key>
    Action: Forward to Target Group
  Default:
    Action: Fixed Response 401 "Unauthorized"
  • ALB Security Group 仅放行 DevOps Agent 出口 IP,拒绝其他来源访问
  • 使用 ACM 管理 HTTPS 证书(your-mcp-server.example.com
  • Route 53 A 记录指向 ALB alias

5.3 注册到 DevOps Agent

通过 CLI 完成注册:

5.3.1 Step 1:注册 MCP Server

aws devops-agent register-service \
  --service mcpserver \
  --service-details '{
    "mcpserver": {
      "name": "aws-cn-bridge",
      "endpoint": "https://your-domain.example.com/mcp",
      "description": "Bridge to AWS China via MCP",
      "authorizationConfig": {
        "apiKey": {
          "apiKeyName": "api-key",
          "apiKeyValue": "<your-api-key>",
          "apiKeyHeader": "X-API-Key"
        }
      }
    }
  }' \
  --name "aws-cn-bridge" \
  --region us-east-1

5.3.2 Step 2:关联到 Agent Space

aws devops-agent associate-service \
  --agent-space-id <your-agent-space-id> \
  --service-id <service-id-from-step-1> \
  --configuration '{
    "mcpserver": {
      "tools": ["call_aws", "suggest_aws_commands"]
    }
  }' \
  --region us-east-1

⚠️ 重要提示:

执行 register-service 前,MCP Server 必须已启动且可达。DevOps Agent 会在注册时尝试连接验证,否则报 ValidationException。

也可以通过 DevOps Agent 控制台完成同样的操作:在 Capability Providers → MCP Server → Register 中填入 endpoint 和 API Key 信息,然后在 Agent Space 中添加该 MCP Server 并勾选需要暴露的工具。

六、安全设计

本方案的安全保障分为多个层次:

措施
网络 ALB Security Group 仅允许 DevOps Agent 出口 IP(AWS 官方公布的固定 IP 列表)
认证 ALB Listener Rule 匹配 X-API-Key header,不匹配直接返回 401
凭证存储 客户端证书+私钥存储在 Secrets Manager,通过 IAM Roles Anywhere 获取临时凭证
权限控制 MCP Server 启用 READ_OPERATIONS_ONLY;中国区 IAM Role 遵循最小权限原则
审计 MCP Server 每次调用记录结构化日志,可对接 CloudWatch Logs

6.1 关于数据合规

需要注意:中国区资源的数据(如 EC2 实例信息、CloudWatch 指标等)会通过 Agent 流转到 Commercial 分区的 Bedrock 模型进行推理。如果你的场景涉及敏感数据,需评估是否符合数据出境合规要求。在只读模式下,流转的主要是元数据和监控指标,通常不涉及业务数据本身。

七、效果验证

部署完成后,在 DevOps Agent 控制台发起对话:

用户:查一下 cn-north-1 有哪些运行中的 EC2 实例

Agent 的执行链路:

1. 理解意图 → 决定调用 call_aws 工具

2. 生成命令:aws ec2 describe-instances –region cn-north-1 –filters Name=instance-state-name,Values=running

3. 通过 MCP Server 执行,获取结果

4. 以自然语言呈现实例列表(Instance ID、类型、启动时间等)

整个过程对用户透明——你只需用自然语言提问,Agent 自动处理跨分区的复杂性。

7.1 关于计费

DevOps Agent 按 agent-second 计费($0.0083/秒),仅在 Agent 活跃工作时产生费用。新客户有 2 个月免费试用额度。此外,Enterprise Support 客户可享受高达 75% 的 Support 费用抵扣。详情参考 DevOps Agent 定价页面

八、总结

通过 MCP 协议桥接,我们实现了一条可行的路径:让 AWS DevOps Agent 跨越分区隔离,管理中国区资源。核心思路是利用 DevOps Agent 原生的 MCP Client 能力,在 Commercial 分区部署一个 MCP Server 作为”翻译层”,将 Agent 的指令转化为对 aws-cn API 的调用。

这个方案适合以下场景:

  • 在中国区运行核心业务,同时希望利用 DevOps Agent 的 AI 运维能力
  • 需要统一的运维入口管理 Commercial 分区和中国区资源
  • 希望在 DevOps Agent 正式支持中国区之前,提前获得 AI 运维体验

➡️ 下一步行动:

参考资源:

相关产品:

相关文章:

*前述特定亚马逊云科技生成式人工智能相关的服务目前在亚马逊云科技海外区域可用。亚马逊云科技中国区域相关云服务由西云数据和光环新网运营,具体信息以中国区域官网为准。

本篇作者

潘雷鸣

亚马逊云科技解决方案架构师。负责基于云计算方案架构的咨询和设计,同时致力于容器相关服务在国内的应用和推广。在加入亚马逊云科技之前,拥有多年外企售前经验,在传统网络架构的性能和安全方面有丰富的实践经验。


AWS 架构师中心:云端创新的引领者

探索 AWS 架构师中心,获取经实战验证的最佳实践与架构指南,助您高效构建安全、可靠的云上应用