You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Log Analytics查询容器与Blob的创建/删除操作人

Azure存储容器/Blob操作及操作人查询方案

为什么看不到容器创建者?

当操作是通过存储账户密钥或共享访问签名(SAS)执行时,StorageBlobLogs中的Identity字段不会填充具体操作人信息,只有通过Azure AD身份验证(比如用户账户、服务主体)执行的操作,才会在该字段记录操作人的身份标识。

容器与Blob增删操作查询语句

以下语句可筛选目标存储账户的容器创建/删除、Blob创建/删除操作,并尽可能提取操作人信息:

StorageBlobLogs
where AccountName =~ 'tester1234567'
  and OperationName in~ ('CreateContainer', 'DeleteContainer', 'PutBlob', 'DeleteBlob')
project
  操作时间 = TimeGenerated,
  存储账户名 = AccountName,
  操作类型 = OperationName,
  容器名 = ContainerName,
  Blob名称 = iff(OperationName in~ ('PutBlob', 'DeleteBlob'), ObjectKey, ''),
  操作人 = case(
    isnotempty(Identity), Identity,
    isnotempty(CallerIpAddress), strcat('IP地址: ', CallerIpAddress),
    '未知(使用账户密钥/SAS执行)'
  ),
  请求状态码 = StatusCode,
  请求ID = RequestId

语句说明

  • OperationName筛选了核心操作:容器创建(CreateContainer)、容器删除(DeleteContainer)、Blob创建(PutBlob)、Blob删除(DeleteBlob)
  • Blob名称仅在Blob操作时从ObjectKey字段提取,容器操作时留空
  • 操作人字段分三种情况展示:
    1. Azure AD身份操作:直接显示Identity字段中的用户/服务主体标识
    2. 密钥/SAS操作:显示调用者的IP地址,并标注操作方式
    3. 其他未知情况:显示通用提示

额外提示

如果需要获取更详细的Azure AD操作人信息(比如用户名),需确保存储账户的Azure AD身份验证日志也已同步到Log Analytics。若要确保每次操作都能记录明确操作人,建议禁用存储账户密钥和SAS,强制所有操作通过Azure AD身份验证执行。

内容的提问来源于stack exchange,提问作者sysadmincrispy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 19:35:21