不只是告警:用阿里云可观测 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 产品详情

相关推荐
谷哥的小弟5 分钟前
SQLite MCP服务器安装以及客户端连接配置
服务器·数据库·人工智能·sqlite·大模型·源码·mcp
tyw152 小时前
解决 Trae MySQL MCP 连接失败(Fail to start)
mcp·trae·fail to start·mysql mcp·mcp兼容
谷哥的小弟2 小时前
File System MCP服务器安装以及客户端连接配置
服务器·人工智能·大模型·file system·mcp·ai项目
啊湘21 小时前
vscode 使用 github (适用CURSOR等使用)
ide·vscode·github·cursor·mcp
小小呱呱蛙1 天前
Claude Code 自下而上分析(Slash/Sub Agents/Skills/MCP)带来的启发
agent·claude·mcp
callJJ1 天前
MCP配置与实战:深入理解现代开发工具链
javascript·node.js·vue·mcp·windsurf
谷哥的小弟1 天前
Brave Search MCP服务器安装以及客户端连接配置
搜索引擎·大模型·spring ai·mcp·brave search
太空眼睛1 天前
【MCP】使用SpringBoot基于Streamable-HTTP构建MCP-Client
spring boot·ai·llm·sse·mcp·mcp-client·streamable
kaizq2 天前
AI-MCP-SQLite-SSE本地服务及CherryStudio便捷应用
python·sqlite·llm·sse·mcp·cherry studio·fastmcp
太空眼睛2 天前
【MCP】使用SpringBoot基于Streamable-HTTP构建MCP-Server
spring boot·sse·curl·mcp·mcp-server·spring-ai·streamable