ESEN

← Letra chica por examen

Microsoft Azure · Associate

AZ-104 · Microsoft Azure Administrator

Microsoft Certified: Azure Administrator Associate

Despliegue desde CI sin secretos (federación OIDC)

IAM● verificado hace 34 días◌ sin revisor externo

Con Contributor el pipeline no puede crear role assignments

Contributor no permite asignar roles en Azure RBAC (excluye Microsoft.Authorization/*/Write). Si tu Terraform asigna roles (por ejemplo, la identidad de una app sobre un Key Vault), Contributor no alcanza. La salida rápida es darle Owner o User Access Administrator al pipeline, y es justo lo que no querés. La salida correcta es Role Based Access Control Administrator con una condición que limite qué roles puede asignar (y que excluya los roles privilegiados).

⚑ Reportar desactualizado

Ver en el patrón →

DNS privado híbrido (on-premises ↔ nube)

Confiabilidad● verificado hace 34 días◌ sin revisor externo

Una regla comodín "." tiene que resolver nombres públicos, y 168.63.129.16 no sirve como destino

Si reenviás todo con ".", el DNS destino tiene que resolver nombres públicos: varios servicios de Azure dependen de eso. Algunos dominios reservados de Azure se ignoran igual en la regla comodín. Además, 168.63.129.16 no se acepta como destino de una regla, y Microsoft desaconseja el comodín en una VNet con un gateway de ExpressRoute porque puede romper la conectividad de gestión.

⚑ Reportar desactualizado

Ver en el patrón →

Ingesta privada de objetos con expiración (TTL)

Confiabilidad● verificado hace 34 días◌ sin revisor externo

La policy tarda hasta 24 h en aplicarse y corre en background

Al crear o editar una lifecycle policy puede tardar hasta 24 h en entrar en vigor, y cada corrida puede llevar más de un día en cuentas grandes. No uses lifecycle como control de seguridad ("el archivo ya no existe a las 48 h"): si el requisito es estricto, borrá desde la aplicación o usá un job propio.

⚑ Reportar desactualizado

Ver en el patrón →

Costo● verificado hace 34 días◌ sin revisor externo

Con soft delete activo, "borrar" no libera capacidad

Si la cuenta tiene soft delete de blobs, la acción delete de lifecycle deja el blob en estado soft-deleted durante el período de retención, y lo seguís pagando. Tu TTL efectivo de costo es ttl_days + días de soft delete. El módulo lo expone como variable para que sea una decisión explícita.

⚑ Reportar desactualizado

Ver en el patrón →

Confiabilidad● verificado hace 34 días◌ sin revisor externo

En Azure el prefijo del filtro incluye el nombre del contenedor

prefix_match es "contenedor/ruta", no solo la ruta. Un filtro "incoming/" que en S3 o Cloud Storage funciona, en Azure matchea un contenedor llamado "incoming" y nunca borra nada. El error no es visible: la policy se crea sin fallar.

⚑ Reportar desactualizado

Ver en el patrón →

IAM● verificado hace 34 días◌ sin revisor externo

Deshabilitar Shared Key obliga a que Terraform use Entra ID

Con shared_access_key_enabled = false, toda llamada de data plane tiene que autenticarse con Entra ID, incluida la del provider. Configurá storage_use_azuread = true en el provider azurerm y dale a la identidad del pipeline un rol de datos (no alcanza con Contributor, que es solo control plane).

⚑ Reportar desactualizado

Ver en el patrón →

IAM● verificado hace 34 días◌ sin revisor externo

Los role assignments son por cuenta o contenedor; por prefijo hacen falta condiciones ABAC

Azure Storage admite role assignments a nivel de cuenta y de contenedor. Para acotar por prefijo o ruta hacen falta condiciones ABAC sobre el role assignment (atributos Blob prefix y Blob path). Alternativa simple: un contenedor dedicado a la ingesta (lo que hace este módulo).

⚑ Reportar desactualizado

Ver en el patrón →

Red● verificado hace 34 días◌ sin revisor externo

Private Endpoint sin zona DNS privada: el firewall del servicio puede responder 403

Crear el Private Endpoint no alcanza: el FQDN <cuenta>.blob.core.windows.net tiene que resolver a la IP privada vía la zona privatelink.blob.core.windows.net vinculada a la VNet (o a tu DNS híbrido). Si resuelve a la IP pública y la cuenta tiene firewall, este rechaza la request con 403 y parece un problema de permisos.

⚑ Reportar desactualizado

Ver en el patrón →

Web API privada Zero Trust con PostgreSQL sin contraseñas

Red● verificado hace 34 días◌ sin revisor externo

La subnet de ACA no se puede agrandar y su tamaño mínimo depende del tipo de environment

Un environment con workload profiles (el default) necesita una subnet dedicada de al menos /27 delegada a Microsoft.App/environments; uno Consumption-only (legacy) necesita /23 y NO puede estar delegada. El tamaño no se puede cambiar después de crear el environment, y en despliegues single-revision el consumo de IPs se duplica temporalmente. Dimensioná pensando en el pico de réplicas, no en el día uno.

⚑ Reportar desactualizado

Ver en el patrón →

Costo● verificado hace 34 días◌ sin revisor externo

Detener la base corta el cómputo, pero arranca sola a los 7 días

PostgreSQL Flexible factura cómputo mientras está encendido. Detenerlo corta el cobro de cómputo (no el de storage), pero el servicio lo vuelve a arrancar automáticamente a los 7 días. Para entornos de desarrollo, automatizá el stop en vez de confiar en un stop manual.

⚑ Reportar desactualizado

Ver en el patrón →