Migración desde una cuenta de ejecución existente a identidades administradas

Importante

Las cuentas de ejecución de Azure Automation, incluyendo las cuentas de ejecución clásicas, se retiraron el 30 de septiembre de 2023 y se han reemplazado por identidades administradas. Ya no se podrán crear o renovar cuentas de ejecución a través de Azure Portal.

Para obtener más información sobre la cadencia de migración y la escala de tiempo de soporte técnico para la creación de cuentas de ejecución y la renovación de certificados, consulte las preguntas más frecuentes.

Las cuentas de ejecución de Azure Automation proporcionan autenticación para administrar recursos implementados mediante Azure Resource Manager o el modelo de implementación clásica. Cada vez que se crea una cuenta de ejecución, se registra una aplicación de Microsoft Entra y se genera un certificado autofirmado. El certificado es válido durante un mes. La renovación del certificado cada mes antes de que expire mantiene la cuenta de Automation funcionando, pero agrega sobrecarga.

Ahora puede configurar las cuentas de Automation para que usen una identidad administrada, que es la opción predeterminada al crear una cuenta de Automation. Con esta característica, una cuenta de Automation puede autenticarse en recursos de Azure sin necesidad de intercambiar credenciales. Una identidad administrada quita la sobrecarga de renovar el certificado o administrar la entidad de servicio.

Una identidad administrada puede ser asignada por el sistema o asignada por el usuario. Cuando se crea una nueva cuenta de Automation, se habilita una identidad administrada asignada por el sistema.

Requisitos previos

Antes de migrar desde una cuenta de ejecución o una cuenta de ejecución clásica a una identidad administrada:

  1. Cree una identidad administrada asignada por el sistema o asignada por el usuario, o cree ambos tipos. Para más información sobre las diferencias entre ellas, consulte Tipos de identidad administrada.

    Nota:

    • Las identidades asignadas por el usuario solo se admiten para trabajos en la nube. No es posible usar la identidad administrada por el usuario de la cuenta de Automation en una instancia de Hybrid Runbook Worker. Para usar trabajos híbridos, debe crear identidades asignadas por el sistema.
    • Hay dos maneras de usar identidades administradas en scripts de Hybrid Runbook Worker: la identidad administrada asignada por el sistema de la cuenta de Automation o la identidad administrada de la máquina virtual (VM) de una máquina virtual de Azure que se ejecuta como Hybrid Runbook Worker.
    • La identidad administrada asignada por el usuario de la máquina virtual y la identidad administrada asignada por el sistema de la máquina virtual no funcionarán en una cuenta de Automation configurada con la identidad administrada de una cuenta de Automation. Al habilitar la identidad administrada de la cuenta de Automation, solo puede usar la identidad administrada asignada por el sistema de la cuenta de Automation y no la identidad administrada de la máquina virtual. Para más información, consulte Uso de la autenticación de runbook con identidades administradas.
  2. Asigne el mismo rol a la identidad administrada para acceder a los recursos de Azure que coincidan con la cuenta de ejecución. Use este script para habilitar la identidad asignada por el sistema en una cuenta de Automation y asignar el mismo conjunto de permisos presentes en la cuenta de ejecución de Azure Automation a la identidad asignada por el sistema de la cuenta de Automation.

    Por ejemplo, si la cuenta de Automation solo es necesaria para iniciar o detener una VM de Azure, los permisos asignados a la cuenta de ejecución solo deben ser para iniciar o detener la VM. De manera similar, debe asignar permisos de solo lectura si un runbook lee de Azure Blob Storage. Para obtener más información, consulte Directrices de seguridad de Azure Automation.

  3. Si usa cuentas de ejecución clásicas, asegúrese de haber migrado recursos implementados mediante el modelo de implementación clásica a Azure Resource Manager.

  4. Use este script para averiguar qué cuentas de Automation usan una cuenta de ejecución. Si las cuentas de Azure Automation contienen una cuenta de ejecución, tiene asignado el rol de colaborador integrado de forma predeterminada. Puede usar el script para comprobar las cuentas de ejecución de Azure Automation y determinar si su asignación de roles es la predeterminada o si se ha cambiado a otra definición de rol.

  5. Use este script para averiguar si todos los runbooks de la cuenta de Automation usan la cuenta de ejecución.

Migración desde una cuenta de ejecución de Automation a una identidad administrada

Para migrar de una cuenta de ejecución clásica o una cuenta de ejecución de Automation a una identidad administrada para la autenticación del runbook, siga estos pasos:

  1. Cambie el código del runbook para usar una identidad administrada.

    Se recomienda probar la identidad administrada para comprobar si el runbook funciona según lo previsto mediante la creación de una copia del runbook de producción. Actualice el código del runbook de prueba para autenticarse mediante la identidad administrada. Este método garantiza que no invalide AzureRunAsConnection en el runbook de producción ni interrumpa la instancia de Automation existente. Después de asegurarse de que el código del runbook se ejecuta según lo previsto a través de la identidad administrada, actualice el runbook de producción para usar la identidad administrada.

    Para compatibilidad con las identidades administradas, use el cmdlet Connect-AzAccount. Para más información sobre este cmdlet, consulte Connect-AzAccount en la referencia de PowerShell.

    • Si usa módulos Az, actualice a la versión más reciente siguiendo los pasos descritos en el artículo Actualización de los módulos de Azure PowerShell.
    • Si usa módulos de AzureRM, actualice AzureRM.Profile a la versión más reciente y reemplácelo mediante el cmdlet Add-AzureRMAccount por Connect-AzureRMAccount –Identity.

    Para comprender los cambios en el código de runbook que son necesarios para poder usar identidades administradas, use los scripts de muestra.

  2. Cuando esté seguro de que el runbook se ejecuta correctamente mediante identidades administradas, puede eliminar de forma segura la cuenta de ejecución si ningún otro runbook usa esa cuenta.

