Skip to main content

Command Palette

Search for a command to run...

🤝 Diseño de gobernanza modular en suscripciones con Azure

Simulación realista de Dev, QA y Prod usando grupos de recursos

Updated
🤝 Diseño de gobernanza modular en suscripciones con Azure
J

Ingeniero de software senior con más de 12 años de experiencia, especializado en el desarrollo de aplicaciones empresariales y soluciones en Azure. Mi trayectoria incluye el diseño e implementación de Aplicaciones Web, Desktop, API's y Microservicios escalables, y desarrollo de arquitecturas robustas basadas en .NET.

Email: jesusegarcia@gmail.com CV Online: https://app.onlinecv.es/share/07cd112ed04b4f6db4904dca3be52244

📘 Introducción al Proyecto y Conceptos Básicos

🧠 ¿Qué es este servicio?

Un modelo de gobernanza dentro de una única suscripción que simula entornos separados (Producción, Desarrollo, Sandbox) utilizando:

  • Grupos de recursos

  • Etiquetas

  • Azure Policy

🌐 ¿Qué cubrirá este post?

  • Estructura lógica para entornos segmentados

  • Uso de etiquetas y políticas para cumplimiento

  • Flujo de gobernanza y pruebas de validación

✅ ¿Por qué es importante para los arquitectos de soluciones?

Permite validar diseños de gobernanza y seguridad sin necesidad de varias suscripciones, ideal para:

  • Laboratorios personales

  • Simulaciones de escenarios reales

  • Formación cloud-native

🛏️ Diseño de la Arquitectura

📘 Diagrama Lógico

SubscripcionPruebas
├── RG-Produccion (Resource Group)
│   └── App1, Storage, DB
├── RG-Desarrollo (Resource Group)
│   └── VMs, WebApps de pruebas
└── RG-Sandbox (Resource Group)
    └── Recursos de experimentación

⚖️ Justificación de las decisiones

  • Separación lógica por entornos usando Resource Groups

  • Etiquetas para clasificar recursos y habilitar filtrado de costos

  • Azure Policy para forzar cumplimiento desde el inicio

🔒 Consideraciones de seguridad y mejores prácticas

  • Aplicar etiquetas env, owner a todos los recursos

  • Restringir ubicaciones y SKUs desde Azure Policy

⚖️ Configuración y/o implementación

  1. Se crean tres grupos de recursos con el comando:

    az group create --name RG-Produccion --location eastus
    az group create --name RG-Desarrollo --location eastus
    az group create --name RG-Sandbox --location eastus
    

    Esto organiza los recursos por entorno, facilitando la aplicación de políticas y gestión centralizada.

  2. Se valida visualmente que los grupos fueron creados correctamente en el portal de Azure, utilizando filtros por nombre o ubicación

  3. Definir la clave de etiqueta env
    Se establece la clave env:

    az tag create --name env
    
  4. Agregar valores a la etiqueta env
    Se definen los valores esperados de la etiqueta:

    az tag add-value --name env --value Produccion
    az tag add-value --name env --value Desarrollo
    az tag add-value --name env --value Sandbox
    
  5. Crear una definición de política
    Se crea una política personalizada para exigir el uso de la etiqueta env en los recursos:

    az policy definition create --name "require-env-tag" \
      --display-name "Require env tag" \
      --description "Ensure resources have the 'env' tag" \
      --rules rules.json \
      --mode Indexed
    

    El archivo rules.json define la lógica para rechazar recursos que no incluyan la etiqueta.

    {
      "if": {
        "field": "[concat('tags', '.', 'env')]",
        "exists": "false"
      },
      "then": {
        "effect": "deny"
      }
    }
    
  6. Asignar la política a los grupos de recursos
    Se aplica la política a cada grupo de recursos para garantizar su cumplimiento:

    az policy assignment create --name "enforce-env-tag" \
      --display-name "Require env tag" \
      --policy require-env-tag \
      --scope /subscriptions/{subscriptionId}/resourceGroups/RG-Produccion
    
  7. Prueba de cumplimiento
    Se intenta crear un recurso sin etiquetas. Este intento falla, y Azure muestra un mensaje indicando que la política ha bloqueado la acción por incumplimiento.

Validación con etiqueta correcta
Finalmente, se repite la creación del recurso pero ahora incluyendo la etiqueta:

az storage account create --name pruebacumple01 \
  --resource-group RG-Produccion \
  --location eastus --sku Standard_LRS \
  --kind StorageV2 --tags env=Produccion

El recurso se crea exitosamente, validando que la política funciona como se esperaba.

🛠️ ¿Qué problemas puede resolver?

  • Diseños personales con necesidades enterprise

  • Entrenamiento en Azure Policy sin producir gastos altos

  • Simulación realista de despliegues por entorno

  • Segmentación de costos y recursos desde el diseño

🎓 Casos de uso reales

  • Arquitectos practicando diseños de referencia

  • Consultores creando PoCs sin comprometer entornos productivos

  • Estudiantes avanzados preparándose para certificaciones

📊 Buenas prácticas

  • Aplicar etiquetas desde el inicio

  • Usar Azure Policy para evitar configuraciones erróneas

  • Separar los RG según ciclo de vida del recurso

  • Medir costos por env usando Cost Management

📃 Herramientas de apoyo

  • Azure CLI

  • Azure Policy

  • Azure Cost Management + filtros

  • Azure Portal (para validación visual)

🔗 URL de apoyo