我必须通过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/