随着 AWS 基础设施的扩展,运维工作流程自然变得更加复杂。SRE 和 DevOps 工程师需要花费大量时间在 AWS 管理控制台、CLI 文档和多个服务仪表板之间切换上下文。他们手动将业务问题转换为正确的 API 语法,跨服务链式调用,并为每个新用例重建相同的集成模式。这种摩擦会随着时间的推移而加剧。事件调查需要在不同界面之间交叉引用 Amazon CloudWatch 日志、Amazon EC2 实例状态和 IAM 策略。容量规划意味着手动查询多个服务并汇总结果。安全审计要求一致、可重复的 API 调用序列,而从零开始编写脚本耗时且费力。
本文展示了如何使用支持模型上下文协议(MCP)的 Amazon Bedrock AgentCore Runtime,通过 AWS API MCP 服务器将 Amazon Quick 与 AWS 服务连接起来,创建一个可以将自然语言翻译成 AWS CLI 命令的对话式 AI 助手,而无需在关键时刻切换工具。
解决方案概述
使用 Amazon Bedrock AgentCore Runtime 和 MCP 支持,自然语言查询可以直接转换为 AWS API 调用。您可以询问“显示 us-east-1 中所有正在运行的 EC2 实例”,并立即获得准确的结果,无需在工具之间切换或记住 API 语法。您的请求在您现有的 IAM 权限内安全运行,并具有完整的 Amazon CloudWatch 审计线索以确保合规。无需为每个工作流重建连接逻辑,您可以通过单一的可重用集成标准化 AI 代理与 AWS 服务的交互方式。
日常操作的工作流程如下:
- 您用自然语言提出问题,例如“显示 us-east-1 中正在运行的 EC2 实例”。
- Amazon Quick 自定义代理解释您的意图。
- Amazon Cognito 对请求进行身份验证:Quick 使用 OAuth 2.0 客户端凭证流程从您的 Amazon Cognito 用户池获取 JWT 令牌。
- 代理连接到 AWS API MCP 服务器:经过身份验证的请求到达 Amazon Bedrock AgentCore Runtime,该运行时针对您的 Cognito 身份提供者配置验证 JWT 令牌。
- AgentCore Runtime 授权并路由请求:在验证您的 Cognito 令牌后,AgentCore Runtime 安全地调用在容器化环境中运行的 AWS API MCP 服务器。
- MCP 服务器翻译您的请求:您的自然语言查询被转换为适当的 AWS CLI 命令。
- AWS 服务执行命令:使用您配置的 IAM 执行角色,该命令以最低权限运行。
- 结果以可读格式返回:无需 CLI 语法,直接在 Quick 界面中获得结构化、可读的结果。
先决条件
要遵循本文,您需要满足以下条件:
- 具有管理访问权限的 AWS 账户
- Amazon Quick Enterprise 订阅(专业级最低)
- 访问 AWS Marketplace 中的 AWS API MCP 服务器
- IAM 权限以创建 Amazon Cognito 用户池、IAM 角色和策略、Amazon Bedrock AgentCore Runtime 代理和 Amazon CloudWatch 日志组
- 已安装并配置 AWS CLI
- 基本了解 IAM 角色和策略
- 熟悉 OAuth 2.0 身份验证流程
- 理解 JWT 概念
- 预计完成时间:30-45 分钟
- 预计每月成本:对于每月大约 500 次查询的企业用户,预计成本约为每月 292 美元(主要来自 Amazon Quick 企业订阅,每月 40 美元/用户,以及基础设施费用,每月 250 美元/账户)。
设置解决方案
手动部署
要实现该解决方案,请完成以下步骤:
- 设置 Amazon Cognito 用户池:用于身份验证。创建具有唯一应用程序名称和“机器到机器”应用程序类型的用户池。当您创建带有机器到机器应用程序的 Cognito 用户池时,Cognito 会自动为您的应用程序创建一个资源服务器。进入品牌标识并添加“写入”范围,并更新描述。
- 创建 IAM 角色:用于授权。为 Amazon Bedrock AgentCore Runtime 创建信任策略和执行角色。信任策略允许 bedrock-agentcore.amazonaws.com 服务承担角色。执行角色包括对 ECR 映像、CloudWatch 日志、X-Ray 跟踪等的权限。此外,附加的权限策略定义了要执行的操作(例如,列出 S3 存储桶、描述 EC2 实例)。注意:初始设置使用通配符可能违反最小权限原则,生产部署时应替换为特定资源 ARN。
- 创建 Amazon Bedrock AgentCore Runtime 代理:从 Amazon AgentCore 菜单中选择“运行时”,然后选择“主机/代理工具”。提供唯一的运行时代理名称。对于代理来源,选择 ECR 容器选项并输入 AWS Marketplace 中的映像 URI。在权限部分,选择上一步创建的现有角色。在入站身份验证部分,选择 MCP 协议和 JWT 令牌作为入站身份验证类型。使用现有的身份提供者配置(即 Cognito 身份池)。从 Cognito 用户池获取发现 URL(格式:https://cognito-idp.REGION.amazonaws.com/POOL_ID/.well-known/openid-configuration)。添加允许的客户端 ID。在高级配置下,保留默认网络模式。
- 在 Amazon Quick 中配置集成:在 Amazon Quick 中,添加集成以连接 AWS API MCP 服务器。您需要提供 AgentCore Runtime 的端点 URL 和从 Cognito 获取的 JWT 令牌。
- 在 Amazon Quick 中创建自定义聊天代理:利用现有的 Amazon Quick 聊天功能,创建自定义代理,使用 MCP 集成来处理用户查询。
总结
通过将 Amazon Bedrock AgentCore Runtime 与 MCP 集成,您可以构建一个强大的 AI 助手,将自然语言转换为 AWS CLI 命令,简化日常运维、故障排除和审计任务。该解决方案利用 Amazon Cognito 进行安全身份验证,利用 IAM 进行细粒度授权,并利用 Amazon CloudWatch 进行审计跟踪,确保合规性和可扩展性。