Az Cli

La CLI de Azure se puede instalar en entornos Windows, macOS y Linux. También se puede ejecutar en un contenedor de Docker y Azure Cloud Shell. Permite configurar y administrar recursos de Azure.

Instalación

Windows

Detalles de la instalación: https://learn.microsoft.com/en-us/cli/azure/install-azure-cli-windows?tabs=powershell

O también se puede utilizar el siguiente comando que descarga y ejecuta el instalador .msi de 64-bit:

$ProgressPreference = 'SilentlyContinue'; Invoke-WebRequest -Uri https://aka.ms/installazurecliwindowsx64 -OutFile .\AzureCLI.msi; Start-Process msiexec.exe -Wait -ArgumentList '/I AzureCLI.msi /quiet'; Remove-Item .\AzureCLI.msi

Linux

https://learn.microsoft.com/en-us/cli/azure/install-azure-cli-linux?view=azure-cli-latest&pivots=apt

sudo apt install azure-cli

Conexión

Para iniciar sesión con Az Cli, se pueden usar los siguientes comandos:

Se abre una ventana emergente para iniciar sesión:

az login

Línea de comandos

Se inicia sesión desde la línea de comandos.

  • Se registra la contraseña en el historial de la consola:

az login -u <email> -p <password>
  • No se registra la contraseña en el historial de la consola:

az login -u <email>
read -sp "Azure password: " AZ_PASS && echo && az login -u <username> -p $AZ_PASS
$AzCred = Get-Credential -UserName <username>
az login -u $AzCred.UserName -p $AzCred.GetNetworkCredential().Password

Sin permisos en suscripciones

az login -u <email> -p <password> --allow-no-subscriptions

Con código de dispositivo

Si se quiere iniciar sesión sin el popup o usando credenciales desde la consola, se puede usar el siguiente comando, que dará un código para usarlo desde un positivo en el que se haya iniciado sesión.

  1. Se ejecuta el comando y se obtiene un código:

az login --use-device-code
  1. Se abre la url "https://microsoft.com/devicelogin" en un dispositivo donde se haya iniciado sesión.

  2. Se añade el código mostrado en el paso 1.

Tokens

  • Obtener token de acceso:

az account get-access-token
az account get-access-token --resource-type aad-graph
az account get-access-token --subscription "<subscription ID or name>"

Configuración

az configure

Comandos

az find "vm"
az find "az vm"
az find "az vm list"

Se puede modificar la salida de información con el parámetro "--output":

  • --output table

Información general

  • Detalles del Tenant:

az account tenant list
  • Obtener detalles de la subscripción actual:

az account subscription list
  • Obtener detalles del usuario actual:

az ad signed-in-user show
  • Obtener los objetos propiedad del usuario actual:

az ad signed-in-user list-owned-objects
  • Obtener las máquinas virtuales donde el usuario actual tiene al menos permisos de lectura:

az vm list
  • Obtener nombre de las máquinas virtuales:

az vm list --query "[].[name]" -o table

Usuarios

  • Obtener usuarios:

az ad user list

Esta herramienta utiliza JMESPath como consulta para filtrar información.

  • Filtrar la salida para mostrar únicamente userPrincipalName y displayName:

az ad user list --query "[].[userPrincipalName,displayName]" --output table
  • Filtrar la salida para mostrar las columnas anteriores modificando el nombre de la columna:

az ad user list --query "[].{UPN:userPrincipalName, Name:displayName}" --output table
  • Obtener detalles de un usuario en concreto:

az ad user show --id [email protected]
  • Obtener los usuarios cuyo displayName contenga la cadena admin (case sensitive):

az ad user list --query "[?contains(displayName,'admin')].displayName"
  • Lo mismo que antes, pero NOT case sensitive:

az ad user list | ConvertFrom-Json | %{$_.displayName -match "admin"}
  • Todos los usuarios sincronizados desde on-prem:

az ad user list --query "[?onPremisesSecurityIdentifier!=null].displayName"
  • Usuarios que son de AzureAD:

az ad user list --query "[?onPremisesSecurityIdentifier==null].displayName"
  • Para ver más opciones de filtrado:

az ad user show list --query-examples

Grupos

  • Obtener todos los grupos:

