簡體   English   中英

az storage account network-rule 不適用於 Microsoft 托管代理 (Azure DevOps)

[英]az storage account network-rule not working for Microsoft Hosted agent(Azure DevOps)

我必須通過 azure 發布管道自動刪除 azure blob 存儲(特定容器)中的所有文件。 所以我配置了一個任務來動態獲取微軟代理的IP地址到blob防火牆中。 下面的腳本有時會成功運行,但我無法在防火牆列表中看到 IP。

同樣的腳本也多次失敗並引發錯誤,例如

該請求可能被存儲帳戶的網絡規則阻止。 請使用“az storage account show -n accountname --query networkRuleSet”檢查網絡規則集。如果要更改在沒有規則匹配時應用的默認操作,請使用“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://docs.microsoft.com/en-us/cli/azure/storage/account/network-rule?view=azure-cli-latest

微軟托管代理和防火牆后的存儲帳戶之間的通信總是很麻煩,即使上述解決方法是為特定的微軟托管代理 IP 地址動態打開存儲防火牆。 這主要是由於存儲帳戶方面的限制。

1、每個存儲賬戶最多支持200條IP網絡規則。

因此,我們無法添加從您的任何 ADO 組織地理區域啟動的托管代理的整個 IP 范圍。 如果組織托管在西歐,則托管代理可以來自北歐和西歐。 所以沒有。 應列入白名單的 IP 范圍將超過 200 個。

因此,用戶 go 與上述解決方法允許特定托管代理 IP 地址。 但是,以下限制不會使上述解決方法萬無一失。 當托管代理在與您的存儲帳戶相同的區域中啟動時,解決方法不起作用。

2. 與存儲帳戶部署在同一區域的服務使用私有 Azure IP 地址進行通信。
3. IP 網絡規則對來自與存儲帳戶相同的 Azure 區域的請求沒有影響

解決方法是臨時啟用公共訪問:

az storage account update --resource-group "$ResourceGroupName" --name "$Name" --default-action Allow

完成操作后,您可以再次將其關閉。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM