De forma recurrente utilizo una de mis suscripciones de Azure para darle acceso a mis alumnos. De esta forma podemos realizar todas las prácticas y laboratorios de la formación, sin estar obligados a un AzurePass o a que metan su tarjeta de crédito.
Esto implica que debo tener un control exhaustivo de borrar todos los recursos de la cuenta al finalizar el día, o el curso. Y resetear y deshabilitar las cuentas de usuario.
Hoy, haciendo laboratorios del AZ-400, me he llevado la sorpresa de tener decenas de cuentas de aplicaciones -las llamadas Service Principals- vivitas y con permisos sobre la suscripción. Y he decidido hacerme un pequeño powershell para limpiarlas.
Powershelleando que son dos lineas
La verdad es que es muy sencillo.
Lo primero es identificarme en Azure, y decirle cual va a ser la suscripción que voy a utilizar como contexto de ejecución; a continuación recupero todos los Service Principals del directorio activo; y, por último, dentro de un bucle obtengo su nombre, lo muestro y lo borro.
Login-AzureRmAccount #Get-AzureRmSubscription $suscriptionId = "xxxx-xxx-xxx-xxx-xxxxxxxxx" Set-AzureRmContext -SubscriptionId $suscriptionId #Borra los Service Principal de las aplicaciones $applications = Get-AzureRmADApplication Foreach($application in $applications) { Write-Host $application.DisplayName Remove-AzureRmADApplication -objectid $application.ObjectId -Verbose -Force }
La principal mejora que tengo que hacerle a este script es el utilizar un identificador de la suscripción para evitar tener que andar utilizando mis credenciales.
Espero que sea de utilidad