Uso de directivas para aplicar estándares

Completado

Ha mejorado la organización de los recursos en grupos de recursos, y ha aplicado etiquetas a los recursos para usarlos en los informes de facturación y en la solución de supervisión. La agrupación y el etiquetado de los recursos han marcado la diferencia en los recursos existentes pero, ¿cómo se garantiza que los recursos nuevos sigan las reglas? Veamos cómo las directivas pueden ayudar a aplicar estándares en el entorno de Azure.

¿Qué es Azure Policy?

Azure Policy es un servicio que se puede usar para crear, asignar y administrar directivas. Estas directivas aplican las reglas que los recursos deben seguir. Estas directivas pueden aplicar estas reglas cuando se crean los recursos y puede evaluarlas con respecto a los recursos existentes para ofrecer visibilidad sobre el cumplimiento normativo.

Las directivas pueden exigir reglas, por ejemplo, que solo se permita la creación de determinados tipos de recursos, o bien que solo se permitan los recursos de regiones de Azure concretas. Puede aplicar convenciones de nomenclatura en el entorno de Azure. También puede exigir que se apliquen etiquetas específicas a los recursos. Veamos cómo funcionan las directivas.

Crear una directiva

Le gustaría asegurarse de que todos los recursos tienen la etiqueta Departamento asociada y bloquear la creación si la etiqueta no existe. Tendrá que crear una definición de directiva y, después, asignarla a un ámbito; en este caso, el ámbito es el grupo de recursos msftlearn-core-infrastructure-rg. Puede crear y asignar directivas a través de Azure Portal, Azure PowerShell o la CLI de Azure. En este ejercicio se le guía por la creación de una directiva en el portal.

Creación de la definición de directiva

  1. Vaya a Azure Portal en un explorador web si todavía no lo ha hecho. En el cuadro de búsqueda de la barra de navegación superior, busque Directiva y seleccione el servicio Directiva.

  2. En la sección Creación del menú de la izquierda, seleccione el panel Definiciones.

  3. Debería ver una lista de las directivas integradas que puede usar. En este caso, va a crear una directiva personalizada propia. Seleccione en + Definición de directiva en el menú superior.

  4. Este botón abre el cuadro de diálogo Nueva definición de directiva. Para establecer la Ubicación de definición, seleccione el elemento Iniciar selector de ámbito (...) de color azul. Seleccione la suscripción en la que se almacena la directiva, que debe ser la misma que la del grupo de recursos. Seleccione el botón Seleccionar.

  5. De nuevo en el cuadro de diálogo Nueva definición de directiva, escriba Exigir etiqueta en el recurso en el campo Nombre.

  6. En Descripción, escriba Esta directiva exige la existencia de una etiqueta en un recurso.

  7. En Categoría haga clic en Usar existente y, después, seleccione la categoría General.

  8. En Regla de directivas, elimine todo el texto en el cuadro y pegue el siguiente código JSON:

    {
      "mode": "Indexed",
      "policyRule": {
        "if": {
          "field": "[concat('tags[', parameters('tagName'), ']')]",
          "exists": "false"
        },
        "then": {
          "effect": "deny"
        }
      },
      "parameters": {
        "tagName": {
          "type": "String",
          "metadata": {
            "displayName": "Tag Name",
            "description": "Name of the tag, such as 'environment'"
          }
        }
      }
    }
    

    La definición de directiva debe ser similar al siguiente ejemplo. Seleccione Guardar para guardar la definición de directiva.

    Screenshot of Azure portal showing the new policy definition dialog.

Creación de una asignación de directiva

