Recursos con Tags
Inventario histórico consolidado desde el registro más reciente de cada recurso.
ResourceId y una columna Tag: <clave> por etiqueta; es
compatible con el script PowerShell de reemplazo de tags. Una fila sin valores de tag se omite y no
modifica Azure.
Guía para aplicar tags en Azure con PowerShell
Desde la descarga del CSV hasta la verificación final en Azure.
Tag: <clave>, Azure
quedará únicamente con los tags indicados en esa fila. Un tag que exista en Azure pero no
tenga valor en el CSV será eliminado de ese recurso.
Antes de comenzar: qué recursos se modifican
| Situación en el CSV | Resultado en Azure |
|---|---|
| El recurso no aparece en el archivo | No se modifica. |
La fila aparece, pero todas sus columnas Tag: están vacías | Se omite; no se modifica. |
La fila contiene uno o más valores Tag: | Se reemplaza el conjunto completo de tags de ese recurso. |
| El archivo contiene recursos de uno o varios grupos | Solo se procesan los ResourceId incluidos en el archivo. |
El sitio solamente genera el archivo. La actualización de Azure se ejecuta desde PowerShell en un equipo autorizado.
La cuenta utilizada debe cumplir los siguientes requisitos:
- Existir como miembro o invitado en el tenant que contiene las suscripciones.
- Tener registrado un método de autenticación multifactor (MFA) exigido por ese tenant.
- Tener el rol Tag Contributor —Colaborador de etiquetas— en cada grupo de recursos que se actualizará, o en la suscripción si debe abarcar todos sus grupos.
AADSTS50079, completa primero el registro en
Información de seguridad de Microsoft.
- Presiona Descargar > Descargar CSV para sincronizar con Azure.
- Conserva el archivo original como respaldo y trabaja sobre una copia.
- Para una prueba, deja únicamente los recursos que deseas modificar. Pueden pertenecer a uno o varios grupos de recursos.
- Edita exclusivamente las columnas cuyo nombre comienza con
Tag:. - Guarda el archivo como CSV UTF-8 delimitado por comas.
ResourceIdsin modificar y sin duplicados.ResourceNameyTags, requeridos para validar el formato.- Los valores exactos, incluidos ceros iniciales como
00100. - Los encabezados completos
Tag: Ambiente,Tag: CentroCosto, etc.
- Editar la columna descriptiva
Tagsesperando que se importe; el script la ignora. - Cambiar o reconstruir manualmente un
ResourceId. - Guardar como Excel
.xlsxo cambiar el separador del archivo. - Dejar un tag fuera de una fila con otros tags si deseas conservarlo en Azure.
Abre PowerShell y ubícate en la carpeta raíz que contiene scripts. Debes disponer del archivo scripts\Set-AzureResourceTagsFromCsv.ps1.
Set-Location "C:\ruta\dashboardcosts"
Install-Module Az.Accounts -Scope CurrentUser
Install-Module Az.Resources -Scope CurrentUser
Get-Module -ListAvailable Az.Accounts, Az.Resources
La instalación se realiza una sola vez. Si Windows bloquea un script obtenido desde otro equipo y confías en su origen, ejecuta
Unblock-File -LiteralPath .\scripts\Set-AzureResourceTagsFromCsv.ps1. No ingreses la contraseña en comandos ni archivos.
.\scripts\Set-AzureResourceTagsFromCsv.ps1 `
-CsvPath "C:\ruta\Recursos_con_Tags.csv" `
-ValidateOnly
Revisa especialmente estos contadores:
- Recursos CSV: total de filas válidas.
- A actualizar: recursos que tienen al menos un tag y que se enviarían a Azure.
- Sin tags: recursos que se omitirán sin modificar Azure.
- Suscripciones: cantidad de suscripciones involucradas.
.\scripts\Set-AzureResourceTagsFromCsv.ps1 `
-CsvPath "C:\ruta\Recursos_con_Tags.csv" `
-WhatIf
-WhatIf muestra cada ResourceId que se intentaría actualizar, pero no inicia sesión ni modifica Azure. Si aparece un recurso inesperado, corrige el CSV antes de continuar.
Obtén el Id. de directorio desde Microsoft Entra ID y usa el correo o UPN exacto de la cuenta autorizada:
.\scripts\Set-AzureResourceTagsFromCsv.ps1 `
-CsvPath "C:\ruta\Recursos_con_Tags.csv" `
-TenantId "<ID_DE_DIRECTORIO>" `
-AccountId "usuario@dominio.cl"
- PowerShell mostrará una dirección y un código de dispositivo.
- Abre la dirección indicada e ingresa el código.
- Selecciona exactamente la cuenta indicada en
-AccountIdy completa contraseña y MFA en Microsoft. - Comprueba el resumen presentado por el script.
- Escribe
REEMPLAZAR, respetando mayúsculas, para comenzar. Cualquier otro texto cancela la operación.
- Cada línea
[n/total] Actualizadoconfirma un recurso procesado. - El resumen final informa actualizados, omitidos y errores.
- Mantén abierta la consola y evita que el equipo entre en suspensión durante archivos grandes.
- El script no tiene un timeout total. Azure sí puede devolver errores temporales o solicitar autenticación nuevamente.
- Una interrupción no revierte los recursos ya actualizados. Puedes volver a ejecutar el mismo CSV: comenzará desde el principio y volverá a aplicar el estado declarado.
Al finalizar, abre algunos recursos representativos en Azure Portal, entra en Etiquetas y confirma tanto los valores esperados como la ausencia de tags que el CSV debía retirar.
| Mensaje o síntoma | Qué revisar |
|---|---|
AADSTS50079 o “Interacción requerida” | Registra MFA en el tenant de destino y vuelve a iniciar sesión. |
AuthorizationFailed o HTTP 403 | Asigna Tag Contributor en el recurso, grupo o suscripción correspondiente y espera unos minutos por la propagación. |
| Tenant o suscripción no válidos | Confirma que el Id. de directorio pertenezca a la suscripción y que la cuenta sea miembro o invitada con acceso. |
SharedTokenCacheCredential | Cierra las sesiones de PowerShell, repite el flujo de código de dispositivo y selecciona la misma cuenta indicada en -AccountId. |
| HTTP 429 o demasiadas solicitudes | Azure limitó temporalmente las llamadas. Espera y vuelve a ejecutar el archivo; revisa al final cuáles recursos fallaron. |
| Recurso inexistente | Exporta un CSV nuevo: el recurso pudo eliminarse o cambiar desde la última descarga. |
| El recurso no admite tags | Ese tipo de recurso tiene una limitación de Azure; el resto del archivo continúa procesándose. |
-ValidateOnly, simula con -WhatIf y conserva el archivo utilizado como evidencia del cambio.
Los tags se almacenan como texto visible: no incluyas contraseñas, tokens ni otros secretos.
| Nombre | Tipo | Grupo de recursos | Suscripción | Etiquetas Aplicadas | Etiquetas Faltantes |
|---|