Блокировка использования соединителя в Azure Logic Apps
Область применения: Azure Logic Apps (Потребление + Стандартный)
Если ваша организация не разрешает подключаться к ресурсам с ограниченным доступом или к неутвержденным ресурсам с помощью управляемых соединителей в Azure Logic Apps, вы можете заблокировать возможность создания и использования таких подключений в рабочих процессах приложений логики. Используя Политику Azure, можно определять и применять политики, не допускающие создание или использование подключений к тем соединителям, которые нужно заблокировать. Например, из соображений безопасности может быть желательно заблокировать подключения к тем или иным платформам социальных сетей или другим службам и системам.
В этой статье показано, как настроить политику, которая будет блокировать определенные подключения, с помощью портала Azure, но определения политик можно создавать и другими способами, например с помощью Azure REST API, Azure PowerShell, Azure CLI или шаблонов Azure Resource Manager. Дополнительные сведения см. в учебнике по созданию политик и управлению ими для обеспечения соответствия.
Необходимые компоненты
Учетная запись и подписка Azure. Если у вас нет подписки, создайте бесплатную учетную запись Azure.
Ссылочный идентификатор для соединителя, который необходимо заблокировать. Подробнее см. в разделе Как найти ссылочный идентификатор соединителя.
Определение ссылочного идентификатора соединителя
Если у вас уже есть приложение логики с подключением, которое необходимо заблокировать, выполните действия на портале Azure. В противном случае выполните следующие действия.
Справочная документация по соединителям
Ознакомьтесь со списком соединителей для Azure Logic Apps.
Найдите страницу справки по соединителю, который необходимо заблокировать.
Например, если необходимо заблокировать соединитель Instagram, который устарел, перейдите на следующую страницу:
https://learn.microsoft.com/connectors/instagram/
В конце URL-адреса этой страницы скопируйте ссылочный идентификатор соединителя, не включая прямую косую черту (
/
), и сохраните его. Например, идентификатор может иметь вид:instagram
.Позднее при создании определения политики этот идентификатор будет использоваться в инструкции условия в определении, например:
"like": "*managedApis/instagram"
Портал Azure
На портале Azure найдите рабочий процесс приложения логики и откройте его.
В меню приложения логики выберите один из следующих вариантов:
Приложения логики плана "Потребление": в разделе Средства разработки выберите Подключения API.
Приложения логики плана "Стандартный": в разделе Рабочие процессы выберите Подключения. На панели Подключения выберите Подключения API, если этот раздел еще не выбран.
На панели подключений API выберите подключение. Когда откроется область подключения, в правом верхнем углу выберите Представление JSON.
Найдите объект
api
, содержащий свойствоid
и значение в следующем формате:"id": "/subscriptions/{Azure-subscription-ID}/providers/Microsoft.Web/locations/{Azure-region}/managedApis/{connection-name}"
В следующем примере показаны свойство
id
и его значение для подключения к Instagram:"id": "/subscriptions/xxxxxXXXXXxxxxxXXXXXxxxxxXXXXX/providers/Microsoft.Web/locations/westus/managedApis/instagram"
Из значения свойства
id
скопируйте ссылочный идентификатор соединителя, находящийся в конце значения, напримерinstagram
, и сохраните его.Позднее при создании определения политики этот идентификатор будет использоваться в инструкции условия в определении, например:
"like": "*managedApis/instagram"
Блокировка создания подключений
Чтобы полностью заблокировать создание подключения в рабочем процессе приложения логики, выполните указанные ниже действия.
В поле поиска на портале Azure введите слово политика и выберите пункт Политика.
В меню Политика в разделе Разработка выберите Определения. На панели инструментов области Определения выберите Определение политики.
В области Определение политики укажите сведения для определения политики на основе свойств, которые приведены после примера.
Свойство Обязательное поле значение Описание Расположение определения Да <имя-подписки-Azure> Подписка Azure, используемая для определения политики 1. Чтобы найти вашу подписку, нажмите кнопку с многоточием (...).
2. В списке Подписка найдите вашу подписку и выберите ее.
3. После выбора подписки нажмите кнопку Выбрать.Имя Да <имя-определения-политики> Имя, используемое для определения политики Description No <имя-определения-политики> Описание определения политики Категория Да Приложения логики Имя существующей категории или новой категории определения политики Применение политики Да Включено Этот параметр указывает, следует ли включить определение политики или оставить его выключенным при сохранении внесенных изменений. В разделе POLICY RULE поле редактирования JSON предварительно заполнено шаблоном определения политики. Замените этот шаблон собственным определением политики, основанным на описанных в таблице ниже свойствах и соответствующим следующему синтаксису:
{ "mode": "All", "policyRule": { "if": { "field": "Microsoft.Web/connections/api.id", "like": "*managedApis/{connector-name}" }, "then": { "effect": "deny" } }, "parameters": {} }
Свойство Значение Описание mode
All
Режим, который определяет типы ресурсов, оцениваемых данной политикой. Этот сценарий устанавливает параметр
mode
в значениеAll
, при котором политика применяется к группам ресурсов, подпискам и ресурсам всех типов в Azure.Дополнительные сведения см. в разделе Структура определения политики режим.
if
{condition-to-evaluate}
Условие, определяющее, когда следует применять правило политики В этом сценарии параметр
{condition-to-evaluate}
проверяет, соответствует ли значениеapi.id
вMicrosoft.Web/connections/api.id
значению*managedApis/{connector-name}
, для которого установлено подстановочное значение (*).Дополнительные сведения см. в разделе Структура определения политики — правило политики.
field
Microsoft.Web/connections/api.id
field
Значение для сравнения с условиемВ этом сценарии в параметре
field
используется псевдоним,Microsoft.Web/connections/api.id
, для получения доступа к значению в свойстве соединителяapi.id
.like
*managedApis/{connector-name}
Логический оператор и значение, используемые для сравнения field
значенияВ этом сценарии оператор
like
и подстановочный знак (*) в сочетании гарантируют, что правило будет работать независимо от региона, а строка*managedApis/{connector-name}
— это сопоставляемое значение, в котором{connector-name}
соответствует идентификатору соединителя, который нужно заблокировать.Например, предположим, что вы хотите заблокировать создание подключений к платформам или базам данных социальных сетей:
- X:
x
– Instagram:instagram
– Facebook:facebook
– Pinterest:pinterest
– SQL Server или Azure SQL:sql
Чтобы найти эти идентификаторы соединителей, см. выше раздел Определение ссылочного идентификатора соединителя.
then
{effect-to-apply}
Эффект, применяемый при выполнении if
условияВ этом сценарии
{effect-to-apply}
— блокирование и завершение со сбоем запроса или операции, которые не соответствуют политике.Дополнительные сведения см. в разделе Структура определения политики — правило политики.
effect
deny
Необходимо effect
заблокировать запрос, который требуется создать указанное соединение.Дополнительные сведения см. в статье Общие сведения об эффектах политики Azure — Запрет.
Например, предположим, что вам нужно заблокировать создание подключений с соединителем Instagram. Для этого можно использовать такое определение политики:
{ "mode": "All", "policyRule": { "if": { "field": "Microsoft.Web/connections/api.id", "like": "*managedApis/instagram" }, "then": { "effect": "deny" } }, "parameters": {} }
Содержимое поля ПРАВИЛО ПОЛИТИКИ будет выглядеть следующим образом:
В случае нескольких соединителей можно добавить дополнительные условия, например:
{ "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": {} }
По завершении выберите Сохранить. После сохранения определения политики Политика Azure создает и добавляет в определение политики дополнительные значения свойств.
Затем для того, чтобы назначить определение политики объекту, в котором необходимо применять политику, создайте назначение политики.
Дополнительные сведения об определениях политик Azure см. в следующих разделах:
- Структура определения политики Azure
- Руководство по Создание политик и управление ими для обеспечения соответствия требованиям
- Политика Azure встроенные определения политик для Azure Logic Apps
Запрет на связывание подключений с приложениями логики
При создании подключения внутри рабочего процесса приложения логики это подключение существует в качестве отдельного ресурса Azure. Если удалить только рабочий процесс приложения логики, ресурс подключения не удаляется автоматически и продолжает существовать, пока не будет удален. Возможна ситуация, в которой ресурс подключения уже существует или вам нужно создать ресурс подключения, которое будет использоваться вне приложения логики. При этом сохраняется возможность заблокировать связывание подключения с другим приложением логики: для этого создайте политику, которая запретит сохранение рабочих процессов приложений логики, содержащих ограниченные или неутвержденные подключения. Эта политика влияет только на рабочие процессы приложений логики, которые еще не используют подключение.
В поле поиска на портале Azure введите слово политика и выберите пункт Политика.
В меню Политика в разделе Разработка выберите Определения. На панели инструментов области Определения выберите Определение политики.
В окне Определение политики укажите сведения для определения политики, основанные на свойствах, которые приведены после примера. Продолжим использовать в качестве примера Instagram.
Свойство Обязательное поле значение Описание Расположение определения Да <имя-подписки-Azure> Подписка Azure, используемая для определения политики 1. Чтобы найти вашу подписку, нажмите кнопку с многоточием (...).
2. В списке Подписка найдите вашу подписку и выберите ее.
3. После выбора подписки нажмите кнопку Выбрать.Имя Да <имя-определения-политики> Имя, используемое для определения политики Description No <имя-определения-политики> Описание определения политики Категория Да Приложения логики Имя существующей категории или новой категории определения политики Применение политики Да Включено Этот параметр указывает, следует ли включить определение политики или оставить его выключенным при сохранении внесенных изменений. В разделе POLICY RULE поле редактирования JSON предварительно заполнено шаблоном определения политики. Замените этот шаблон собственным определением политики, основанным на описанных в таблице ниже свойствах и соответствующим следующему синтаксису:
{ "mode": "All", "policyRule": { "if": { "value": "[string(field('Microsoft.Logic/workflows/parameters'))]", "contains": "{connector-name}" }, "then": { "effect": "deny" } }, "parameters": {} }
Свойство Значение Описание mode
All
Режим, который определяет типы ресурсов, оцениваемых данной политикой. Этот сценарий устанавливает параметр
mode
в значениеAll
, при котором политика применяется к группам ресурсов, подпискам и ресурсам всех типов в Azure.Дополнительные сведения см. в разделе Структура определения политики режим.
if
{condition-to-evaluate}
Условие, определяющее, когда следует применять правило политики В этом сценарии
{condition-to-evaluate}
определяет, содержит ли строковый вывод из[string(field('Microsoft.Logic/workflows/parameters'))]
строку{connector-name}
.Дополнительные сведения см. в разделе Структура определения политики — правило политики.
value
[string(field('Microsoft.Logic/workflows/parameters'))]
Значение для сравнения с условием В этом сценарии
value
— это строковый вывод из выражения[string(field('Microsoft.Logic/workflows/parameters'))]
, которое преобразует объект$connectors
из состава объектаMicrosoft.Logic/workflows/parameters
в строку.contains
{connector-name}
Логический оператор и значение, используемые для сравнения со свойством value
В этом сценарии оператор
contains
гарантирует, что правило будет работать вне зависимости от того, где находится{connector-name}
, причем строка{connector-name}
— это идентификатор соединителя, который нужно ограничить или заблокировать.Например, предположим, что вы хотите заблокировать подключение к платформам или базам данных социальных сетей:
- X:
x
– Instagram:instagram
– Facebook:facebook
– Pinterest:pinterest
– SQL Server или Azure SQL:sql
Чтобы найти эти идентификаторы соединителей, см. выше раздел Определение ссылочного идентификатора соединителя.
then
{effect-to-apply}
Эффект, применяемый при выполнении if
условияВ этом сценарии
{effect-to-apply}
— блокирование и завершение со сбоем запроса или операции, которые не соответствуют политике.Дополнительные сведения см. в разделе Структура определения политики — правило политики.
effect
deny
Требуется effect
deny
или заблокировать запрос для сохранения приложения логики, использующего указанное соединение.Дополнительные сведения см. в статье Общие сведения об эффектах политики Azure — Запрет.
Например, предположим, что вам нужно заблокировать сохранение приложений логики, которые используют подключения к Instagram. Для этого можно использовать такое определение политики:
{ "mode": "All", "policyRule": { "if": { "value": "[string(field('Microsoft.Logic/workflows/parameters'))]", "contains": "instagram" }, "then": { "effect": "deny" } }, "parameters": {} }
Содержимое поля ПРАВИЛО ПОЛИТИКИ будет выглядеть следующим образом:
По завершении выберите Сохранить. После сохранения определения политики Политика Azure создает и добавляет в определение политики дополнительные значения свойств.
Затем для того, чтобы назначить определение политики объекту, в котором необходимо применять политику, создайте назначение политики.
Дополнительные сведения об определениях политик Azure см. в следующих разделах:
- Структура определения политики Azure
- Руководство по Создание политик и управление ими для обеспечения соответствия требованиям
- Политика Azure встроенные определения политик для Azure Logic Apps
Создание назначения политики
Затем необходимо назначить определение политики, в котором необходимо применить политику, например для одной группы ресурсов, нескольких групп ресурсов, клиента Microsoft Entra или подписки Azure. Для этого выполните приведенные ниже шаги, которые создают назначение политики.
В поле поиска на портале Azure введите политика и выберите пункт Политика.
В меню Политика в разделе Разработка выберите Назначения. На панели инструментов области Назначения выберите Назначить политику.
На панели Назначение политики в разделе Основные сведения укажите следующие данные для назначения политики:
Свойство Обязательное поле Описание Область применения Да Ресурсы, в которых следует принудительно применять назначение политики. 1. Рядом с полем Область нажмите кнопку с многоточием (...).
Выберите подписку Azure в списке Подписка.
3. Также можно выбрать группу ресурсов в списке Группа ресурсов.
4. После выбора области нажмите кнопку Выбрать.Исключения No Выберите ресурсы Azure, исключаемые из назначения политики. 1. Рядом с полем Исключения нажмите кнопку с многоточием (...).
2. В списке Ресурсы выберите ресурс и элемент Добавить к выбранной области.
3. По завершению выбора нажмите кнопку Сохранить.Определение политики Да Имя определения политики, которое необходимо назначить и принудительно применять. В этом примере мы продолжаем работать с политикой для Instagram, "Блокировка подключений к Instagram". 1. Рядом с полем Определение политики нажмите кнопку с многоточием (...).
2. Найдите и выберите определение политики с помощью фильтра Тип или поля Поиск.
3. После выбора подписки нажмите кнопку Выбрать.Имя назначения Да Имя, используемое для назначения политики, если оно отличается от имени определения политики. Идентификатор назначения Да Автоматически созданный идентификатор для назначения политики. Description No Описание назначения политики. Применение политики Да Параметр, который включает или отключает назначение политики. Кем назначено No Имя лица, которое создало и применило назначение политики. Например, чтобы назначить политику группе ресурсов Azure (используем наш пример с Instagram), заполните поля следующим образом.
Когда все будет готово, выберите Просмотр и создание.
После создания политики может потребоваться подождать до 15 минут, прежде чем политика вступит в силу. Изменения политики также могут вступать в силу с подобной задержкой.
После того, как политика вступит в силу, можно проверить политику.
Дополнительные сведения см . в кратком руководстве по созданию назначения политики для определения несоответствующих ресурсов.
Проверка политики
Чтобы проверить политику, начните создание подключения, используя в конструкторе рабочих процессов соединитель, который теперь ограничен. Продолжим использовать в качестве примера блокировку Instagram. При входе в Instagram отобразится следующая ошибка, указывающая, что приложению логики не удалось создать подключение:
Сообщение об ошибке включает такие сведения.
Description | Содержимое |
---|---|
Причина сбоя | "Resource 'instagram' was disallowed by policy." |
Имя назначения | "Block Instagram connections" |
Идентификатор назначения | "/subscriptions/xxxxxXXXXXxxxxxXXXXXxxxxxXXXXX/resourceGroups/MyLogicApp-RG/providers/Microsoft.Authorization/policyAssignments/4231890fc3bd4352acb0b673" |
Идентификатор определения политики | "/subscriptions/xxxxxXXXXXxxxxxXXXXXxxxxxXXXXX/providers/Microsoft.Authorization/policyDefinitions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e" |
Следующие шаги
- Дополнительные сведения о политике Azure