Eseguire la migrazione da un account RunAs esistente alle identità gestite

Importante

Automazione di Azure account Runas, inclusi gli account Runas classici, sono stati ritirati il 30 settembre 2023 e sostituiti con identità gestite. Non sarà più possibile creare o rinnovare gli account Runas tramite il portale di Azure.

Per altre informazioni sulla frequenza di migrazione e sulla sequenza temporale del supporto per la creazione e il rinnovo dell'account RunAs, vedere le domande frequenti.

Gli account RunAs in Automazione di Azure forniscono l'autenticazione per la gestione delle risorse distribuite tramite Azure Resource Manager o il modello di distribuzione classico. Ogni volta che viene creato un account RunAs, viene registrata un'applicazione Microsoft Entra e viene generato un certificato autofirmato. Il certificato è valido per un mese. Il rinnovo del certificato ogni mese prima della scadenza mantiene funzionante l'account di Automazione, ma aumenta il sovraccarico.

Ora è possibile configurare gli account di Automazione per usare un'identità gestita, ovvero l'opzione predefinita quando si crea un account di Automazione. Con questa funzionalità, un account di Automazione può eseguire l'autenticazione alle risorse di Azure senza dover scambiare credenziali. Un'identità gestita elimina la necessità di rinnovare il certificato o gestire l'entità servizio.

Un'identità gestita può essere assegnata dal sistema o assegnata dall'utente. Quando viene creato un nuovo account di Automazione, viene abilitata un'identità gestita assegnata dal sistema.

Prerequisiti

Prima di eseguire la migrazione da un account RunAs o da un account RunAs classico a un'identità gestita:

  1. Creare un'identità gestita assegnata dal sistema o dall'utente oppure creare entrambi i tipi. Per altre informazioni sulle differenze tra di esse, vedere Tipi di identità gestita.

    Nota

    • Le identità assegnate dall'utente sono supportate solo per i processi cloud. Non è possibile usare l'identità gestita dall'account di Automazione in un ruolo di lavoro ibrido per runbook. Per usare i processi ibridi, è necessario creare identità assegnate dal sistema.
    • Esistono due modi per usare le identità gestite negli script di lavoro ibridi per runbook: l'identità gestita assegnata dal sistema per l'account di Automazione o l'identità gestita della macchina virtuale per una macchina virtuale di Azure in esecuzione come ruolo di lavoro ibrido per runbook.
    • L'identità gestita assegnata dall'utente della macchina virtuale e l'identità gestita assegnata dal sistema della macchina virtuale non funzioneranno in un account di Automazione configurato con l'identità gestita di un account di Automazione. Quando si abilita l'identità gestita dell'account di Automazione, è possibile usare solo l'identità gestita assegnata dal sistema dell'account di Automazione e non l'identità gestita della macchina virtuale. Per altre informazioni, vedere Usare l'autenticazione del runbook con identità gestite.
  2. Assegnare lo stesso ruolo all'identità gestita per accedere alle risorse di Azure corrispondenti all'account RunAs. Usare questo script per abilitare l'identità assegnata dal sistema in un account di Automazione e assegnare lo stesso set di autorizzazioni presenti in Automazione di Azure Account Runas all'identità assegnata dal sistema dell'account di Automazione.

    Ad esempio, se l'account di Automazione è necessario solo per avviare o arrestare una macchina virtuale di Azure, le autorizzazioni assegnate all'account RunAs devono essere relative soltanto all'avvio e all'arresto della macchina virtuale. Analogamente, assegnare autorizzazioni di sola lettura se un runbook viene letto da Archiviazione BLOB di Azure. Per altre informazioni, vedere Linee guida sulla sicurezza di Automazione di Azure.

  3. Se si usano account RunAs classici, assicurarsi di aver eseguito la migrazione delle risorse distribuite tramite il modello di distribuzione classica in Azure Resource Manager.

  4. Usare questo script per scoprire quali account di Automazione usano un account RunAs. Se gli account Automazione di Azure contengono un account RunAs, il ruolo di collaboratore predefinito è assegnato per impostazione predefinita. È possibile usare lo script per controllare gli account RunAs Automazione di Azure e determinare se l'assegnazione di ruolo è quella predefinita o se è stata modificata in una definizione di ruolo diversa.

  5. Usare questo script per scoprire se tutti i runbook nell'account di Automazione usano l'account RunAs.

Eseguire la migrazione da un account RunAs di Automazione a un'identità gestita

Per eseguire la migrazione da un account RunAs di Automazione o da un account RunAs classico a un'identità gestita per l'autenticazione del runbook, seguire questa procedura:

  1. Modificare il codice del runbook per usare un'identità gestita.

    È consigliabile testare l'identità gestita per verificare se il runbook funziona come previsto creando una copia del runbook di produzione. Aggiornare il codice del runbook di test per l'autenticazione usando l'identità gestita. Questo metodo garantisce di non eseguire l'override AzureRunAsConnection nel runbook di produzione e di interrompere l'istanza di Automazione esistente. Dopo avere verificato che il codice del runbook venga eseguito come previsto tramite l'identità gestita, aggiornare il runbook di produzione per usare l'identità gestita.

    Per il supporto delle identità gestite, usare il cmdlet Connect-AzAccount. Per altre informazioni su questo cmdlet, vedere Connect-AzAccount nel riferimento a PowerShell.

    • Se si usano Az i moduli, eseguire l'aggiornamento alla versione più recente seguendo la procedura descritta nell'articolo Aggiornare i moduli di Azure PowerShell.
    • Se si usano moduli AzureRM, eseguire l'aggiornamento di AzureRM.Profile alla versione più recente e sostituirlo usando il cmdlet Add-AzureRMAccount con Connect-AzureRMAccount –Identity.

    Per comprendere le modifiche apportate al codice del runbook necessario prima di poter usare le identità gestite, usare gli script di esempio.

  2. Quando si è certi che il runbook sia in esecuzione correttamente usando le identità gestite, è possibile eliminare in modo sicuro l'account RunAs se nessun altro runbook usa tale account.

