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

使用Python创建Azure自定义日志遇认证错误求助

解决Azure自定义日志Ingestion API认证权限错误

The authentication token provided does not have access to ingest data for the data collection rule with immutable Id 'dcr-xxxxxxxxxxx' PipelineAccessResult: AccessGranted: False, IsRbacPresent: False, IsDcrDceBindingValid: , DcrArmId: /subscriptions/59xxxx/resourceGroups/DevStack/providers/Microsoft.Insights/dataCollectionRules/hlgcustomlogrule, Message: Required autorization action was not found for tenantId 82xxxx objectId xxxxx on resourceId /subscriptions/59xxxxx/resourceGroups/DevStack/providers/Microsoft.Insights/dataCollectionRules/hlgcustomlogrule ConfigurationId: dcr-xxxx..
Code: OperationFailed

问题核心

错误明确指向RBAC权限未配置:用于认证的身份(对应错误中的objectId)未被授予访问目标Data Collection Rule(DCR)的数据摄入权限,IsRbacPresent: False也验证了这一点。

解决方案

1. 为目标身份分配RBAC权限

针对DCR资源hlgcustomlogrule,给错误信息中提到的objectId对应的身份(服务主体、用户或托管标识)分配以下权限之一:

  • 内置角色:Monitoring Data Ingestion(遵循最小权限原则,推荐使用)
  • 自定义角色:包含Microsoft.Insights/dataCollectionRules/ingest/action动作的自定义角色

分配操作步骤:

  • 进入Azure门户,找到目标DCR资源
  • 切换到「访问控制(IAM)」页面
  • 点击「添加角色分配」
  • 搜索并选择「Monitoring Data Ingestion」角色
  • 添加对应错误中objectId的目标身份
  • 保存角色分配

2. 确认认证身份匹配

检查代码中credential对应的身份是否与分配权限的身份一致:

  • 若使用服务主体,确认client ID对应的objectId与错误信息中的xxxxx匹配
  • 若使用用户账户,确认当前登录用户的objectId正确
  • 若使用托管标识,确认标识的objectId无误

3. 等待权限生效

RBAC权限分配后通常需要1-5分钟生效,等待后重新测试代码

代码额外修正点

upload方法的logs参数要求传入日志列表,而非单个字典,否则会引发其他错误。修正后的代码片段:

# 发送数据到DCR端点所需信息
dce_endpoint = "https://myendpoint.ingest.monitor.azure.com" # 数据收集端点的Ingestion地址
dcr_immutableid = "dcr-xxxxx" # 数据收集规则的immutableId
stream_name = "Custom-xxxx_CL" # DCR中对应目标表的流名称

client = LogsIngestionClient(endpoint=dce_endpoint, credential=credential, logging_enable=True)
time_generated = datetime.now().strftime('%Y-%m-%d %H:%M:%S') 
body = {
    "TimeGenerated": time_generated,
    "UserName": "Tester Two",
    "UserId": "tester02@companyone.com",
    "Description": "Exported confidential data"
}
# 修正:logs参数传入列表形式
client.upload(rule_id=dcr_immutableid, stream_name=stream_name, logs=[body])

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 16:02:45