Conceptos básicos de la estructura de definiciones de Azure Policy

Las definiciones de Azure Policy describen las condiciones de cumplimiento de los recursos y qué sucederá si se cumple una condición. Una condición compara un campo o un valor de propiedad de recurso con un valor requerido. Para acceder a los campos de propiedad de recurso, se usa alias. Cuando el campo de una propiedad de recurso es una matriz, se puede usar un alias de matriz especial para seleccionar valores de todos los miembros de la matriz y aplicar una condición a cada uno de ellos. Más información sobre las condiciones.

Mediante el uso de asignaciones de directivas, puede controlar los costos y administrar los recursos. Por ejemplo, puede especificar que se permitan solo determinados tipos de máquinas virtuales. O bien, puede exigir que todos los recursos tengan una etiqueta concreta. Las asignaciones en un ámbito se aplican a todos los recursos de ese ámbito y por debajo. Si una asignación de directiva se aplica a un grupo de recursos, será aplicable a todos los recursos de dicho grupo de recursos.

Use JSON para crear una definición de directiva que contenga elementos para:

  • displayName
  • description
  • mode
  • metadata
  • parameters
  • policyRule
    • evaluaciones lógicas
    • effect

Por ejemplo, el siguiente JSON muestra una directiva que limita las ubicaciones donde se implementan los recursos:

{
  "properties": {
    "displayName": "Allowed locations",
    "description": "This policy enables you to restrict the locations your organization can specify when deploying resources.",
    "mode": "Indexed",
    "metadata": {
      "version": "1.0.0",
      "category": "Locations"
    },
    "parameters": {
      "allowedLocations": {
        "type": "array",
        "metadata": {
          "description": "The list of locations that can be specified when deploying resources",
          "strongType": "location",
          "displayName": "Allowed locations"
        },
        "defaultValue": [
          "westus2"
        ]
      }
    },
    "policyRule": {
      "if": {
        "not": {
          "field": "location",
          "in": "[parameters('allowedLocations')]"
        }
      },
      "then": {
        "effect": "deny"
      }
    }
  }
}

Para obtener más información, vaya al esquema de definición de directiva. Los patrones y elementos integrados de Azure Policy se encuentran en Ejemplos de Azure Policy.

Nombre para mostrar y descripción

Use displayName y description para identificar la definición de directiva y proporcionar contexto para cuando se use la definición. El displayName tiene una longitud máxima de 128 caracteres y description una longitud máxima de 512 caracteres.

Nota:

Durante la creación o actualización de una definición de directiva, id, type y name se definen mediante propiedades externas al JSON y no son necesarias en el archivo JSON. La captura de la definición de directiva a través del SDK devuelve las propiedades id, type y name como parte del JSON, pero cada una de ellas es información de solo lectura relacionada con la definición de directiva.

Tipo de directiva

Aunque no se puede establecer la propiedad policyType, hay tres valores devueltos por el SDK y visibles en el portal:

  • Builtin: Microsoft proporciona y mantiene estas definiciones de directiva.
  • Custom: todas las definiciones de directiva creadas por los clientes tienen este valor.
  • Static: indica una definición de directiva Cumplimiento normativo con Propiedad de Microsoft. Los resultados de cumplimiento de estas definiciones de directiva son los resultados de las auditorías que no son de Microsoft de la infraestructura de Microsoft. En Azure Portal, este valor se muestra a veces como Administrado por Microsoft. Para más información, consulte Responsabilidad compartida en la nube.

Mode

El mode se configura en función de si la directiva tiene como destino una propiedad de Azure Resource Manager o una propiedad del proveedor de recursos.

Modos de Resource Manager

El mode determina qué tipos de recurso se evalúan para una definición de directiva. Los modos admitidos son:

  • all: evalúe los grupos de recursos, las suscripciones y todos los tipos de recurso
  • indexed: evalúe solo los tipos de recurso que admitan las etiquetas y la ubicación

Por ejemplo, en un recurso, Microsoft.Network/routeTables admite etiquetas y ubicación, y se evalúa en ambos modos. Sin embargo, Microsoft.Network/routeTables/routes no se puede etiquetar y no se evalúa en el modo Indexed.

Se recomienda que establezca el mode en all en la mayoría de los casos. Todas las definiciones de directivas creadas a través del portal usan el modo all. Si usa PowerShell o la CLI de Azure, puede especificar el parámetro mode de forma manual. Si la definición de directiva no incluye un valor de mode , el valor predeterminado es all en Azure PowerShell y null en la CLI de Azure. Un modo null es lo mismo que usar indexed para la compatibilidad con versiones anteriores.

