从 Azure Devops 托管代理访问私有存储帐户

Mar*_*lah 2 azure azure-storage azure-virtual-network azure-devops

我正在尝试访问天蓝色 blob 存储帐户,以从使用天蓝色 Devops托管代理运行的管道中写入一些文件。我们还无法将 azure devops 服务标记与 azure devops 托管代理一起使用

我想知道是否有一个智能解决方案可以从我的托管代理访问我的 blob 存储,而无需将其开放到所有互联网。

提前谢谢你们

Kev*_*SFT 7

根据您的要求,您需要使用 Microsoft 托管代理访问私有存储帐户。

\n

据我所知,目前Azure存储帐户在设置防火墙时不支持服务标签。

\n

为了满足您的要求,您可以使用脚本获取当前的 Microsoft 托管代理 IP,并通过 Azure CLI 或 Azure PowerShell 将其添加到 Azure 存储帐户防火墙白名单。

\n

例如:

\n
steps:\n- task: AzurePowerShell@5\n  displayName: \'Azure PowerShell script: Set Rule\'\n  inputs:\n    azureSubscription: kevin0215\n    ScriptType: InlineScript\n    Inline: |\n     $IP= Invoke-RestMethod http://ipinfo.io/json | Select -exp ip\n     \n     $IP\n     \n     Add-AzStorageAccountNetworkRule -ResourceGroupName "ResourceGroup" -AccountName "kevin0204" -IPAddressOrRange "$IP"\n     \n     \n     \n    preferredAzurePowerShellVersion: \' 3.1.0\'\n\n- task: AzureFileCopy@4\n  displayName: \'AzureBlob File Copy\'\n  inputs:\n    SourcePath: test\n    azureSubscription: kevin0322\n    Destination: AzureBlob\n    storage: test\n    ContainerName: 1\n\n\n- task: AzurePowerShell@5\n  displayName: \'Azure PowerShell script: Remove Rule\'\n  inputs:\n    azureSubscription: kevin0215\n    ScriptType: InlineScript\n    Inline: |\n     $IP= Invoke-RestMethod http://ipinfo.io/json | Select -exp ip\n     \n     $IP\n     \n     Remove-AzStorageAccountNetworkRule -ResourceGroupName "ResourceGroup" -AccountName "kevin0204" -IPAddressOrRange "$IP"\n     \n     \n    preferredAzurePowerShellVersion: \' 3.1.0\'\n
Run Code Online (Sandbox Code Playgroud)\n

解释\xef\xbc\x9a

\n

您可以在上传文件前将IP添加到防火墙白名单中。上传后,您可以删除该IP。

\n

注意: \xef\xbc\x9a当前的 azure 存储帐户有一个已知的限制。请参阅此文档:Azure 存储帐户 IP 网络规则的限制

\n

当您的 Azure Devops 服务组织和 Azure 存储帐户位于同一区域时,将通过私有 ip 访问它们。这可能会导致间歇性访问问题。

\n