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

使用Python Runbook连接Azure Blob容器失败求助

解决Azure Python Runbook访问Blob容器的AuthorizationFailure错误

核心问题分析

错误AuthorizationFailure表明当前请求的身份没有足够权限执行列出Blob的操作,常见原因集中在连接信息无效、身份权限不足、网络限制三类。

1. 验证连接字符串的有效性

  • 确保conn_str不为空,从Azure门户存储账户的访问密钥页面复制完整的连接字符串(包含AccountName和AccountKey),或使用具备list权限的SAS连接字符串。
  • 避免手动输入时出现字符遗漏、空格或大小写错误。

2. 确认容器名称与存在性

  • 容器名称必须完全匹配(Azure Blob容器名称为小写,仅允许字母、数字和短横线,且不能以短横线开头/结尾)。
  • 先在Azure门户确认目标容器确实存在于指定存储账户中。

3. 检查Runbook身份权限(若使用托管身份)

如果自动化账户启用了系统分配/用户分配托管身份,需为该身份配置对应权限:

  • 在Azure存储账户的访问控制(IAM)页面,添加角色分配,选择存储Blob数据读取者(仅需读取权限)或更高权限角色,将身份指定为自动化账户的托管身份。
  • 此时代码应改用DefaultAzureCredential认证,示例:
    from azure.storage.blob import ContainerClient
    from azure.identity import DefaultAzureCredential
    
    # 替换为你的存储账户名和容器名
    storage_account_name = "your-storage-account"
    container_name = "your-container"
    container_url = f"https://{storage_account_name}.blob.core.windows.net/{container_name}"
    
    credential = DefaultAzureCredential()
    container_client = ContainerClient.from_container_url(container_url, credential=credential)
    
    blob_list = container_client.list_blobs()
    for blob in blob_list:
        print(blob.name + '\n')
    

4. 排查存储账户网络限制

  • 若存储账户设置了防火墙和虚拟网络限制,需确保:
    • 自动化账户的出站IP地址已添加到存储账户的允许列表中;
    • 或勾选“允许受信任的Microsoft服务访问此存储账户”选项(适合托管身份场景)。

5. 验证SAS连接字符串的权限(若使用SAS)

如果使用SAS连接字符串,需确保:

  • SAS包含list权限(生成SAS时勾选“列出”权限);
  • SAS处于有效期内,且未被撤销。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 19:35:18