首页 > 解决方案 > Azure DevOps Pipeline Azure Blob 存储上传文件 403 禁止异常

问题描述

概括

我正在为 Azure DevOps 管道中的新 Azure 存储帐户创建 CI/CD 预配管道,并尝试使用从管道中的 Azure Powershell 任务运行的 AzCopy 将一些文件上传到 Blob 存储中。

错误

该脚本从我的本地计算机成功运行,但在 Azure DevOps 管道中运行时出现以下错误(ErrorDateTime只是一个混淆的 ISO 8601 格式的日期时间):

假设

我试过的...

我在 Azure Powershell 任务中使用以下行。我对这些值感到满意,因为当启用“所有网络”或我的 IP 地址并且我在本地运行时,一切正常。

.\AzCopy.exe /Source:$SourcePath /Dest:$blobUrlDir /DestKey:$key /Pattern:$FilenamePattern /Y

任何想法或指导将不胜感激。

谢谢,

SJB

标签: azureazure-devopsazure-powershell

解决方案


在进行进一步研究后,我注意到以下提出的问题 - 从存储帐户的角度来看,Azure DevOps 不被视为受信任的 Microsoft 服务。

我的临时解决方法是:

  • DefaultAction设置为Allow,从而允许“所有网络访问”。
  • 在复制操作后将DefaultAction设置为Deny可确保再次强制执行我的 VNet 规则。
Try
{
    Update-AzureRmStorageAccountNetworkRuleSet -ResourceGroupName "$ResourceGroupName" -Name "$StorageAccountName" -DefaultAction Allow
    .\AzCopy.exe /Source:$SourcePath /Dest:$blobUrlDir /DestKey:$key /Pattern:$FilenamePattern /Y
}
Catch
{
    #Handle errors...
}
Finally
{
    Update-AzureRmStorageAccountNetworkRuleSet -ResourceGroupName "$ResourceGroupName" -Name "$StorageAccountName" -DefaultAction Deny
}

谢谢,

SJB


推荐阅读