# Migrer votre Azure automation vers une identité managée

Sur vos ressources Azure Automation, vous pourrez trouver ce message vous rappelant de faire cette mise à jour du service:

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1680184538961/c52dd971-6604-4d2d-861a-bda5cefedc00.png align="center")

Pour ce faire rien de plus simple, il suffit de se rendre dans la partie "Account Settings" et de cliquer sur Identity. Ici vous devriez avoir ce rendu si vous n'avez pas encore fait la mise à jour de votre service :

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1680184838499/7baf8e0d-67f7-424f-9afa-cd2c74a2d09d.png align="center")

Sur cet écran, il suffit d'activer la fonctionnalitée pour ajouter une identitée managée à votre service Automation Account et de patienter quelques instants pour y retrouver l'ID associé à cette identité :

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1680185183341/cff56b83-ddcc-41da-b253-d41ea4cd29d2.png align="center")

En utilisant le bouton "**Azure role assignments**" vous pourrez ajouter les permissions nécessaires pour l'éxécution de vos scripts. Dans mon cas, utilisant des scripts pour mettre en place des mécanismes de FinOps, je vais ajouter le droit de contribution sur ma souscription :

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1680185452917/34d35a34-af02-4202-ace6-531cc3a1b2d4.png align="center")

Une fois cela fait, il nous reste encore une action à réaliser sur les runbooks afin d'utiliser cette nouvelle identité.

Ici dans mon code PowerShell, je vais remplacer ces lignes de connection qui utilise le "Run As Account" :

```powershell
  $connectionName = "AzureRunAsConnection"
  try
  {
      # Get the connection "AzureRunAsConnection"
      $servicePrincipalConnection=Get-AutomationConnection -Name $connectionName         

      "Logging in to Azure..."
      Add-AzureRmAccount `
          -ServicePrincipal `
          -TenantId $servicePrincipalConnection.TenantId `
          -ApplicationId $servicePrincipalConnection.ApplicationId `
          -CertificateThumbprint $servicePrincipalConnection.CertificateThumbprint 
  }
  catch {
      if (!$servicePrincipalConnection)
      {
          $ErrorMessage = "Connection $connectionName not found."
          throw $ErrorMessage
      } else{
          Write-Error -Message $_.Exception
          throw $_.Exception
      }
  }
```

Par ce nouveau code :

```powershell
try 
{ 
    Write-Output ("Logging in to Azure...") 
    Connect-AzAccount -Identity 
} 
catch { 
    Write-Error -Message $_.Exception 
    throw $_.Exception 
} 
```

> Cette action sera à répéter dans tous les Runbooks utilisant l'ancien "Run As Account"

Au besoin, n'hésitez pas à vous référer à la documentation officielle fournie par Microsoft: [Migrer d’un compte d’identification vers des identités managées | Microsoft Learn](https://learn.microsoft.com/fr-fr/azure/automation/migrate-run-as-accounts-managed-identity?tabs=run-as-account)
