不只是告警:用阿里云可观测 MCP 实现 AK 高效安全审计

作者:熊芸

一、安全告警:一次 AK 异常访问事件

"滴滴滴--"

凌晨三点,寂静的夜里,运维工程师小王的手机突然响起刺耳的告警声。一个本该在休假、早已被禁用的员工 AccessKey(AK),竟然在生产环境中执行了一系列敏感操作。小王心里一沉,冷汗瞬间冒了出来。是黑客入侵?还是离职员工报复?这个AK是谁?它动了什么?删了什么?造成了多大的损失?

一连串的问题涌上心头。AK 就像是访问宝贵数据资产的钥匙。钥匙一旦失控,后果不堪设想。

二、环境准备:操作审计日志与 MCP 的结合

幸运的是,小王的公司之前通过阿里云可观测云监控 2.0 控制台将操作审计日志投递到了阿里云日志服务,因此每一次云上资源操作会以日志形式进行存储。其中,身份认证相关的操作事件是操作审计的重要组成部分,包含 AccessKey 使用情况、用户身份信息、操作类型等关键数据。

MCP-Server-Aliyun-Observability:是阿里云可观测团队推出的 MCP 服务器,只需要用日常对话的方式向它提问,它就能立刻理解您的意图,并从海量的日志数据中,迅速找到您想要的答案。

(1)MCP 服务器

MCP-Server-Aliyun-Observability 当前版本主要涵盖日志服务 SLS 和应用实时监控服务 ARMS 的功能,支持用户通过自然语言查询 SLS 日志信息和 ARMS 的链路数据,以及获取一些元数据信息。

MCP 服务器有两种工作模式:stdio 模式和 SSE 模式。在 stdio 模式下,大模型客户端直接启动一个 MCP 服务器,通过标准输入输出进行进程间通信来交互。而在 SSE 模式中,MCP 服务器独立启动,并通过暴露的端口供 MCP 客户端连接和交互。

(2)MCP 客户端

常见的 MCP 客户端有 Claude Desktop、Cursor、Cherry Studio,以及与 Cline/Continue 配合使用的 VSCode,本文使用 Cherry Studio 进行排查。

1、如果要以 stdio 模式配置 mcp-server-aliyun-observability,可以在 Cherry Studio 中通过"从 JSON 导入"功能完成。

JSON 配置如下,记得替换具体的 AK 信息:

json 复制代码
{
  "mcpServers": {
    "aliyun_observability": {
      "command": "uvx",
      "args": [
        "mcp-server-aliyun-observability",
        "--access-key-id", "阿里云AKId", 
        "--access-key-secret", "阿里云AKSecret"]
    }
  }
}

2、在对话框中选择已配置好的 MCP 服务器,并选择一个模型(推荐使用阿里云百炼)。这样,您就可以利用 MCP 服务器来分析 SLS 中的日志。如果向模型询问工具后列出了阿里云 SLS 工具,则说明 MCP 服务器配置已成功。

三、实战案例:四种 AK 审计场景

为了让模型能够更精准地理解查询需求,我们需要为它提供详细的"词典"。操作审计日志库以及字段信息如下:

yaml 复制代码
# 日志库信息
- Region: cn-heyuan
- Project: aliyun-product-data-155xxxxx2981-cn-heyuan  
- Logstore: actiontrail_security-actiontrail-1743562654649
# 字段信息
- __topic__: 日志主题,固定为actiontrail_event
- __time__: 事件发生时间
- owner_id: 阿里云账号ID
- event.eventId: 事件ID,每个事件的唯一身份证
- event.eventName: 事件名称,告诉我们具体发生了什么
- event.eventSource: 事件来源
- event.eventType: 事件类型
- event.serviceName: 事件服务名称,标识是哪个云服务
- event.resourceName: 相关资源的唯一标识
- event.resourceType: 相关资源类型
- event.userIdentity.accessKeyId: 使用的AccessKey ID
- event.userIdentity.accountId: 请求账号的ID
- event.userIdentity.principalId: 请求账号的凭证ID
- event.userIdentity.type: 请求账号的类型
- event.userIdentity.userName: 请求账号的名称
- event.errorCode: 事件失败时的错误码
- event.errorMessage: 事件失败的错误信息
- addionalEventData.isMFAChecked: 登录账号是否开启MFA
- addionalEventData.loginAccount: 登录账号

