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
version
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 recursoindexed
: 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.
Cuando se publique el control de versiones de Azure Policy, los siguientes modos de proveedor de recursos no admitirán el control de versiones integrado:
Microsoft.DataFactory.Data
Microsoft.MachineLearningServices.v2.Data
Microsoft.ManagedHSM.Data
Versión (versión preliminar)
Las definiciones de directivas integradas pueden hospedar varias versiones con la misma definitionID
. Si no se especifica ningún número de versión, todas las experiencias mostrarán la versión más reciente de la definición. Para ver una versión específica de un elemento integrado, se debe especificar en la API, el SDK o la interfaz de usuario. Para hacer referencia a una versión específica de una definición dentro de una asignación, vea Versión de definición dentro de la asignación
El servicio Azure Policy usa version
, preview
, y deprecated
propiedades para transmitir el estado y el nivel de cambio a una definición o iniciativa de directiva integrada. El formato de version
es: {Major}.{Minor}.{Patch}
. Cuando una definición de directiva está en estado de vista previa, el sufijo vista previa se anexa a la propiedad version
y se trata como un booleano. Cuando una definición de directiva está en desuso, el desuso se captura como un valor booleano en los metadatos de la definición mediante "deprecated": "true"
.
- Versión principal (ejemplo: 2.0.0): introduce cambios importantes, como cambios importantes en la lógica de reglas, quitando parámetros, agregando un efecto de cumplimiento de forma predeterminada.
- Versión secundaria (ejemplo: 2.1.0): introduce cambios como cambios de lógica de reglas secundarias, agregar nuevos valores permitidos de parámetros, cambiar a
roleDefinitionIds
, agregar o mover definiciones dentro de una iniciativa. - Versión de revisión (ejemplo: 2.1.4): introduce cambios de cadena o metadatos y escenarios de seguridad de vidrio de interrupción (poco frecuente).
Para más información sobre las versiones integradas de Azure Policy, consulte Control de versiones integrado. 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.
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.
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
- Para obtener más información sobre la estructura de definición de directiva, vaya a los parámetros, la regla de directiva y el alias.
- Para las iniciativas, ve a la estructura de definición de iniciativa.
- Puede consultar ejemplos en Ejemplos de Azure Policy.
- Vea la Descripción de los efectos de directivas.
- Obtenga información acerca de cómo se pueden crear directivas mediante programación.
- Obtenga información sobre cómo obtener datos de cumplimiento.
- Obtenga información sobre cómo corregir recursos no compatibles.
- En Organización de los recursos con grupos de administración de Azure, obtendrá información sobre lo que es un grupo de administración.