Script di esempio

Gli esempi seguenti di script del runbook recuperano le risorse di Resource Manager usando l'account RunAs (entità servizio) e l'identità gestita. Si noterà la differenza nel codice del runbook all'inizio del runbook, in cui esegue l'autenticazione sulla risorsa.

Nota

Abilitare le autorizzazioni di controllo degli accessi in base al ruolo appropriate per l'identità di sistema di questo account di Automazione. In caso contrario, il runbook potrebbe non riuscire.

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 ("")
}

Visualizzare l'ID client dell'identità assegnata dall'utente

  1. Nell'account di Automazione, in Account Impostazioni selezionare Identità.

  2. Nella scheda Assegnata dall'utente selezionare identità assegnata dall'utente.

    Screenshot that shows the navigation path to view client ID.

  3. Passare a Panoramica>informazioni di base per visualizzare l'ID client.

    Screenshot that shows how to view a client ID.

Runbook grafici

Controllare se un account RunAs viene usato nei runbook grafici

  1. Controllare ogni attività all'interno del runbook per verificare se usa l'account RunAs quando chiama qualsiasi cmdlet di accesso o alias, ad esempio Add-AzRmAccount/Connect-AzRmAccount/Add-AzAccount/Connect-AzAccount.

    Screenshot that illustrates checking if a graphical runbook uses a Run As account.

  2. Esaminare i parametri usati dal cmdlet.

    Screenshot that shows examining the parameters used by a cmdlet.

    Per l'uso con l'account RunAs, il cmdlet usa il ServicePrinicipalCertificate parametro impostato su ApplicationId. CertificateThumbprint sarà da RunAsAccountConnection.

    Screenshot that shows parameter sets.

Modificare un runbook grafico per usare un'identità gestita

È necessario testare l'identità gestita per verificare che il runbook grafico funzioni come previsto. Creare una copia del runbook di produzione per usare l'identità gestita e quindi aggiornare il codice del runbook grafico di test per l'autenticazione usando l'identità gestita. È possibile aggiungere questa funzionalità a un runbook grafico aggiungendo il Connect-AzAccount cmdlet .

I passaggi seguenti includono un esempio per illustrare come un runbook grafico che usa un account RunAs può usare le identità gestite:

  1. Accedi al portale di Azure.

  2. Aprire l'account di Automazione e quindi selezionare Runbook di Automazione>processi.

  3. Selezionare un runbook. Ad esempio, selezionare il runbook Avvia macchine virtuali di Azure V2 dall'elenco e quindi selezionare Modifica o passare a Sfoglia raccolta e selezionare Avvia macchine virtuali di Azure V2.

    Screenshot of editing a graphical runbook.

  4. Sostituire la connessione RunAs che usa AzureRunAsConnection e l'asset di connessione che usa internamente il cmdlet di PowerShell Get-AutomationConnection con il Connect-AzAccount cmdlet .

  5. Selezionare Elimina per eliminare le Get Run As Connection attività e Connect to Azure .

    Screenshot to connect to the Azure activities.

  6. Nel pannello sinistro, in RUNBOOK CONTROL, selezionare Codice e quindi selezionare Aggiungi all'area di disegno.

    Screenshot to select code and add it to the canvas.

  7. Modificare l'attività del codice, assegnare qualsiasi nome di etichetta appropriato e selezionare Crea logica di attività.

    Screenshot to edit code activity.

  8. Nella pagina Editor codice immettere il codice di PowerShell seguente e selezionare OK.

    try 
    { 
       Write-Output ("Logging in to Azure...") 
       Connect-AzAccount -Identity 
    } 
    catch { 
       Write-Error -Message $_.Exception 
       throw $_.Exception 
    } 
    
  9. Connessione la nuova attività alle attività connesse da Connessione ad Azure in precedenza e salvare il runbook.

    Screenshot to connect new activity to activities.

Ad esempio, nel runbook Avviare macchine virtuali di Azure V2 nella raccolta di runbook è necessario sostituire le Get Run As Connection attività e Connect to Azure con l'attività di codice che usa il Connect-AzAccount cmdlet come descritto in precedenza. Per altre informazioni, vedere il nome del runbook di esempio AzureAutomationTutorialWithIdentityGraphical creato con l'account di Automazione.

Nota

I moduli di AzureRM PowerShell vengono ritirati il 29 febbraio 2024. Se si usano i moduli di AzureRM PowerShell nei runbook grafici, è necessario aggiornarli per usare i moduli Az PowerShell. Ulteriori informazioni.

Passaggi successivi