使用 PowerShell 在虛擬機擴展集上設定 Azure 資源的受控識別

Azure 資源的受控識別是 Microsoft Entra ID 的功能。 每個支援適用於 Azure 資源的受控識別 Azure 服務均受限於其本身的時間表。 開始之前,請務必檢閱 資源受控識別的可用性 狀態和 已知問題

Azure 資源受控識別會在 Microsoft Entra ID 中為 Azure 服務提供自動受控識別。 您可以使用此身分識別來向任何支援 Microsoft Entra 驗證的服務進行驗證,不需要任何您程式碼中的認證。

在本文中,您會使用 PowerShell,瞭解如何在虛擬機擴展集上執行 Azure 資源的受控識別作業:

  • 在虛擬機擴展集上啟用和停用系統指派的受控識別
  • 在虛擬機擴展集上新增和移除使用者指派的受控識別

注意

建議您使用 Azure Az PowerShell 模組來與 Azure 互動。 請參閱安裝 Azure PowerShell 以開始使用。 若要了解如何移轉至 Az PowerShell 模組,請參閱將 Azure PowerShell 從 AzureRM 移轉至 Az

必要條件

  • 如果您不熟悉 Azure 資源的受控識別,請參閱概 觀一節請務必檢閱 系統指派與使用者受控指派身分識別之間的差異。

  • 如果您還沒有 Azure 帳戶, 請先註冊免費帳戶 ,再繼續進行。

  • 若要執行本文中的管理作業,您的帳戶需要下列 Azure 角色型訪問控制指派:

    注意

    不需要其他 Microsoft Entra 目錄角色指派。

    • 虛擬機參與者 可建立虛擬機擴展集,並從虛擬機擴展集啟用和移除系統指派的受控和/或使用者指派的受控識別。
    • 受控識別參與者 角色,用來建立使用者指派的受控識別。
    • 受控識別操作員 角色,可從虛擬機擴展集指派和移除使用者指派的受控識別。
  • 若要執行範例文稿,您有兩個選項:

    • 使用 Azure Cloud Shell,您可以使用程式代碼區塊右上角的 [試用] 按鈕來開啟
    • 在本機執行腳本,方法是安裝最新版的 Azure PowerShell,然後使用 登入 Azure Connect-AzAccount

系統指派的受控識別

在本節中,您將瞭解如何使用 Azure PowerShell 啟用和移除系統指派的受控識別。

在建立 Azure 虛擬機擴展集期間啟用系統指派的受控識別

若要建立已啟用系統指派受控識別的虛擬機擴展集:

  1. 請參閱 New-AzVmssConfig Cmdlet 參考文章中的範例 1,以建立具有系統指派受控識別的虛擬機擴展集。 將 參數 -IdentityType SystemAssigned 新增至 New-AzVmssConfig Cmdlet:

    $VMSS = New-AzVmssConfig -Location $Loc -SkuCapacity 2 -SkuName "Standard_A0" -UpgradePolicyMode "Automatic" -NetworkInterfaceConfiguration $NetCfg -IdentityType SystemAssigned`
    

在現有的 Azure 虛擬機擴展集上啟用系統指派的受控識別

如果您需要在現有的 Azure 虛擬機擴展集上啟用系統指派的受控識別:

  1. 請確定您使用的 Azure 帳戶屬於一個角色,可提供您在虛擬機擴展集上寫入許可權,例如「虛擬機參與者」。

  2. 使用 Get-AzVmss Cmdlet 擷取虛擬機擴展集屬性。 然後,若要啟用系統指派的受控識別,請使用 -IdentityType Update-AzVmss Cmdlet 上的 參數:

    Update-AzVmss -ResourceGroupName myResourceGroup -Name -myVmss -IdentityType "SystemAssigned"
    

從 Azure 虛擬機擴展集停用系統指派的受控識別

如果您的虛擬機擴展集不再需要系統指派的受控識別,但仍需要使用者指派的受控識別,請使用下列 Cmdlet:

  1. 請確定您的帳戶屬於一個角色,可提供您在虛擬機擴展集上寫入許可權,例如「虛擬機參與者」。

  2. 執行下列 Cmdlet:

    Update-AzVmss -ResourceGroupName myResourceGroup -Name myVmss -IdentityType "UserAssigned"
    
  3. 如果您的虛擬機擴展集不再需要系統指派的受控識別,而且它沒有使用者指派的受控識別,請使用下列命令:

    Update-AzVmss -ResourceGroupName myResourceGroup -Name myVmss -IdentityType None
    

使用者指派的受控識別

在本節中,您將瞭解如何使用 Azure PowerShell 從虛擬機擴展集新增和移除使用者指派的受控識別。

在建立 Azure 虛擬機擴展集期間指派使用者指派的受控識別

目前不支援透過PowerShell建立具有使用者指派受控識別的新虛擬機擴展集。 請參閱下一節,瞭解如何將使用者指派的受控識別新增至現有的虛擬機擴展集。 因此請定期回來查看是否有更新。

將使用者指派的受控識別指派給現有的 Azure 虛擬機擴展集

若要將使用者指派的受控識別指派給現有的 Azure 虛擬機擴展集:

  1. 請確定您的帳戶屬於一個角色,可提供您在虛擬機擴展集上寫入許可權,例如「虛擬機參與者」。

  2. 使用 Get-AzVM Cmdlet 擷取虛擬機擴展集屬性。 然後,若要將使用者指派的受控識別指派給虛擬機擴展集,請使用 -IdentityType Update-AzVmss Cmdlet 上的 -IdentityID 參數。 以您自己的值取代<VM NAME><SUBSCRIPTION ID><RESROURCE GROUP><USER ASSIGNED ID1>USER ASSIGNED ID2

    重要

    當您建立使用者指派的受控識別時,名稱必須以字母或數字開頭,而且可能包含英數位元、連字元(-) 和底線的組合(_)。 若要讓虛擬機器或虛擬機器擴展集的指派正常運作,名稱長度上限為 24 個字元。 如需詳細資訊,請參閱 常見問題和已知問題

    Update-AzVmss -ResourceGroupName <RESOURCE GROUP> -Name <VMSS NAME> -IdentityType UserAssigned -IdentityID "<USER ASSIGNED ID1>","<USER ASSIGNED ID2>"
    

從 Azure 虛擬機擴展集移除使用者指派的受控識別

如果您的虛擬機擴展集有多個使用者指派的受控識別,您可以使用下列命令來移除最後一個。 請務必將 和 <VIRTUAL MACHINE SCALE SET NAME> 參數值取代<RESOURCE GROUP>為您自己的值。 <USER ASSIGNED IDENTITY NAME>是使用者指派的受控識別名稱屬性,應該保留在虛擬機擴展集上。 您可以使用 在虛擬機器擴充集 az vmss show的身分識別區段中找到這項資訊:

Update-AzVmss -ResourceGroupName myResourceGroup -Name myVmss -IdentityType UserAssigned -IdentityID "<USER ASSIGNED IDENTITY NAME>"

如果您的虛擬機擴展集沒有系統指派的受控識別,而且您想要從中移除所有使用者指派的受控識別,請使用下列命令:

Update-AzVmss -ResourceGroupName myResourceGroup -Name myVmss -IdentityType None

如果您的虛擬機擴展集同時具有系統指派和使用者指派的受控識別,您可以切換為僅使用系統指派的受控識別來移除所有使用者指派的受控識別。

Update-AzVmss -ResourceGroupName myResourceGroup -Name myVmss -IdentityType "SystemAssigned"

下一步