现在,一切准备就绪,小王打开了搭载 MCP 的工具,像聊天一样,开始了他的破案过程。

案例一:追踪可疑 AK 访问记录

小王问:"查一下AK 'LN......7',最近都干了些啥?把它的操作类型、时间都列出来!"

MCP 迅速响应,几秒钟内就给出了答案。原来,这个 AK 在凌晨时分执行了 SLS 项目查询操作。虽然看起来是普通的查询,但在深夜时段的异常活动立即引起了小王的警觉。通过这条线索,安全团队迅速锁定了用户活动轨迹,为后续的深入调查奠定了基础。

原版查询:

案例二:识别高风险操作

小王继续问:"最近一周,有没有人干过删除、更新这种危险操作?把最可疑的用户找出来,告诉我他们的操作的服务和事件名!"

系统报告显示,某个开发人员的 AK 在过去几天内,频繁执行"Delete" 和"Remove"操作,远超正常范围。经过核查,发现是该员工的个人电脑中毒,AK 被恶意软件利用。一场内部信息安全危机被扼杀在摇篮里。

原版查询:

复制代码
统计最近一周疑似的高危操作(例如,资源的删除)频次top2,字段包括服务名、事件名、地域以及出现次数

案例三:监控 Root 账号使用情况

小王还不放心,继续排查:"过去一个月,有没有人用过 Root 账号的 AK?它的每次使用都必须有记录。把使用者和具体操作都给我列出来!"

Root AK 拥有最高权限,是安全审计的重中之重。通过 MCP,小王可以轻松实现对 Root AK 使用的常态化监控,确保这把"万能钥匙"只在最必要、最合规的情况下被使用,杜绝了权限滥用的风险。

原版查询:

复制代码
查询近30天root用户的AK使用情况,包括用户信息和事件名称,并统计次数

案例四:系统活动概况分析

最后,小王想了解整体的系统活动情况:"给我看看最近的云服务访问情况,列出 10 条近期的事件信息!"

通过查看近期的云服务访问事件,小王可以从宏观角度了解系统的整体活动状况,发现异常访问模式,为安全防护提供全面的数据支撑。这种定期的系统健康检查,让任何异常活动都难以逃脱监控的法眼。

原版查询:

复制代码
列出10条近期云服务访问的事件信息

四、总结与展望

凌晨四点,警报解除,风险排除。小王终于松了一口气。借助操作审计 Log 和 MCP,安全审计不再是事后翻阅天书般的日志,而是变成了与智能助手实时对话、主动出击的"探案"过程。

点击此处,查看云监控 2.0 产品详情

相关推荐
PetterHillWater3 小时前
12 MCP Servers的介绍
后端·aigc·mcp
程序员小潘21 小时前
Java开发MCP服务器
mcp
CodeDevMaster1 天前
从零到一:打包并发布你的第一个MCP AI工具服务
mcp
逍岚子1 天前
以官网计算器为例:手把手教你用 TypeScript SDK 开发 MCP Server
llm·agent·mcp
摸着石头过河的石头1 天前
手把手教你入门 MCP:模型上下文协议与 Trae IDE 中的实践
前端·mcp
逍岚子1 天前
新闻搜索 MCP Server 开发秘籍:Python - SDK 携手 SerpApi,融入 Trae 不再难
llm·agent·mcp
一包烟电脑面前做一天2 天前
理解MCP与LLM的协作流程:从困惑到清晰的技术实践
mcp·mcp流程·mcp协作流程
老纪的技术唠嗑局3 天前
手把手教你构建基于魔搭 x OceanBase MCP 的 Agent
agent·mcp
聚客AI3 天前
🎯2025架构革命:图解MCP工具链×MoE推理优化×多智能体协同
人工智能·llm·mcp