az ad group list

az ad group list --query "[].[displayName]" -o table
  • Obtener un grupo en concreto según su DisplayName u ObjectID:

az ad group show -g "VM Admins"

az ad group show -g fe5e6dcb-1c46-2abe-b964-9af5ba122494
  • Obtener los grupos que contengan en el DisplayName una cadena en concreto (case sensitive):

az ad group list --query "[?contains(displayName,'admin')].displayName"
  • Obtener los grupos que contengan en el DisplayName una cadena en concreto (NOT case sensitive):

az ad group list | ConvertFrom-Json | %{$_.displayName -match "admin"}
  • Obtener los grupos sincronizados desde on-prem:

az ad group list --query "[?onPremisesSecurityIdentifier!=null].displayName"
  • Obtener los grupos de AzureAD:

az ad group list --query "[?onPremisesSecurityIdentifier==null].displayName"
  • Obtener miembros de un grupo:

az ad group member list -g "VM Admins" --query "[].[displayName]" -o table
  • Comprobar si un usuario es miembro de un grupo:

az ad group member check --group "VM Admins" --member-id fe4e6dcb-1c46-2abe-b964-9af5ba322494
  • Obtener los ObjectID de los grupos a los que pertenece el grupo:

az ad group get-member-groups -g "VM Admins"
  • Añadir un usuario a un grupo usando sus ObjectID:

Add-AzureADGroupMember -ObjectId "<ID del grupo>" -RefObjectId "<ID del usuario>" -Verbose
Add-AzureADGroupMember -ObjectId "e6875783-1378-4072-b242-
84c08c6dc0d7" -RefObjectId "f63e133c-bd01-4b1b-b3b7-7cd949fd45f3" -Verbose

Aplicaciones

  • Obtener todas las aplicaciones registradas en el Tenant:

az ad app list

az ad app list --query "[].[displayName]" -o table
  • Obtener todos los detalles de una aplicación:

az ad app show --id fe4e6dcb-1c45-2abe-b964-9af5ba322494
  • Obtener una aplicación basado en su DisplayName:

az ad app list --query "[?contains(displayName,'app')].displayName"
  • Obtener una aplicación que contenga una cadena en concreto en el DisplayName:

az ad app list | ConvertFrom-Json | %{$_.displayName -match "app"}
  • Obtener al dueño/a de una aplicación:

az ad app owner list --id fe4e6dcb-1c45-2abe-b964-9af5ba321494 --query "[].[displayName]" -o table
  • Obtener las aplicaciones que cuentan con contraseña:

az ad app list --query "[?passwordCredentials !=null].displayName"
  • Obtener las aplicaciones que tienen claves de credenciales (usan certificados de autenticación):

az ad app list --query "[?keyCredentials !=null].displayName"
  • Obtener aplicaciones web:

az webapp list
  • Obtener aplicaciones de funciones de Azure:

az functionapp list

Servicios principales

  • Obtener todos los Service Principals:

az ad sp list --all
az ad sp list --all --query "[].[displayName]" -o table
  • Obtener los detalles de un Service Principal según su DisplayName u ObjectID:

az ad sp show --id fe4e6dcb-1c45-1abe-b964-9af5ba321494
  • Obtener un Service Principal cuyo DisplayName empiece por la cadena en concreto :

az ad sp list --all --query "[?contains(displayName,'app')].displayName"
  • Obtener un Service Principal que contenga una cadena en concreto en su DisplayName:

az ad sp list --all | ConvertFrom-Json | %{$_.displayName -match "app"}
  • Obtener al dueño/a de un Service Principal:

az ad sp owner list --id fe4e6dcb-1c45-1abe-b964-9af5ba321494 --query "[].[displayName]" -o table
  • Obtener los Service Principals cuyo dueño/a es el usuario actual:

az ad sp list --show-mine
  • Obtener los Service Principals que cuentan con contraseña:

az ad sp list --all --query "[?passwordCredentials != null].displayName"
  • Obtener los Service Principals que tienen claves de credenciales (usan certificados de autenticación):

az ad sp list -all --query "[?keyCredentials != null].displayName"

Roles

az role assignment list --assignee [email protected]

Referencias

Última actualización

¿Te fue útil?