Azure中通过专用终结点访问Blob存储账户返回403错误排查
问题排查与解决方案
一、确认专用终结点配置有效性
- 检查存储账户的专用终结点连接状态:确保专用终结点已成功关联到Blob服务,状态为已批准(不是待批准或拒绝)。
- 验证VM所在虚拟网络的DNS配置:必须配置
privatelink.blob.core.windows.net专用DNS区域,且专用终结点已关联到该区域。在VM上执行nslookup storageaccountus2x.blob.core.windows.net,如果返回的是公网IP,说明DNS配置错误,导致流量没走专用终结点。
二、检查存储账户网络规则
- 确认存储账户防火墙设置:选择“允许从选定的网络访问”时,要确保已启用“允许通过专用终结点访问”,或者已添加对应的专用终结点到允许列表。如果没放开专用终结点的访问权限,即使配置了终结点也会返回403。
三、C#代码与SDK验证
- 升级Azure.Storage.Blobs SDK到最新稳定版,旧版本可能对专用终结点自动路由支持不足。
- 可以在连接字符串中显式指定专用终结点URL,强制流量走专用通道,测试是否能正常访问:
private static void connectToUS2StorageAccount() { var herp = new BlobServiceClient("DefaultEndpointsProtocol=https;AccountName=storageaccountus2x;AccountKey=<AccountKey>;BlobEndpoint=https://storageaccountus2x.privatelink.blob.core.windows.net/;EndpointSuffix=core.windows.net"); var blobs = herp.FindBlobsByTags("k1=v1"); foreach(var blob in blobs) { Console.WriteLine($"Blob name:{blob.BlobName}"); } Console.WriteLine($"-----"); }
四、诊断日志与指标分析
- 查看存储账户诊断日志:启用“StorageRead”“StorageWrite”日志类别,检查403请求的来源IP。如果是VM的公网IP,说明流量没走专用终结点;如果是私有IP,再排查权限配置。
- 查看专用终结点指标:检查“BytesIn”“BytesOut”数值,若为0则说明没有流量通过专用终结点,问题出在路由或DNS。
内容的提问来源于stack exchange,提问作者DenLilleMand
相关产品推荐
相关产品推荐

