簡體   English   中英

Azure Web 應用程序:當 VNET 位於不同訂閱上時,無法使用 PowerShell 添加 VNET 限制規則

[英]Azure Web App: Cannot add a VNET Restriction Rule using PowerShell when VNET is on a different subscription

我在 azure 中有一個 web 應用程序,我想確保只有我的構建服務器(或同一子網上的任何其他 VM)是唯一能夠訪問 SCM 站點的服務器。 我認為最明顯的事情是創建一個訪問限制規則,事實上這很有效,我可以從門戶網站創建它,沒有任何問題。

但是,當我嘗試使用 powershell 自動執行此操作時,就會出現問題。 我的構建服務器子網位於與我的 web 應用程序所在的訂閱不同的訂閱上。

我正在執行以下 powershell 腳本:

$subnetId = "/subscriptions/$VNETSubscriptionId/resourceGroups/$VNETResourceGroup/providers/Microsoft.Network/virtualNetworks/$buildServerVNET/subnets/$buildServerSubNet"
Add-AzWebAppAccessRestrictionRule -ResourceGroup $webAppRg -WebAppName $webAppname -Name VNETAccess -Priority 1000 -Action Allow -SubnetId $subnetId

我收到以下錯誤:

Add-AzWebAppAccessRestrictionRule : The client '{{my user credential}}' with object id '81fa4eb1-5553-4daa-af44-3c717b19eda2' does not have authorization to perform action 'Microsoft.Network/virtualNetworks/subnets/read' over scope '/subscriptions/{{websiteSubscriptionId}}/resour
ceGroups/{{VNETResourceGroup}}/providers/Microsoft.Network/virtualNetworks/{{buildServerVNET}}/subnets/{{buildServerSubNet}}' or
the scope is invalid. If access was recently granted, please refresh your credentials.

該錯誤似乎表明 cmdlet 正在搜索與網站相同的訂閱 ID 上的子網,而不是子網所在的訂閱,因為錯誤消息中返回的 resourceId 字符串具有錯誤的訂閱 ID。 它使用的是網站所在的站點,而不是構建服務器所在的站點。

為了通過 powershell 創建此規則,還需要做什么?

錯誤信息很混亂。

事實上,經過我的驗證,您需要在添加來自不同訂閱的子網時添加-IgnoreMissingServiceEndpoint參數。 閱讀此 GitHub 案例WebApp:Add-AzWebAppAccessRestrictionRule.md - 在 SubnetId 參數上錯誤使用訂閱上下文

使用來自不同訂閱的子網時,我們無法驗證子網以查看是否設置了正確的服務終結點 (Microsoft.Web)。 如果您使用-IgnoreMissingServiceEndpoint ,則可以添加規則。

暫無
暫無

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

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