Bloqueo del uso de conectores en Azure Logic Apps
Se aplica a: Azure Logic Apps (consumo + estándar)
Si su organización no permite la conexión a recursos restringidos o no aprobados mediante el uso de sus conectores administrados en Azure Logic Apps, puede bloquear la capacidad para crear y usar esas conexiones en flujos de trabajo de aplicaciones lógicas. Con Azure Policy puede definir y aplicar directivas que impiden la creación o el uso de conexiones para los conectores que desea bloquear. Por ejemplo, por motivos de seguridad, es posible que desee bloquear las conexiones a plataformas de medios sociales específicos u otros servicios y sistemas.
En este artículo se muestra como configurar una directiva que bloquea conexiones específicas mediante Azure Portal, pero puede crear definiciones de directiva de otras maneras. Por ejemplo, puede usar la API de REST de Azure, Azure PowerShell, la CLI de Azure y las plantillas de Azure Resource Manager. Para más información, consulte el Tutorial: Creación y administración de directivas para aplicar el cumplimiento.
Requisitos previos
Una cuenta y una suscripción de Azure. Si no tiene una suscripción, cree una cuenta Azure gratuita.
El identificador de referencia del conector que desea bloquear. Para obtener más información, consulte Búsqueda del identificador de referencia del conector.
Búsqueda del identificador de referencia del conector
Si ya tiene una aplicación lógica con la conexión que desea bloquear, siga los pasos para Azure Portal. De lo contrario, siga estos pasos.
Documentación de referencia de conectores
Revise los conectores para Azure Logic Apps.
Busque la página de referencia del conector que desea bloquear.
Por ejemplo, si quiere bloquear el conector de Instagram, que está en desuso, vaya a esta página:
https://learn.microsoft.com/connectors/instagram/
En la dirección URL de la página, copie y guarde el identificador de referencia del conector al final sin la barra diagonal (
/
), por ejemplo,instagram
.Más adelante, al crear la definición de directiva, usará este identificador en la instrucción de condición de la definición, por ejemplo:
"like": "*managedApis/instagram"
Azure portal
En Azure Portal, busque y abra el flujo de trabajo de la aplicación lógica.
En el menú de la aplicación lógica, seleccione una de las siguientes opciones:
Aplicación lógica de consumo: en Herramientas de desarrollo, seleccione Conexiones de API.
Aplicación lógica estándar: en Flujos de trabajo, seleccione Conexiones. En el panel Conexiones, seleccione Conexiones de API si aún no está seleccionada.
En el panel Conexiones de API, seleccione la conexión. Cuando se abra el panel de conexión, en la esquina superior derecha, seleccione Vista JSON.
Busque el objeto
api
, que contiene una propiedadid
y un valor que tiene el formato siguiente:"id": "/subscriptions/{Azure-subscription-ID}/providers/Microsoft.Web/locations/{Azure-region}/managedApis/{connection-name}"
En el ejemplo siguiente se muestra la propiedad
id
y el valor de una conexión a Instagram:"id": "/subscriptions/xxxxxXXXXXxxxxxXXXXXxxxxxXXXXX/providers/Microsoft.Web/locations/westus/managedApis/instagram"
En el valor de la propiedad
id
, copie y guarde el identificador de referencia del conector al final, por ejemplo,instagram
.Más adelante, al crear la definición de directiva, usará este identificador en la instrucción de condición de la definición, por ejemplo:
"like": "*managedApis/instagram"
Bloquear la creación de conexiones
Para bloquear la creación de una conexión en un flujo de trabajo de una aplicación lógica, siga estos pasos:
En el cuadro de búsqueda de Azure Portal, ingrese directiva y seleccione Directiva.
En el menú Directiva, en Creación, seleccione Definiciones. En la barra de herramientas del panel Definiciones, seleccione Definición de directiva.
En el panel Definición de directiva, proporcione la información de la definición de directiva, en función de las propiedades descritas en el ejemplo:
Propiedad Necesario Valor Descripción Ubicación de definición Sí <Azure-subscription-name> Suscripción de Azure que se usará para la definición de la directiva. 1. Para buscar la suscripción, seleccione el botón de puntos suspensivos ( ... ).
2. En la lista Suscripción, busque y seleccione su suscripción.
3. Cuando finalice, haga clic en Seleccionar.Nombre Sí <policy-definition-name> Nombre que se va a usar para la definición de directiva. Descripción No <policy-definition-name> Descripción de la definición de directiva. Categoría Sí Aplicaciones lógicas Nombre de una categoría existente o nueva categoría de la definición de directiva. Aplicación de directivas Sí Enabled Esta configuración especifica si se debe habilitar o deshabilitar la definición de directiva al guardar el trabajo. En REGLA DE DIRECTIVA, el cuadro de edición JSON se rellena previamente con una plantilla de definición de directiva. Reemplace esta plantilla por su definición de directiva en función de las propiedades descritas en la tabla siguiente y siguiendo esta sintaxis:
{ "mode": "All", "policyRule": { "if": { "field": "Microsoft.Web/connections/api.id", "like": "*managedApis/{connector-name}" }, "then": { "effect": "deny" } }, "parameters": {} }
Propiedad Valor Descripción mode
All
Modo que determina los tipos de recursos que evalúa la directiva. En este escenario se establece
mode
enAll
, que aplica la directiva a los grupos de recursos, las suscripciones y todos los tipos de recursos de Azure.Para obtener más información, vea Estructura de definición de Azure Policy: modo.
if
{condition-to-evaluate}
Condición que determina cuándo aplicar la regla de directiva. En este escenario,
{condition-to-evaluate}
determina si el valor deapi.id
enMicrosoft.Web/connections/api.id
coincide con*managedApis/{connector-name}
, que especifica un valor de carácter comodín (*).Para obtener más información, vea Estructura de definición de Azure Policy: regla de directiva.
field
Microsoft.Web/connections/api.id
Valor field
que se va a comparar con la condición.En este escenario,
field
usa el alias,Microsoft.Web/connections/api.id
, para tener acceso al valor de la propiedad del conector,api.id
.like
*managedApis/{connector-name}
Operador lógico y valor que se va a usar para comparar el valor de field
.En este escenario, el operador
like
y el carácter comodín (*) se aseguran de que la regla funciona independientemente de la región, y la cadena,*managedApis/{connector-name}
, es el valor que debe coincidir, donde{connector-name}
es el identificador del conector que desea bloquear.Por ejemplo, supongamos que desea bloquear la creación de conexiones a las plataformas o bases de datos de medios sociales:
- X:
x
- Instagram:instagram
- Facebook:facebook
- Pinterest:pinterest
- SQL Server or Azure SQL:sql
Para buscar estos identificadores de conector, vea Búsqueda del identificador de referencia del conector anteriormente en este tema.
then
{effect-to-apply}
Efecto que se va a aplicar cuando se cumpla la condición de if
.En este escenario,
{effect-to-apply}
es bloquear y generar un error en una solicitud u operación que no cumpla con la directiva.Para obtener más información, vea Estructura de definición de Azure Policy: regla de directiva.
effect
deny
effect
es bloquear la solicitud, lo cual sirve para crear la conexión especificada.Para obtener más información, consulte Comprender los efectos de Azure Policy: denegar.
Por ejemplo, supongamos que desea bloquear la creación de conexiones con el conector de Instagram. Esta es la definición de directiva que puede usar:
{ "mode": "All", "policyRule": { "if": { "field": "Microsoft.Web/connections/api.id", "like": "*managedApis/instagram" }, "then": { "effect": "deny" } }, "parameters": {} }
Esta es la manera en que aparece el cuadro REGLA DE DIRECTIVA:
Si hay varios conectores, puede agregar más condiciones, por ejemplo:
{ "mode": "All", "policyRule": { "if": { "anyOf": [ { "field": "Microsoft.Web/connections/api.id", "like": "*managedApis/instagram" }, { "field": "Microsoft.Web/connections/api.id", "like": "*managedApis/x" }, { "field": "Microsoft.Web/connections/api.id", "like": "*managedApis/facebook" }, { "field": "Microsoft.Web/connections/api.id", "like": "*managedApis/pinterest" } ] }, "then": { "effect": "deny" } }, "parameters": {} }
Cuando finalice, seleccione Guardar. Después de guardar la definición de la directiva, Azure Policy genera y agrega más valores de propiedad a la definición de la directiva.
A continuación, para asignar la definición de directiva donde quiere aplicar la directiva, cree una asignación de directiva.
Para obtener más información sobre las definiciones de Azure Policy, consulte estos temas:
- Estructura de definición de Azure Policy
- Tutorial: Creación y administración de directivas para aplicar el cumplimiento
- Definiciones de directivas integradas de Azure Policy en Azure Logic Apps
Bloqueo de la asociación de conexiones con aplicaciones lógicas
Cuando se crea una conexión en un flujo de trabajo de una aplicación lógica, dicha conexión existe como recurso independiente de Azure. Si elimina solo el flujo de trabajo de la aplicación lógica, el recurso de la conexión no se eliminará automáticamente y seguirá existiendo hasta que se elimine. Es posible que tenga un escenario en el que el recurso de la conexión ya existe o donde tenga que crear el recurso de la conexión para su uso fuera de la aplicación lógica. Todavía puede bloquear la capacidad de asociar la conexión a un flujo de trabajo de aplicación lógica diferente mediante la creación de una directiva que evite guardar flujos de trabajo de aplicación lógica que intenten usar la conexión restringida o no aprobada. Esta directiva afecta solo a los flujos de trabajo de la aplicación lógica que aún no usan la conexión.
En el cuadro de búsqueda de Azure Portal, ingrese directiva y seleccione Directiva.
En el menú Directiva, en Creación, seleccione Definiciones. En la barra de herramientas del panel Definiciones, seleccione Definición de directiva.
En Definición de directiva, proporcione la información de la definición de directiva, en función de las propiedades descritas en el ejemplo, y siga usando Instagram como en el ejemplo:
Propiedad Necesario Valor Descripción Ubicación de definición Sí <Azure-subscription-name> Suscripción de Azure que se usará para la definición de la directiva. 1. Para buscar la suscripción, seleccione el botón de puntos suspensivos ( ... ).
2. En la lista Suscripción, busque y seleccione su suscripción.
3. Cuando finalice, haga clic en Seleccionar.Nombre Sí <policy-definition-name> Nombre que se va a usar para la definición de directiva. Descripción No <policy-definition-name> Descripción de la definición de directiva. Categoría Sí Aplicaciones lógicas Nombre de una categoría existente o nueva categoría de la definición de directiva. Aplicación de directivas Sí Enabled Esta configuración especifica si se debe habilitar o deshabilitar la definición de directiva al guardar el trabajo. En REGLA DE DIRECTIVA, el cuadro de edición JSON se rellena previamente con una plantilla de definición de directiva. Reemplace esta plantilla por su definición de directiva en función de las propiedades descritas en la tabla siguiente y siguiendo esta sintaxis:
{ "mode": "All", "policyRule": { "if": { "value": "[string(field('Microsoft.Logic/workflows/parameters'))]", "contains": "{connector-name}" }, "then": { "effect": "deny" } }, "parameters": {} }
Propiedad Valor Descripción mode
All
Modo que determina los tipos de recursos que evalúa la directiva. En este escenario se establece
mode
enAll
, que aplica la directiva a los grupos de recursos, las suscripciones y todos los tipos de recursos de Azure.Para obtener más información, vea Estructura de definición de Azure Policy: modo.
if
{condition-to-evaluate}
Condición que determina cuándo aplicar la regla de directiva. En este escenario,
{condition-to-evaluate}
determina si la salida de la cadena de[string(field('Microsoft.Logic/workflows/parameters'))]
contiene la cadena{connector-name}
.Para obtener más información, vea Estructura de definición de Azure Policy: regla de directiva.
value
[string(field('Microsoft.Logic/workflows/parameters'))]
Valor que se va a comparar con la condición. En este escenario,
value
es la salida de cadena de[string(field('Microsoft.Logic/workflows/parameters'))]
, que convierte el objeto$connectors
dentro del objetoMicrosoft.Logic/workflows/parameters
en una cadena.contains
{connector-name}
Operador lógico y valor que se va a usar para comparar con la propiedad value
.En este escenario, el operador
contains
se asegura de que la regla funciona independientemente de dónde aparezca{connector-name}
, donde la cadena,{connector-name}
, es el identificador del conector que desea restringir o bloquear.Por ejemplo, supongamos que desea bloquear el uso de conexiones a las plataformas o bases de datos de medios sociales:
- X:
x
- Instagram:instagram
- Facebook:facebook
- Pinterest:pinterest
- SQL Server or Azure SQL:sql
Para buscar estos identificadores de conector, vea Búsqueda del identificador de referencia del conector anteriormente en este tema.
then
{effect-to-apply}
Efecto que se va a aplicar cuando se cumpla la condición de if
.En este escenario,
{effect-to-apply}
es bloquear y generar un error en una solicitud u operación que no cumpla con la directiva.Para obtener más información, vea Estructura de definición de Azure Policy: regla de directiva.
effect
deny
effect
esdeny
o bloquear la solicitud para guardar una aplicación lógica que usa la conexión especificada.Para obtener más información, consulte Comprender los efectos de Azure Policy: denegar.
Por ejemplo, supongamos que desea bloquear el almacenamiento de aplicaciones lógicas que usan conexiones a Instagram. Esta es la definición de directiva que puede usar:
{ "mode": "All", "policyRule": { "if": { "value": "[string(field('Microsoft.Logic/workflows/parameters'))]", "contains": "instagram" }, "then": { "effect": "deny" } }, "parameters": {} }
Esta es la manera en que aparece el cuadro REGLA DE DIRECTIVA:
Cuando finalice, seleccione Guardar. Después de guardar la definición de la directiva, Azure Policy genera y agrega más valores de propiedad a la definición de la directiva.
A continuación, para asignar la definición de directiva donde quiere aplicar la directiva, cree una asignación de directiva.
Para obtener más información sobre las definiciones de Azure Policy, consulte estos temas:
- Estructura de definición de Azure Policy
- Tutorial: Creación y administración de directivas para aplicar el cumplimiento
- Definiciones de directivas integradas de Azure Policy en Azure Logic Apps
Creación de asignación de directiva
A continuación, debe asignar la definición de directiva donde desee aplicar la directiva, por ejemplo, a un único grupo de recursos, a varios grupos de recursos, a un inquilino de Microsoft Entra o a una suscripción de Azure. Para esta tarea, siga estos pasos a fin de crear una asignación de directiva:
En el cuadro de búsqueda de Azure Portal, ingrese directiva y seleccione Directiva.
En el menú Directiva, en Creación, seleccione Asignaciones. En la barra de herramientas del panel Asignaciones, seleccione Asignar directiva.
En el panel Asignar directiva, en Aspectos básicos, proporcione esta información para la asignación de directiva:
Propiedad Obligatorio Descripción Ámbito Sí Recursos en los que desea aplicar la asignación de directiva. 1. Junto al cuadro Ámbito, seleccione el botón de puntos suspensivos ( ... ).
2. En la lista Suscripción, seleccione la suscripción de Azure.
3. Opcionalmente, en la lista Grupo de recursos, seleccione el grupo de recursos.
4. Cuando finalice, haga clic en Seleccionar.Exclusiones No Recursos de Azure que quiera excluir de la asignación de directiva. 1. Junto al cuadro Exclusiones, seleccione el botón de puntos suspensivos ( ... ).
2. En la lista Recurso, seleccione el recurso >Agregar al ámbito seleccionado.
3. Cuando finalice, seleccione Guardar.Definición de directiva Sí El nombre de la definición de directiva que desea asignar y aplicar. En este ejemplo se continúa con la directiva de ejemplo para bloquear conexiones a Instagram. 1. Junto al cuadro Definición de directiva, seleccione el botón de puntos suspensivos ( ... ).
2. Busque y seleccione la definición de directiva con el filtro Tipo o el cuadro Buscar.
3. Cuando finalice, haga clic en Seleccionar.Nombre de asignación Sí Nombre que se va a usar para la asignación de directiva, si es diferente de la definición de directiva. Id. de asignación Sí Identificador generado automáticamente para la asignación de directiva. Descripción No Descripción de la asignación de directiva. Aplicación de directivas Sí Valor que habilita o deshabilita la asignación de directiva. Asignada por No Nombre de la persona que creó y aplicó la asignación de directiva. Por ejemplo, para asignar la directiva a un grupo de recursos de Azure mediante el ejemplo de Instagram:
Seleccione Revisar y crear cuando haya terminado.
Después de crear una directiva, es posible que tenga que esperar hasta 15 minutos para que surta efecto. Los cambios también pueden tener efectos similares en cuanto a desfase temporal.
Una vez que la directiva surta efecto, puede probarla.
Para obtener más información, consulte Inicio rápido: Creación de una asignación de directiva para identificar recursos no conformes.
Prueba de la directiva
Para probar la directiva, empiece a crear una conexión con el conector ahora restringido en el diseñador del flujo de trabajo. Siguiendo con el ejemplo de Instagram, al iniciar sesión en Instagram, se obtiene este error que hace que la aplicación lógica no pueda crear la conexión:
El mensaje incluye esta información:
Descripción | Contenido |
---|---|
Motivo del error | "Resource 'instagram' was disallowed by policy." |
Nombre de asignación | "Block Instagram connections" |
Id. de asignación | "/subscriptions/xxxxxXXXXXxxxxxXXXXXxxxxxXXXXX/resourceGroups/MyLogicApp-RG/providers/Microsoft.Authorization/policyAssignments/4231890fc3bd4352acb0b673" |
Identificador de la definición de directiva | "/subscriptions/xxxxxXXXXXxxxxxXXXXXxxxxxXXXXX/providers/Microsoft.Authorization/policyDefinitions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e" |
Pasos siguientes
- Obtenga más información acerca de Azure Policy.