Azure Front Door Premium跨订阅及租户Private Link连接存储Blob问题
错误原因定位
你遇到的LinkedAuthorizationFailed错误,核心是跨租户访问的权限链不完整:仅配置AD跨租户访问不足以让源租户的AFD访问目标租户的存储资源,还需要目标订阅的权限授予+CLI命令的租户参数指定。
一、目标订阅(sub2)权限配置
在sub2的Azure门户或CLI中,给源租户(sub1的租户ID)的操作主体(执行CLI的用户/AFD服务主体)授予以下权限(作用范围选存储账户所在资源组或订阅):
- Storage Account Contributor:允许读取存储账户信息、管理私有链接关联
- Private Link Resource Contributor:用于私有链接资源的审批与管理
如果需要最小权限,至少包含以下操作权限:Microsoft.Storage/storageAccounts/readMicrosoft.Storage/storageAccounts/privateEndpointConnectionsApproval/actionMicrosoft.Network/privateEndpoints/read
二、跨租户访问设置补全
之前的配置存在遗漏,需双向配置:
- 在sub2的AD跨租户访问设置中,允许sub1租户的用户/服务主体访问,同时开启私有链接资源的跨租户访问权限
- 在sub1的AD跨租户访问设置中,同步开启对sub2租户的资源访问权限
- 检查两个租户的跨租户规则,确保没有设置阻止跨租户访问的条目
三、修正CLI命令参数
执行az afd origin create时,必须明确指定目标存储账户的租户ID,否则会默认使用当前租户(sub1)导致权限校验失败:
az afd origin create \ --resource-group xx \ --profile-name test-frontdoor \ --origin-group-name testCrossSubOrigin \ --name mystorageorigin \ --host-name <存储账户名>.blob.core.windows.net \ --private-link-resource-id /subscriptions/sub2/resourceGroups/<sub2资源组>/providers/Microsoft.Storage/storageAccounts/<存储账户名> \ --private-link-tenant-id <sub2的租户ID> \ --private-link-sub-resource-name blob \ --enable-private-link true
四、同资源组跨订阅的可行性说明
Azure资源组必须归属单个订阅,不存在跨订阅的资源组,因此这种场景本身不成立。
排查验证步骤
- 切换到sub2订阅,执行
az storage account show --name <存储账户名>,确认操作主体能正常读取存储账户信息 - 查看sub2存储账户的「私有链接」页面,确认AFD发起的私有链接请求状态(手动审批需手动确认)
- 确认AFD实例为Premium SKU(只有该SKU支持存储Blob私有链接)
内容的提问来源于stack exchange,提问作者Huy Tran
相关产品推荐
相关产品推荐

