Definición de la pertenencia dinámica a grupos de red en Azure Virtual Network Manager con Azure Policy
En este artículo aprenderá a usar las instrucciones condicionales de Azure Policy para crear grupos de red con pertenencia dinámica. Estas instrucciones condicionales se crean mediante el editor básico al seleccionar parámetros y operadores en un menú desplegable. También aprenderá a usar el editor avanzado para actualizar las instrucciones condicionales de un grupo de red existente.
Azure Policy es un servicio que permite aplicar la gobernanza por recurso a gran escala. Se puede usar para especificar expresiones condicionales que definan la pertenencia a grupos, en lugar de listas explícitas de redes virtuales. Esta condición seguirá alimentando los grupos de red de forma dinámica, lo que permite que las redes virtuales se unan y abandonen el grupo automáticamente a medida que cambia la condición, sin que se requiera ninguna operación de Network Manager.
Requisitos previos
- Una cuenta de Azure con una suscripción activa. Cree una cuenta gratuita.
- Para modificar los grupos de red dinámicos, se debe conceder acceso con el control de acceso basado en roles. No se admite la administración clásica o la autorización heredada
Parámetros y operadores
Las redes virtuales con pertenencias dinámicas se seleccionan mediante instrucciones condicionales. Puede definir más de una instrucción condicional mediante operadores lógicos como AND y OR para escenarios en los que necesite restringir aún más las redes virtuales seleccionadas.
Lista de parámetros admitidos:
Parámetros | Campo de editor avanzado |
---|---|
Nombre | Name |
ID | Id |
Etiquetas | tag['tagName'] |
Subscription Name | [subscription().Name] |
Id. de suscripción | [subscription().Id] |
Etiquetas de suscripción | [subscription().tags['tagName']] |
Nombre del grupo de recursos | [resourceGroup().Name] |
Id. de grupo de recursos | [resourceGroup().Id] |
Etiquetas de grupos de recursos | [resourceGroup().tags['tagName']] |
Lista de operadores admitidos:
Operadores | Editor avanzado |
---|---|
Contains | "contains": <> |
No contiene | "notcontains": <> |
In | "in": <> |
No en el | "notin": <> |
Es igual a | "equals": <> |
No es igual a | "notequals": <> |
Contiene cualquiera de estos elementos | "contains": <> |
Contiene todos estos elementos | "contains": <> |
No contiene ninguno de estos elementos | "notcontains": <> |
Exists | "exists": true |
No existe | "exists": false |
Nota:
Los operadores Existe y No existe solo se usan con el parámetro Etiquetas.
Editor básico
Suponga que tiene las siguientes redes virtuales en su suscripción. Cada red virtual tiene una etiqueta asociada denominada environment con el valor respectivo de Production o Test.
Virtual Network | Nombre de etiqueta | Valor de etiqueta |
---|---|---|
myVNet01-EastUS | Environment | producción |
myVNet01-WestUS | Environment | producción |
myVNet02-WestUS | Environment | test |
myVNet03-WestUS | Environment | test |
Solo desea seleccionar redes virtuales cuya etiqueta tenga un par clave de valor de entorno igual a producción. Para empezar a usar el editor básico para crear la instrucción condicional, debe crear un nuevo grupo de red.
Vaya a la instancia de Azure Virtual Network Manager y seleccione Grupos de red en Configuración. Luego, seleccione + Crear para crear un grupo de redes nuevo.
Escriba un nombre y una descripción opcional para el grupo de red y seleccione Agregar.
Seleccione el grupo de red de la lista y elija Crear Azure Policy.
Escriba un nombre de directiva y deje las selecciones de ámbito a menos que se necesiten cambios.
En Criterios, seleccione Etiquetas en la lista desplegable bajo Parámetro y, a continuación, seleccione Par clave-valor en la lista desplegable Operador.
Escriba entorno y producción en Condición y seleccione Previsualizar recursos. Debería ver que myVNet01-EastUS y myVNet01-WestUS aparecen en la lista.
Seleccione Cerrar y Guardar.
Después de unos minutos, seleccione el grupo de red y elija Miembros del grupo en Configuración. Solo debería ver myVNet01-WestUS y myVNet01-WestUS.
Importante
El editor básico solo está disponible durante la creación de una instancia de Azure Policy. Una vez creada una directiva, todas las modificaciones se realizarán mediante JSON en la sección Directivas del administrador de redes virtuales o a través de Azure Policy.
Editor avanzado
El editor avanzado se puede usar para seleccionar redes virtuales durante la creación de un grupo de redes o al actualizar un grupo de redes existente. El editor avanzado, basado en JSON, es útil para crear y actualizar instrucciones condicionales de Azure Policy complejas por parte de usuarios experimentados.
Creación de directivas con el editor avanzado
Vaya a la instancia de Azure Virtual Network Manager y seleccione Grupos de red en Configuración. Luego, seleccione + Crear para crear un grupo de redes nuevo.
Escriba un nombre y una descripción opcional para el grupo de red y seleccione Agregar.
Seleccione el grupo de red de la lista y elija Crear Azure Policy.
Escriba un nombre de directiva y deje las selecciones de ámbito a menos que se necesiten cambios.
En Criterios, seleccione Editor avanzado (JSON) para abrir el editor.
Escriba el siguiente código JSON en el cuadro de texto y seleccione Guardar:
{ "field": "Name", "contains": "myVNet01" }
Después de unos minutos, seleccione el grupo de red y elija Miembros del grupo en Configuración. Solo debería ver myVNet01-WestUS y myVNet01-EastUS.
Importante
Todas las directivas de Azure que cree con el administrador de redes virtuales residirán en el área de servicios de Azure Policy. No se quitarán de las asignaciones y definiciones de Azure Policy cuando se elimine una instancia de Virtual Network Manager. Esto requiere la eliminación manual de las directivas. Información sobre cómo quitar directivas de Azure
Editar una directiva existente
Seleccione el grupo de redes creado en la sección anterior. Luego, seleccione la pestaña Directivas.
Seleccione la directiva creada en la sección anterior.
Verá las instrucciones condicionales para el grupo de redes en la vista del editor avanzado como se muestra a continuación:
[ { "field": "Name", "contains": "myVNet01" } ]
Para agregar otra instrucción condicional para un campo Nombre que no contenga WestUS, escriba lo siguiente en el editor avanzado:
{ "allOf": [ { "field": "Name", "contains": "VNet01" }, { "field": "Name", "notcontains": "WestUS" } ] }
El parámetro
"allOf"
contiene ambas instrucciones condicionales, separadas por el operador lógico AND.Seleccione Guardar.
Después de unos minutos, seleccione el grupo de red y elija Miembros del grupo en Configuración. Solo debería ver myVNet01-EastUS.
Consulte Parámetros y operadores para obtener la lista completa de parámetros y operadores que puede usar con el editor avanzado.
Más ejemplos
Estos son más ejemplos de instrucciones condicionales en el editor avanzado.
Ejemplo 1: solo operador OR
En este ejemplo se usa el operador lógico OR para separar dos instrucciones condicionales.
Editor básico:
Operador avanzado:
{ "anyOf": [ { "field": "Name", "contains": "myVNet01" }, { "field": "Name", "contains": "myVNet02" } ] }
El parámetro "anyOf"
contiene ambas instrucciones condicionales, separadas por el operador lógico OR.
Ejemplo 2: operador AND y OR al mismo tiempo
Editor básico:
Editor avanzado:
{
"allOf": [
{
"anyOf": [
{
"field": "Name",
"contains": "myVNet01"
},
{
"field": "Name",
"contains": "myVNet02"
}
]
},
{
"field": "Name",
"notcontains": "West"
}
]
}
En el código, se usa tanto "allOf"
como "anyOf"
. Puesto que el operador AND es el último de la lista, se encuentra en la parte externa del código que contiene las dos instrucciones condicionales con el operador OR.
Ejemplo 3: uso de valores de etiqueta personalizados con el editor avanzado
En este ejemplo, se crea una instrucción condicional que busca redes virtuales cuyo nombre incluye myVNet Y la etiqueta environment sea production.
Editor avanzado:
{ "allOf": [ { "field": "Name", "contains": "myVNet" }, { "field": "tags['environment']", "equals": "production" } ] }
Nota:
Las expresiones condicionales deben filtrar por el tipo de recurso Microsoft.Network/virtualNetwork para mejorar la eficacia. Esta condición se antepone en cualquier instrucción condicional especificada desde el portal.
Pasos siguientes
- Obtenga información sobre los grupos de redes.
- Cree una instancia de Azure Virtual Network Manager.
- Creación y administración de directivas para aplicar el cumplimiento