Ha creado la directiva, pero en realidad todavía no ha entrado en vigor. Para habilitar la directiva, tiene que crear una asignación. En este caso, la asignará al ámbito del grupo de recursos msftlearn-core-infrastructure-rg para que se aplique a todo su contenido.

  1. En el panel de la directiva, seleccione Asignaciones en la sección Creación de la izquierda.

  2. Seleccione Asignar directiva en la parte superior.

  3. En el panel Asignar directiva, asigne la directiva al grupo de recursos. Para Ámbito, seleccione Iniciar selector de ámbito de inicio (...) azul. Seleccione la suscripción y el grupo de recursos msftlearn-core-infrastructure-rg y, después, seleccione el botón Seleccionar.

  4. Para Definición de directiva, seleccione Iniciar selector de ámbito de inicio (...) azul. En la lista desplegable Tipo, seleccione Personalizado, seleccione la directiva Exigir etiqueta en el recurso que ha creado y, a continuación, seleccione el botón Agregar.

  5. Seleccione la pestaña Parámetros en la parte superior de la pantalla.

  6. En el panel Parámetros, escriba Departamento en Nombre de la etiqueta.

  7. Seleccione Revisar y crear, a continuación, seleccione Crear para crear la asignación.

Prueba de la directiva

Ahora que ha asignado la directiva al grupo de recursos, cualquier intento de crear un recurso sin la etiqueta Departamento generará un error.

Importante

Tenga en cuenta que la asignación de directiva puede tardar hasta 30 minutos en aplicarse. Debido a este retraso, puede que en los pasos siguientes la validación de la directiva se realice correctamente, pero la implementación todavía producirá un error. Si esto ocurre, permita más tiempo y vuelva a intentar llevar a cabo la implementación.

  1. En el menú de Azure Portal o en la página Inicio, seleccione Crear un recurso.

  2. Busque Cuenta de almacenamiento y seleccione Cuenta de almacenamiento. En los resultados, seleccione Crear.

  3. Seleccione la suscripción y luego el grupo de recursos msftlearn-core-infrastructure-rg.

  4. En Nombre de la cuenta de almacenamiento, asigne el nombre que prefiera, pero tenga en cuenta que debe ser un nombre único global.

  5. Deje el resto de las opciones en sus valores predeterminados y luego seleccione Revisar.

    Se producirá un error en la validación de la creación del recurso porque no ha aplicado una etiqueta Departamento al recurso. Si la directiva no ha provocado un error de validación, es posible que tenga que esperar unos minutos para que se habilite.

    Screenshot of Azure portal showing a policy validation failure on a new storage account without a tag.

    Corrija la infracción para poder implementar correctamente la cuenta de almacenamiento.

  6. Haga clic en Etiquetas en la parte superior del panel Crear cuenta de almacenamiento.

  7. Agregue una etiqueta Department:Finance a la lista.

    Screenshot of Azure portal showing a new Department tag to add during creation.

  8. Ahora haga clic en Revisar. Ahora la validación se superará y, si selecciona Crear, se creará la cuenta de almacenamiento.

Uso de directivas para aplicar estándares

Ha visto cómo se pueden usar las directivas para asegurarse de que los recursos tienen las etiquetas que los organizan. Hay otras maneras de usar las directivas en nuestro beneficio.

Podría usarlas para restringir las regiones de Azure en las que puede implementar recursos. Para las organizaciones muy reguladas o que tienen restricciones legales o normativas sobre dónde pueden residir los datos, las directivas ayudan a asegurarse de que los recursos no se aprovisionen en áreas geográficas que irán en contra de estos requisitos.

Las directivas se podrían usar para restringir los tipos de tamaños de máquina virtual que se pueden implementar. Puede que le interese permitir tamaños grandes de máquina virtual en las suscripciones de producción, pero asegurarse de minimizar los costos en las de desarrollo. Al denegar tamaños grandes de máquina virtual a través de la directiva en las suscripciones de desarrollo, puede asegurarse de que no se implementen en estos entornos.

También podría usar las directivas para aplicar convenciones de nomenclatura. Si en la organización se han normalizado convenciones de nomenclatura específicas, el uso de directivas para aplicarlas ayuda a mantener un estándar de nomenclatura coherente entre los recursos de Azure.