使用 Azure CLI 在虛擬機擴展集上設定 Azure 資源的受控識別
Azure 資源的受控識別是 Microsoft Entra ID 的功能。 每個支援適用於 Azure 資源的受控識別 Azure 服務均受限於其本身的時間表。 開始之前,請務必檢閱 資源受控識別的可用性 狀態和 已知問題 。
Azure 資源受控識別會在 Microsoft Entra ID 中為 Azure 服務提供自動受控識別。 您可以使用此身分識別來向任何支援 Microsoft Entra 驗證的服務進行驗證,不需要任何您程式碼中的認證。
在本文中,您將瞭解如何使用 Azure CLI,在 Azure 虛擬機擴展集上針對 Azure 資源作業執行下列受控識別:
- 在 Azure 虛擬機擴展集上啟用和停用系統指派的受控識別
- 在 Azure 虛擬機擴展集上新增和移除使用者指派的受控識別
如果您還沒有 Azure 帳戶, 請先註冊免費帳戶 ,再繼續進行。
必要條件
如果您不熟悉 Azure 資源的受控識別,請參閱 什麼是 Azure 資源的受控識別?。 若要了解系統指派和使用者指派的受控識別類型,請參閱 受控識別類型。
若要執行本文中的管理作業,您的帳戶需要下列 Azure 角色型訪問控制指派:
用來建立虛擬機擴展集的虛擬機參與者 ,並從虛擬機擴展集啟用和移除系統和/或使用者指派的受控識別。
受控識別參與者 角色,用來建立使用者指派的受控識別。
受控識別操作員 角色,可從虛擬機擴展集指派和移除使用者指派的受控識別。
注意
不需要其他 Microsoft Entra 目錄角色指派。
在 Azure Cloud Shell 中使用 Bash 環境。 如需詳細資訊,請參閱 Azure Cloud Shell 中的 Bash 快速入門。
若要在本地執行 CLI 參考命令,請安裝 Azure CLI。 若您在 Windows 或 macOS 上執行,請考慮在 Docker 容器中執行 Azure CLI。 如需詳細資訊,請參閱〈如何在 Docker 容器中執行 Azure CLI〉。
如果您使用的是本機安裝,請使用 az login 命令,透過 Azure CLI 來登入。 請遵循您終端機上顯示的步驟,完成驗證程序。 如需其他登入選項,請參閱使用 Azure CLI 登入。
出現提示時,請在第一次使用時安裝 Azure CLI 延伸模組。 如需擴充功能詳細資訊,請參閱使用 Azure CLI 擴充功能。
執行 az version 以尋找已安裝的版本和相依程式庫。 若要升級至最新版本,請執行 az upgrade。
系統指派的受控識別
在本節中,您將瞭解如何使用 Azure CLI 為 Azure 虛擬機擴展集啟用和停用系統指派的受控識別。
在建立 Azure 虛擬機擴展集期間啟用系統指派的受控識別
若要建立已啟用系統指派受控識別的虛擬機擴展集:
使用 az group create,為虛擬機擴展集及其相關資源的內含專案和部署建立資源群組。 如果您已經有想要改用的資源群組,則可以略過此步驟:
az group create --name myResourceGroup --location westus
建立 虛擬機擴展集。 下列範例會建立名為 myVMSS 的 虛擬機擴展集,其中包含系統指派的受控識別,如 參數所要求
--assign-identity
,且具有指定的--role
和--scope
。--admin-username
和--admin-password
參數會指定虛擬機器登入的系統管理使用者名稱和密碼帳戶。 根據您的環境更新這些值:az vmss create --resource-group myResourceGroup --name myVMSS --image win2016datacenter --upgrade-policy-mode automatic --custom-data cloud-init.txt --admin-username azureuser --admin-password myPassword12 --assign-identity --generate-ssh-keys --role contributor --scope mySubscription
在現有的 Azure 虛擬機擴展集上啟用系統指派的受控識別
如果您需要 在現有的 Azure 虛擬機擴展集上啟用 系統指派的受控識別:
az vmss identity assign -g myResourceGroup -n myVMSS
從 Azure 虛擬機擴展集停用系統指派的受控識別
如果您的虛擬機擴展集不再需要系統指派的受控識別,但仍需要使用者指派的受控識別,請使用下列命令:
az vmss update -n myVM -g myResourceGroup --set identity.type='UserAssigned'
如果您的虛擬機不再需要系統指派的受控識別,而且它沒有使用者指派的受控識別,請使用下列命令:
注意
此值 none
會區分大小寫。 它必須是小寫。
az vmss update -n myVM -g myResourceGroup --set identity.type="none"
使用者指派的受控識別
在本節中,您將瞭解如何使用 Azure CLI 來啟用和移除使用者指派的受控識別。
在建立虛擬機擴展集期間指派使用者指派的受控識別
本節將逐步引導您建立虛擬機擴展集,並將使用者指派的受控識別指派給虛擬機擴展集。 如果您已經有想要使用的虛擬機擴展集,請略過本節,然後繼續進行下一節。
如果您已經有想要使用的資源群組,則可以略過此步驟。 使用 az group create 建立資源群組,以包含和部署使用者指派的受控識別。 請務必將 和
<LOCATION>
參數值取代<RESOURCE GROUP>
為您自己的值。 :az group create --name <RESOURCE GROUP> --location <LOCATION>
使用 az identity create 建立使用者指派的受控識別。
-g
參數會指定建立使用者指派受控識別的資源群組,而-n
參數會指定其名稱。 請務必將 和<USER ASSIGNED IDENTITY NAME>
參數值取代<RESOURCE GROUP>
為您自己的值:重要
當您建立使用者指派的受控識別時,名稱必須以字母或數字開頭,而且可能包含英數位元、連字元(-) 和底線的組合(_)。 若要讓虛擬機器或虛擬機器擴展集的指派正常運作,名稱長度上限為 24 個字元。 如需詳細資訊,請參閱 常見問題和已知問題。
az identity create -g <RESOURCE GROUP> -n <USER ASSIGNED IDENTITY NAME>
回應包含所建立之使用者指派受控識別的詳細數據,如下所示。 在下列步驟中會使用指派給使用者指派受控識別的資源
id
值。{ "clientId": "73444643-8088-4d70-9532-c3a0fdc190fz", "clientSecretUrl": "https://control-westcentralus.identity.azure.net/subscriptions/<SUBSCRIPTON ID>/resourcegroups/<RESOURCE GROUP>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<USER ASSIGNED IDENTITY NAME>/credentials?tid=5678&oid=9012&aid=73444643-8088-4d70-9532-c3a0fdc190fz", "id": "/subscriptions/<SUBSCRIPTON ID>/resourcegroups/<RESOURCE GROUP>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<USER ASSIGNED IDENTITY NAME>", "location": "westcentralus", "name": "<USER ASSIGNED IDENTITY NAME>", "principalId": "e5fdfdc1-ed84-4d48-8551-fe9fb9dedfll", "resourceGroup": "<RESOURCE GROUP>", "tags": {}, "tenantId": "733a8f0e-ec41-4e69-8ad8-971fc4b533bl", "type": "Microsoft.ManagedIdentity/userAssignedIdentities" }
建立 虛擬機擴展集。 下列範例會建立與新的使用者指派受控識別相關聯的虛擬機擴展集,如 參數所
--assign-identity
指定,且具有指定的--role
和--scope
。 請務必將<RESOURCE GROUP>
、<VMSS NAME>
、、、<PASSWORD>
<USER NAME>
、<USER ASSIGNED IDENTITY>
、<ROLE>
和<SUBSCRIPTION>
參數值取代為您自己的值。az vmss create --resource-group <RESOURCE GROUP> --name <VMSS NAME> --image <SKU Linux Image> --admin-username <USER NAME> --admin-password <PASSWORD> --assign-identity <USER ASSIGNED IDENTITY> --role <ROLE> --scope <SUBSCRIPTION>
將使用者指派的受控識別指派給現有的虛擬機擴展集
使用 az identity create 建立使用者指派的受控識別。
-g
參數會指定建立使用者指派受控識別的資源群組,而-n
參數會指定其名稱。 請務必將 和<USER ASSIGNED IDENTITY NAME>
參數值取代<RESOURCE GROUP>
為您自己的值:az identity create -g <RESOURCE GROUP> -n <USER ASSIGNED IDENTITY NAME>
回應包含所建立之使用者指派受控識別的詳細數據,如下所示。
{ "clientId": "73444643-8088-4d70-9532-c3a0fdc190fz", "clientSecretUrl": "https://control-westcentralus.identity.azure.net/subscriptions/<SUBSCRIPTON ID>/resourcegroups/<RESOURCE GROUP>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<USER ASSIGNED IDENTITY >/credentials?tid=5678&oid=9012&aid=73444643-8088-4d70-9532-c3a0fdc190fz", "id": "/subscriptions/<SUBSCRIPTON ID>/resourcegroups/<RESOURCE GROUP>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<USER ASSIGNED IDENTITY>", "location": "westcentralus", "name": "<USER ASSIGNED IDENTITY>", "principalId": "e5fdfdc1-ed84-4d48-8551-fe9fb9dedfll", "resourceGroup": "<RESOURCE GROUP>", "tags": {}, "tenantId": "733a8f0e-ec41-4e69-8ad8-971fc4b533bl", "type": "Microsoft.ManagedIdentity/userAssignedIdentities" }
將使用者指派的受控識別指派 給虛擬機擴展集。 請務必將 和
<VIRTUAL MACHINE SCALE SET NAME>
參數值取代<RESOURCE GROUP>
為您自己的值。<USER ASSIGNED IDENTITY>
是使用者指派的身分識別資源name
屬性,如上一個步驟中所建立:az vmss identity assign -g <RESOURCE GROUP> -n <VIRTUAL MACHINE SCALE SET NAME> --identities <USER ASSIGNED IDENTITY>
從 Azure 虛擬機擴展集移除使用者指派的受控識別
若要 從虛擬機器擴充集移除 使用者指派的受控識別,請使用 az vmss identity remove
。 如果這是指派給虛擬機擴展集的唯一使用者指派受控識別, UserAssigned
則會從識別類型值中移除。 請務必將 和 <VIRTUAL MACHINE SCALE SET NAME>
參數值取代<RESOURCE GROUP>
為您自己的值。 <USER ASSIGNED IDENTITY>
是使用者指派的受控識別 name
的 屬性,可以使用 在虛擬機擴展集az vmss identity show
的身分識別區段中找到:
az vmss identity remove -g <RESOURCE GROUP> -n <VIRTUAL MACHINE SCALE SET NAME> --identities <USER ASSIGNED IDENTITY>
如果您的虛擬機擴展集沒有系統指派的受控識別,而且您想要從中移除所有使用者指派的受控識別,請使用下列命令:
注意
此值 none
會區分大小寫。 它必須是小寫。
az vmss update -n myVMSS -g myResourceGroup --set identity.type="none" identity.userAssignedIdentities=null
如果您的虛擬機擴展集同時具有系統指派和使用者指派的受控識別,您可以切換為只使用系統指派的受控識別來移除所有使用者指派的身分識別。 使用下列命令:
az vmss update -n myVMSS -g myResourceGroup --set identity.type='SystemAssigned' identity.userAssignedIdentities=null
下一步
- 適用於 Azure 資源的受控識別概觀
- 如需建立完整的 Azure 虛擬機擴展集快速入門,請參閱 使用 CLI 建立虛擬機擴展集