indexed debe usarse al crear directivas que apliquen etiquetas o ubicaciones. Aunque no es obligatorio, impide que los recursos que no son compatibles con etiquetas y ubicaciones aparezcan como no compatibles en los resultados de cumplimiento. La excepción son los grupos de recursos y las suscripciones. Las directivas que aplican la ubicación o etiquetas en un grupo de recursos o suscripción deben establecer mode en all y tener como destino específico el tipo Microsoft.Resources/subscriptions/resourceGroups o Microsoft.Resources/subscriptions. Para obtener un ejemplo, consulte Patrón: Etiquetas: ejemplo n.º 1. Para obtener una lista de los recursos que admiten etiquetas, consulte Compatibilidad con etiquetas de los recursos de Azure.

Modos del proveedor de recursos

El siguiente modo del proveedor de recursos es totalmente compatible:

  • Microsoft.Kubernetes.Data para administrar clústeres de Kubernetes y componentes como pods, contenedores y entradas. Se admite para clústeres de Azure Kubernetes Service y clústeres de Kubernetes habilitados para Azure Arc. Las definiciones que utilizan este modo del proveedor de recursos usan los efectos auditoría, denegar y deshabilitado.
  • Microsoft.KeyVault.Data para administrar almacenes y certificados en Azure Key Vault. Para más información sobre estas definiciones de directiva, consulte Integrar Azure Key Vault con Azure Policy.
  • Microsoft.Network.Data para administrar directivas de pertenencia personalizadas de Azure Virtual Network Manager mediante Azure Policy.

Actualmente se admiten los siguientes modos del proveedor de recursos como versión preliminar:

  • Microsoft.ManagedHSM.Data para administrar claves de módulo de seguridad de hardware (HSM) administrado mediante Azure Policy.
  • Microsoft.DataFactory.Data para usar Azure Policy para denegar nombres de dominio de tráfico saliente de Azure Data Factory no especificados en una lista de permitidos. Este modo de proveedor de recursos solo se aplica y no notifica el cumplimiento en la versión preliminar pública.
  • Microsoft.MachineLearningServices.v2.Data para administrar implementaciones de modelos de Azure Machine Learning. Este modo de proveedor de recursos notifica el cumplimiento de los componentes recién creados y actualizados. Durante la versión preliminar pública, los registros de cumplimiento permanecen durante 24 horas. Las implementaciones de modelos que existan antes de que se asignen estas definiciones de directiva no notifican el cumplimiento.

Nota:

A menos que se indique explícitamente, los modos del proveedor de recursos solo admiten definiciones de directivas integradas y las exenciones no se admiten en el nivel de componente.

Metadatos

La propiedad metadata opcional almacena información acerca de la definición de la directiva. Los clientes pueden definir las propiedades y los valores útiles para su organización en metadata. Aun así, hay algunas propiedades comunes que se usan en Azure Policy y los elementos integrados. Cada propiedad metadata tiene un límite de 1024 caracteres.

Propiedades de metadatos comunes

  • version (cadena): realiza el seguimiento de los detalles sobre la versión del contenido de una definición de directiva.
  • category (cadena): determina en qué categoría de Azure Portal se muestra la definición de directiva.
  • preview (booleano): marca true o false si la definición de directiva es versión preliminar.
  • deprecated (booleano): marca true o false para saber si la definición de directiva está marcada como en desuso.
  • portalReview (cadena): determina si los parámetros se deben revisar en el portal, independientemente de la entrada necesaria.

Nota

El servicio Azure Policy usa las propiedades version, preview y deprecated para transmitir el nivel de cambio a una definición o iniciativa de directiva integradas y el estado. El formato de version es: {Major}.{Minor}.{Patch}. Determinados estados, como en desuso o versión preliminar, están anexados a la propiedad version o están en otra propiedad como booleano. Para obtener más información sobre la forma en que Azure Policy crea versiones los elementos integrados, vea Control de versiones integradas. Para obtener más información sobre lo que significa que una directiva esté en desuso o en versión preliminar, consulte Directivas en versión preliminar y en desuso.

Ubicación de definición

Al crear una iniciativa o directiva, es necesario especificar la ubicación de la definición. La ubicación de la definición puede especificarse como un grupo de administración o una suscripción. La ubicación determina el ámbito al que pueden asignarse la directiva o la iniciativa. Los recursos deben ser miembros directos o elementos secundarios dentro de la jerarquía de la ubicación de la definición para que puedan ser destino de asignación.

Si la ubicación de la definición es:

  • Suscripción: la definición de la directiva solo se puede asignar a los recursos incluidos dentro de esa suscripción.
  • Grupo de administración: la definición de la directiva solo se puede asignar a los recursos incluidos dentro de grupos de administración secundarios y suscripciones secundarias. Si planea aplicar la definición de directiva a varias suscripciones, la ubicación debe ser un grupo de administración que contenga cada una de las suscripciones.

Para obtener más información, vea Descripción del ámbito de Azure Policy.

Pasos siguientes