總結
請使用這篇文章來排解您建立或部署 Azure Kubernetes Service (AKS) 叢集時的錯誤LinkedAuthorizationFailed。 只要遵循這些步驟,你就能成功完成手術。
癥狀
當您嘗試建立 AKS 叢集時,您會收到下列錯誤訊息:
協調 VNet 失敗。
詳細資料:VNetReconciler 重試失敗:
類別:ClientError;SubCode:LinkedAuthorizationFailed;
相依性:Microsoft.Network/virtualNetworks;OrginalError:Code=“LinkedAuthorizationFailed”
Message=「
物件識別碼為 '123456789-1234-1234-1234-1234567890987' 的用戶端 'aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb' 具有在範圍 '/subscriptions/ /resourceGroups/MC_MyRG_westeurope/providers/Microsoft.Network/virtualNetworks/aks-vnet' 上執行動作 'Microsoft.Network/virtualNetworks/write' 的權限;但是,它沒有在連結的範圍 '/subscriptions/ subscription-id-guid /resourcegroups/ddos-protection-plan-rg/providers/microsoft.network/ddosprotectionplans/upmddosprotectionplan' 上執行动作 'Microsoft.Network/ddosProtectionPlans/join/action' 的權限,或者連結的範圍無效。」 subscription-id-guid AKSTeam:網路、可重試:否。
原因
服務主體沒有許可權使用叢集建立所需的資源。
解決方法
授與服務主體許可權,以使用錯誤訊息中所提及的資源。 [徵兆] 區段中的範例輸出提供下列資訊。
| 項目 | 價值 |
|---|---|
| 服務主體 | aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb |
| 資源 | /subscriptions/<subscription-id-guid>/resourcegroups/ddos-protection-plan-rg/providers/microsoft.network/ddosprotectionplans/upmddosprotectionplan |
| 行動 | Microsoft.Network/ddosProtectionPlans/join/action |
如需如何將許可權授與服務主體的詳細資訊,請參閱使用 Azure 入口網站 指派 Azure 角色。
詳細資訊
若角色指派看似正確但叢集建立仍失敗,請驗證角色指派傳播,確認連結資源範圍的權限,檢查活動日誌是否有授權失敗,並驗證該參考資源仍然存在且可從目標訂閱與資源群組存取。 檢視錯誤中顯示的精確操作(例如, Microsoft.Network/ddosProtectionPlans/join/action),並確認該身份對連結資源擁有該權限。
如果看似已分配所需權限,但部署仍因 LinkedAuthorizationFailed 失敗,請在授權檢查中確認身份與範圍。 請查看完整錯誤訊息以識別:
執行操作的客戶端或物件 ID。
錯誤中提到的連結資源範圍。
被拒絕的特定行動(例如, Microsoft.Network/ddosProtectionPlans/join/action)。
確認 AKS 部署所使用的身份(服務主體或管理身份)在主要資源及錯誤訊息中提及的任何連結資源上都具備所需的角色指派。 同時也要確認角色指派是否存在於正確的範圍內,且繼承權限是否有效。 對於涉及不同資源群組或訂閱的複雜情境,請先檢視 Azure 活動日誌與角色指派,判斷授權失敗地點,再嘗試叢集建立。