從現有的執行身分帳戶移轉至受控識別
重要
Azure 自動化執行身分帳戶 (包括傳統執行身分帳戶) 已在 2023 年 9 月 30 日淘汰,並取代為受控識別。 您無法再透過 Azure 入口網站建立或更新執行身分帳戶。
如需有關移轉步調和支援時間表 (用於建立執行身分帳戶和更新憑證) 的詳細資訊,請參閱常見問題集。
Azure 自動化中的執行身分帳戶會提供驗證功能,用於管理透過 Azure Resource Manager 或傳統部署模型部署的資源。 每當建立執行身分帳戶時,就會註冊 Microsoft Entra 應用程式,並產生自我簽署憑證。 憑證有效期間為一個月。 每個月在憑證到期前更新憑證雖可讓自動化帳戶保持運作,但會增加額外負荷。
現在您可以將自動化帳戶設定為使用受控識別,這是您建立自動化帳戶時的預設選項。 透過這項功能,自動化帳戶可以向 Azure 資源進行驗證,而不需要交換任何認證。 受控識別會移除更新憑證或管理服務主體的額外負荷。
受控識別可以是系統指派或使用者指派的識別。 建立新的自動化帳戶時,會啟用系統指派的受控識別。
必要條件
在您從執行身分帳戶或傳統執行身分帳戶遷移至受控識別之前:
建立系統指派或使用者指派的受控識別,或建立這兩種類型。 若要深入了解這兩者之間的差異,請參閱受控識別類型 (機器翻譯)。
注意
- 僅雲端作業支援使用者指派的身分識別。 不能在混合式 Runbook 背景工作角色上使用自動化帳戶的使用者受控識別。 若要使用混合式作業,您必須建立系統指派的身分識別。
- 在混合式 Runbook 背景工作角色指令碼中,有兩種方式可使用受控識別:自動化帳戶的系統指派受控識別或虛擬機器 (VM) 作為混合式 Runbook 背景工作角色執行的 Azure VM 受控識別。
- VM 的使用者指派受控識別和 VM 的系統指派受控識別將不會在使用自動化帳戶受控識別設定的自動化帳戶中運作。 啟用自動化帳戶的受控識別後,只能使用自動化帳戶之系統指派的受控識別,而非 VM 受控識別。 如需詳細資訊,請參閱使用 Runbook 驗證搭配受控識別。
將相同的角色指派給受控識別,以存取符合執行身分帳戶的 Azure 資源。 使用此指令碼在自動化帳戶中啟用系統指派的身分識別,並將 Azure 自動化執行身分帳戶中存在的相同權限集指派給自動化帳戶的系統指派身分識別。
例如,如果只需要自動化帳戶來啟動或停止 Azure VM,則指派給執行身分帳戶的權限必須僅用於啟動或停止 VM。 同樣地,如果 Runbook 將從 Blob 儲存體讀取,請指派唯讀權限。 如需詳細資訊,請參閱 Azure 自動化安全性指導方針。
如果您使用傳統執行身分帳戶,請確定您已將透過傳統部署模型部署的資源遷移至 Azure Resource Manager。
使用此指令碼來找出哪些自動化帳戶正在使用執行身分帳戶。 如果您的 Azure 自動化帳戶包含執行身分帳戶,則預設會將內建參與者角色指派給該帳戶。 您可以使用指令碼來檢查 Azure 自動化執行身分帳戶,並判斷其角色指派是否為預設角色,或者是否已變更為不同的角色定義。
使用此指令碼來找出自動化帳戶中的所有 Runbook 是否都使用執行身分帳戶。
從自動化執行身分帳戶移轉至受控識別
若要從自動化執行身分帳戶或傳統執行身分帳戶遷移至受控識別進行 Runbook 驗證,請遵循下列步驟:
變更 Runbook 程式碼以使用受控識別。
建議您建立生產 Runbook 的複本來測試受控識別,以驗證 Runbook 是否如預期般運作。 更新您的測試 Runbook 程式碼,以使用受控識別進行驗證。 此方法可確保您不會覆寫生產 Runbook 中的
AzureRunAsConnection
,也不會中斷現有的自動化執行個體。 確定 Runbook 程式碼如預期般透過受控識別執行之後,請更新生產 Runbook 以使用受控識別。如需受控識別支援,請使用
Connect-AzAccount
Cmdlet。 若要深入了解此 Cmdlet,請參閱 PowerShell 參考中的 Connect-AzAccount (英文)。- 如果您使用的是
Az
模組,請遵循更新 Azure PowerShell 模組一文中的步驟,更新為最新版本。 - 如果您使用的是 AzureRM 模組,請將
AzureRM.Profile
更新為最新版本,並使用Add-AzureRMAccount
Cmdlet 搭配Connect-AzureRMAccount –Identity
加以取代。
若要了解使用受控識別之前所需進行的 Runbook 程式碼變更,請使用範例指令碼。
- 如果您使用的是
當您確定 Runbook 使用受控識別成功執行時,如果沒有任何其他 Runbook 正在使用執行身分帳戶,您就可以安全地刪除執行身分帳戶。
範例指令碼
下列 Runbook 指令碼範例會使用執行身分帳戶 (服務主體) 和受控識別,來擷取 Resource Manager 資源。 您會在 Runbook 開頭注意到 Runbook 程式碼的差異,其中會針對資源進行驗證。
注意
針對此自動化帳戶的系統身分識別啟用適當的 RBAC 權限。 否則,Runbook 可能會失敗。
try
{
"Logging in to Azure..."
Connect-AzAccount -Identity
}
catch {
Write-Error -Message $_.Exception
throw $_.Exception
}
#Get all Resource Manager resources from all resource groups
$ResourceGroups = Get-AzResourceGroup
foreach ($ResourceGroup in $ResourceGroups)
{
Write-Output ("Showing resources in resource group " + $ResourceGroup.ResourceGroupName)
$Resources = Get-AzResource -ResourceGroupName $ResourceGroup.ResourceGroupName
foreach ($Resource in $Resources)
{
Write-Output ($Resource.Name + " of type " + $Resource.ResourceType)
}
Write-Output ("")
}
檢視使用者指派身分識別的用戶端識別碼
圖形化 Runbook
檢查執行身分帳戶是否用於圖形化 Runbook
檢查 Runbook 內的每個活動,以查看其是否在呼叫任何登入 Cmdlet 或別名時使用執行身分帳戶,例如
Add-AzRmAccount/Connect-AzRmAccount/Add-AzAccount/Connect-AzAccount
。檢查 Cmdlet 使用的參數。
如需搭配執行身分帳戶使用,則 Cmdlet 會使用設定為
ApplicationId
的參數ServicePrincipalCertificate
。CertificateThumbprint
將會來自RunAsAccountConnection
。
編輯圖形化 Runbook 以使用受控識別
您必須測試受控識別,以驗證圖形化 Runbook 是否如預期般運作。 建立生產 Runbook 的複本以使用受控識別,然後更新您的測試圖形化 Runbook 程式碼,以使用受控識別進行驗證。 您可以新增 Connect-AzAccount
Cmdlet,將此功能新增至圖形化 Runbook。
下列步驟包含一個範例,示範使用執行身分帳戶的圖形化 Runbook 如何使用受控識別:
登入 Azure 入口網站。
開啟自動化帳戶,然後選取 [處理自動化]>[Runbook]。
選取 Runbook。 例如,從清單中選取 [啟動 Azure V2 VM] Runbook,然後選取 [編輯],或移至 [瀏覽資源庫] 然後選取 [啟動 Azure V2 VM]。
將使用
AzureRunAsConnection
的執行身分連線,以及內部使用 PowerShellGet-AutomationConnection
Cmdlet 的連線資產取代為Connect-AzAccount
Cmdlet。選取 [刪除] 以刪除
Get Run As Connection
和Connect to Azure
活動。在左側面板中的 [RUNBOOK CONTROL] 底下,選取 [程式碼],然後選取 [新增至畫布]。
編輯程式碼活動、指派任何適當的標籤名稱,然後選取 [撰寫活動邏輯]。
在 [程式碼編輯器] 頁面中,輸入下列 PowerShell 程式碼,然後選取 [確定]。
try { Write-Output ("Logging in to Azure...") Connect-AzAccount -Identity } catch { Write-Error -Message $_.Exception throw $_.Exception }
將新活動連線到先前由 [連線至 Azure] 所連線的活動,然後儲存 Runbook。
例如,在 Runbook 資源庫的 [啟動 Azure V2 VM] Runbook 中,您必須將 Get Run As Connection
和 Connect to Azure
活動取代為使用上述 Connect-AzAccount
Cmdlet 的程式碼活動。
如需詳細資訊,請參閱使用自動化帳戶建立的範例 Runbook 名稱 AzureAutomationTutorialWithIdentityGraphical。
注意
AzureRM PowerShell 模組將於 2024 年 2 月 29 日淘汰。 如果您在圖形化 Runbook 中使用 AzureRM PowerShell 模組,則必須將其升級為使用 Az PowerShell 模組。 深入了解。
下一步
如果您的 Runbook 未成功完成,請檢閱針對 Azure 自動化受控識別問題進行疑難排解。
若要深入了解系統指派的 Azure 資源受控識別,請參閱針對 Azure 自動化帳戶使用系統指派的受控識別。
若要深入了解使用者指派的 Azure 資源受控識別,請參閱針對 Azure 自動化帳戶使用一個使用者指派的受控識別。
如需 Azure 自動化帳戶安全性的相關資訊,請參閱 Azure 自動化帳戶驗證概觀。