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

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

  1. Revise los conectores para Azure Logic Apps.

  2. 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/

  3. 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

  1. En Azure Portal, busque y abra el flujo de trabajo de la aplicación lógica.

  2. 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.

    1. 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.

    2. Busque el objeto api, que contiene una propiedad id 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"

    3. 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:

  1. En el cuadro de búsqueda de Azure Portal, ingrese directiva y seleccione Directiva.

    Screenshot showing main Azure portal search box with

  2. En el menú Directiva, en Creación, seleccione Definiciones. En la barra de herramientas del panel Definiciones, seleccione Definición de directiva.

    Screenshot showing the

  3. 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:

    Screenshot showing the policy definition properties.

    Propiedad Necesario Valor Descripción
    Ubicación de definición <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 <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 Aplicaciones lógicas Nombre de una categoría existente o nueva categoría de la definición de directiva.
    Aplicación de directivas Enabled Esta configuración especifica si se debe habilitar o deshabilitar la definición de directiva al guardar el trabajo.
  4. 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 en All, 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 de api.id en Microsoft.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:

    - Twitter: twitter
    - 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:

    Screenshot showing the

    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/twitter"
                },
                {
                   "field": "Microsoft.Web/connections/api.id",
                   "like": "*managedApis/facebook"
                },
                {
                   "field": "Microsoft.Web/connections/api.id",
                   "like": "*managedApis/pinterest"
                }
             ]
          },
          "then": {
             "effect": "deny"
          }
       },
       "parameters": {}
     }
    
  5. 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.

  6. 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:

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.

  1. En el cuadro de búsqueda de Azure Portal, ingrese directiva y seleccione Directiva.

    Screenshot showing the Azure portal search box with

  2. En el menú Directiva, en Creación, seleccione Definiciones. En la barra de herramientas del panel Definiciones, seleccione Definición de directiva.

    Screenshot showing

  3. 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:

    Screenshot showing policy definition properties.

    Propiedad Necesario Valor Descripción
    Ubicación de definición <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 <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 Aplicaciones lógicas Nombre de una categoría existente o nueva categoría de la definición de directiva.
    Aplicación de directivas Enabled Esta configuración especifica si se debe habilitar o deshabilitar la definición de directiva al guardar el trabajo.
  4. 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 en All, 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 objeto Microsoft.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:

    - Twitter: twitter
    - 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 deny 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:

    Screenshot showing policy definition rule.

  5. 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.

  6. 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:

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:

  1. En el cuadro de búsqueda de Azure Portal, ingrese directiva y seleccione Directiva.

    Screenshot showing Azure portal search box with

  2. En el menú Directiva, en Creación, seleccione Asignaciones. En la barra de herramientas del panel Asignaciones, seleccione Asignar directiva.

    Screenshot showing

  3. En el panel Asignar directiva, en Aspectos básicos, proporcione esta información para la asignación de directiva:

    Propiedad Obligatorio Descripción
    Ámbito 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 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 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 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 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:

    Screenshot showing policy assignment properties.

  4. 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.

  5. 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:

Screenshot showing connection failure due to applied policy.

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/b5ddcfec-1b24-4cac-a353-360846a59f24"

Pasos siguientes