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

Azure ML私有工作区访问私有存储账户SAS请求403禁止访问问题

Azure ML工作区专用终结点下存储账户访问403问题排查与解决方案

环境配置

  • Azure机器学习(AML)工作区已配置专用终结点
  • 关联存储账户同样配置专用终结点,且禁用公共访问,网络配置如下:
    存储账户网络配置

问题现象

从门户启动AML工作区后,多数功能正常,但某API调用返回403 Forbidden错误:

https://0121921-12012191-12121.workspace.eastus2.api.azureml.ms/notebook/v2.0/subscriptions/<sub-ib>/resourceGroups/<rg>/providers/Microsoft.MachineLearningServices/workspaces/<aml-name>/storage/sasurl?expirationInMinutes=60&containerId=391ff5ac-6576-460f-ba4d-7e03433c68b6

错误响应详情:

{
  "error": {
    "code": "UserError",
    "severity": null,
    "message": "Request authorization to storage account failed. Storage account might be behind a VNET.",
    "messageFormat": null,
    "messageParameters": null,
    "referenceCode": null,
    "detailsUri": null,
    "target": null,
    "details": [],
    "innerError": {
      "code": "ForbiddenError",
      "innerError": null
    },
    "debugInfo": null,
    "additionalInfo": null
  },
  "correlation": {
    "operation": "c738a5a6cc2342328058bc3ad77a9520",
    "request": "1946a6fcdffd7236"
  },
  "environment": "eastus2",
  "location": "eastus2",
  "time": "2024-07-08T07:17:00.8941898+00:00",
  "componentName": "notebook-instance",
  "statusCode": 403
}

核心疑惑

从错误信息可推断AML无法访问存储账户生成SAS令牌,但AML与存储账户的多数集成已通过RBAC处理,且已配置正确角色,计算资源、笔记本均正常工作,仅该API调用失败,不解为何该服务需要SAS令牌。

已尝试的无效操作

  • 将AML实例直接添加到存储账户的网络允许列表(资源实例)
  • 添加访问AML所用设备的公网IP到存储账户网络允许列表

此外,已启用存储账户(账户级)诊断日志,但未找到SAS令牌生成相关的失败请求日志,无法获取来源IP添加白名单。

合规解决方案建议

  1. 验证专用终结点的网络连通性

    • 确认AML工作区的专用终结点与存储账户的专用终结点处于同一VNet或通过对等互连的VNet中,确保没有网络安全组(NSG)或防火墙规则阻止两者之间的流量。
    • 检查存储账户的专用终结点DNS配置是否正确,确保AML服务能通过专用终结点解析存储账户的私有IP。
  2. 配置AML服务托管标识权限

    • 确保AML工作区的系统托管标识拥有存储账户的Storage Account Contributor或Storage Blob Data Contributor角色,该标识需要权限生成SAS令牌。
    • 若使用用户托管标识,需确认该标识已被AML工作区关联,并拥有对应的存储账户权限。
  3. 检查存储账户的私有端点策略

    • 确认存储账户的私有端点是否允许来自AML工作区所在VNet的流量,可在存储账户的网络配置中,检查“允许的虚拟网络”是否包含AML工作区的VNet(即使已配置专用终结点,部分场景仍需显式添加)。
  4. 启用AML工作区的虚拟网络注入

    • 若AML工作区未配置虚拟网络注入,考虑将工作区注入到与存储账户相同的VNet中,确保服务内部流量完全在VNet内传输,避免依赖公共网络。
  5. 排查笔记本服务的流量路径

    • 该API来自notebook-instance组件,需确认笔记本服务的流量是否通过专用终结点访问存储账户,而非尝试公共访问。可检查AML工作区的网络隔离设置,确保笔记本服务启用了VNet隔离。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 11:05:13