azure - az 存储帐户网络规则不适用于 Microsoft 托管代理 (Azure DevOps)

标签 azure azure-devops firewall azure-blob-storage azure-cli

我必须通过azure发布管道自动删除azure blob存储(特定容器)中的所有文件。所以我配置了一个任务来动态获取Microsoft代理的IP地址并将IP地址添加到blob防火墙中。下面的脚本有时可以成功运行,但我无法在防火墙列表中看到 IP。

同样的脚本多次失败并抛出类似的错误

The request may be blocked by network rules of storage account. Please check network rule set using 'az storage account show -n accountname --query networkRuleSet'.If you want to change the default action to apply when no rule matches, please use 'az storage account update'.

IP=`curl -s http://ipinfo.io/json | jq -r  '.ip'`


echo "Opening firewall for the IP : $IP"

az storage account network-rule add -g custom-web --account-name   "customwebapp" --ip-address $IP

我对此不确定,有人能够建议我一种实现此目的的最佳方法或通过 Microsoft 托管代理连接 azure blob 的另一种替代安全方法吗?

引用文献 https://learn.microsoft.com/en-us/cli/azure/storage/account/network-rule?view=azure-cli-latest

最佳答案

即使使用上述为特定 Microsoft 托管代理 IP 地址动态打开存储防火墙的解决方法,Microsoft 托管代理与防火墙后面的存储帐户之间的通信始终是一件麻烦的事情。这主要是由于存储帐户方面的限制。

<强>1。每个存储帐户最多支持 200 个 IP 网络规则。

因此,我们无法添加从您的任何 ADO 组织地理区域启动的托管代理的整个 IP 范围。如果组织位于西欧,则托管代理可以来自北欧和西欧。所以没有。应列入白名单的 IP 范围将超过 200 个。

因此,用户采用上述解决方法来允许特定的托管代理 IP 地址。然而,以下限制并不能使上述解决方法万无一失。当托管代理在与您的存储帐户相同的区域中启动时,解决方法不起作用。

<强>2。与存储帐户部署在同一区域的服务使用私有(private) Azure IP 地址进行通信。
3. IP 网络规则对来自与存储帐户相同的 Azure 区域的请求没有影响

关于azure - az 存储帐户网络规则不适用于 Microsoft 托管代理 (Azure DevOps),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66196473/

相关文章:

azure - 将 Azure Functions 从 "Consumption plan"切换到 "Premium plan"

ssh - 如何使用反向 SSH 隧道绕过防火墙和 NAT

azure - 在Windows Azure中的Hive表中插入数据

azure - Cosmos DB - 更改源触发器 : The Listener for 'my-function-name' was unable to start

azure - 有没有办法使用 REST API 获取特定 Azure DevOps 项目中的用户权限?

azure-devops - 从管道上的 VM 内运行的脚本获取控制台输出

docker - 无法通过SSH(Azure DevOps)访问docker

python - 简单的python服务器 "connection refused"错误

node.js - 从本地网络上的远程计算机访问 NodeJS 服务器显示空白页面

azure - VS 2013 部分支持 azure v12 中的证书和对称 key