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

Log Ingestion API导入S3至Sentinel:Entra应用必要性及权限咨询

使用Log Ingestion API导入S3数据到Sentinel的权限问题解答

为什么需要Microsoft Entra应用?

Log Ingestion API属于Azure REST API体系,所有调用必须通过Microsoft Entra ID完成身份验证,确保只有授权实体能向指定数据收集规则(DCR)写入数据。你用az login获取的是个人用户令牌,但你的用户账号大概率未被授予DCR所需的Monitoring Data Ingestion Contributor角色,因此触发权限错误。

是否必须创建新的Entra应用?

不是必须,但创建Entra应用(服务主体)是生产环境的最优方案——它属于独立的服务身份,不会和个人用户的权限、生命周期绑定。若你无权限创建或配置Entra应用,可尝试以下替代方案:

替代方案1:提升个人用户权限

请求Azure管理员为你的个人用户账号,在目标DCR的「访问控制(IAM)」中分配Monitoring Data Ingestion Contributor角色。完成后重新执行az login,新获取的令牌将拥有足够权限发送数据。

替代方案2:使用Azure托管身份(适用于Azure内运行的脚本)

如果你的Python脚本部署在Azure资源上(如Azure Function、VM、AKS等),可为该资源启用系统分配/用户分配托管身份,再给这个托管身份分配Monitoring Data Ingestion Contributor角色到目标DCR。脚本可直接通过托管身份自动获取令牌,无需手动管理Entra应用或凭据。

替代方案3:使用管理员创建的服务主体

请求管理员创建一个服务主体(Entra应用)并为其分配DCR的Monitoring Data Ingestion Contributor角色,你只需使用该服务主体的凭据登录Azure CLI:

az login --service-principal -u <客户端ID> -p <客户端密钥> --tenant <租户ID>

之后运行Python脚本即可正常发送数据。

核心注意点

无论采用哪种方案,必须确保身份主体(个人用户、托管身份、服务主体)被授予针对目标DCR的Monitoring Data Ingestion Contributor角色——其他通用角色(如Log Analytics Contributor)无法满足Log Ingestion API的权限要求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 17:03:14