Muestras de scripts

Los ejemplos siguientes de scripts de runbook capturan los recursos de Resource Manager mediante la cuenta de ejecución (entidad de servicio) y la identidad administrada. Observaría la diferencia en el código de runbook al principio del runbook, donde se autentica en el recurso.

Nota:

Habilite los permisos de RBAC adecuados para la identidad del sistema de esta cuenta de Automation. De lo contrario, se podría producir un error en el 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 ("")
}

Ver el identificador de cliente de la identidad asignada por el usuario

  1. En la cuenta de Automation, en Configuración de la cuenta, seleccione Identidad.

  2. En la pestaña Usuario asignado, seleccione la identidad asignada por el usuario.

    Screenshot that shows the navigation path to view client ID.

  3. Vaya a Información general>Essentials para ver el id. de cliente.

    Screenshot that shows how to view a client ID.

Runbooks gráficos

Compruebe si se usa una cuenta de ejecución en runbooks gráficos.

  1. Compruebe cada una de las actividades del runbook para ver si usa la cuenta de ejecución cuando llama a cualquier cmdlet o alias de inicio de sesión, como Add-AzRmAccount/Connect-AzRmAccount/Add-AzAccount/Connect-AzAccount.

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

  2. Examine los parámetros que usa el cmdlet.

    Screenshot that shows examining the parameters used by a cmdlet.

    Para su uso con la cuenta de ejecución, el cmdlet usa el parámetro ServicePrinicipalCertificate establecido en ApplicationId. CertificateThumbprint será de RunAsAccountConnection.

    Screenshot that shows parameter sets.

Edición de un runbook gráfico para usar una identidad administrada

Debe probar la identidad administrada para comprobar que el runbook gráfico funciona según lo previsto. Cree una copia del runbook de producción para usar la identidad administrada y, a continuación, actualice el código del runbook gráfico de prueba para autenticarse mediante la identidad administrada. Para agregar esta funcionalidad a un runbook gráfico, agregue el cmdlet Connect-AzAccount.

En los pasos siguientes se incluye un ejemplo para mostrar cómo un runbook gráfico que usa una cuenta de ejecución puede usar identidades administradas:

  1. Inicie sesión en Azure Portal.

  2. Abra la cuenta de Automation y seleccione Automatización de procesos>Runbooks.

  3. Seleccionar un runbook. Por ejemplo, seleccione el runbook Iniciar máquinas virtuales de Azure V2 de la lista y, a continuación, seleccione Editar, o bien vaya a Examinar galería y seleccione Iniciar máquinas virtuales de Azure V2.

    Screenshot of editing a graphical runbook.

  4. Reemplace la conexión de ejecución que usa AzureRunAsConnection y el recurso de conexión que usa internamente el cmdlet de PowerShell Get-AutomationConnection por el cmdlet Connect-AzAccount.

  5. Seleccione Eliminar para eliminar la actividades Get Run As Connection y Connect to Azure.

    Screenshot to connect to the Azure activities.

  6. En el panel izquierdo, en CONTROL DE RUNBOOK, seleccione Código y, a continuación, seleccione Agregar al lienzo.

    Screenshot to select code and add it to the canvas.

  7. Edite la actividad de código, asigne cualquier nombre de etiqueta adecuado y seleccione Lógica de actividad de creador.

    Screenshot to edit code activity.

  8. En la página Editor de código, escriba el siguiente código de PowerShell y seleccione Aceptar.

    try 
    { 
       Write-Output ("Logging in to Azure...") 
       Connect-AzAccount -Identity 
    } 
    catch { 
       Write-Error -Message $_.Exception 
       throw $_.Exception 
    } 
    
  9. Conecte la nueva actividad a las actividades que se conectaron anteriormente mediante Conectar a Azure y guarde el runbook.

    Screenshot to connect new activity to activities.

Por ejemplo, en el runbook Iniciar máquinas virtuales de Azure V2 de la galería de runbooks, deberá reemplazar las actividades Get Run As Connection y Connect to Azure por la actividad de código que usa el cmdlet Connect-AzAccount, tal y como se describió anteriormente. Para más información, consulte el nombre del runbook de muestra AzureAutomationTutorialWithIdentityGraphical que se crea con la cuenta de Automation.

Nota:

Los módulos de AzureRM PowerShell se retirarán el 29 de febrero de 2024. Si usa módulos de AzureRM PowerShell en runbooks gráficos, deberá actualizarlos para que usen módulos de Az PowerShell. Más información.

Pasos siguientes