Фільтрування кінцевих точок з’єднувачів (підготовча версія)
[Ця стаття стосується попередньої версії, і її буде змінено.]
Фільтрація кінцевих точок Connector дозволяє адміністраторам вирішувати, до яких конкретно кінцевих точок можуть підключатися виробники під час створення додатків, потоків або чат-ботів. Він налаштований у рамках політики запобігання втраті даних (DLP) і доступний виключно для шести конекторів:
- HTTP
- HTTP з Microsoft Entra ID (AD)
- Веб-хук HTTP
- SQL Server (включає використання SQL Server Connector для доступу до Azure Synapse сховища даних)
- Azure Blob Storage
- SMTP
Коли виробник намагається підключити свій додаток, флоу або чат-бот до заблокованої кінцевої точки, він зіткнеться з повідомленням про помилку DLP.
Попередження
Правила фільтрації кінцевих точок не застосовуються до змінних середовища, користувацьких вхідних даних або будь-якої кінцевої точки, яка динамічно створюється під час виконання. У конструкторах додатків, потоків або чат-ботів оцінюються лише статичні кінцеві точки. Щоб отримати докладнішу інформацію, перегляньте статтю Відомі обмеження.
Важливо
Підготовчі функції призначені для невиробничого використання і можуть бути обмежені. Ці функції доступні до офіційного випуску, щоб клієнти могли ознайомитися з ними заздалегідь і залишити відгуки.
Додавання правил фільтрації кінцевих точок до своїх політик DLP
Стовпець «Настроювані кінцеві точки» на сторінці «Готові з’єднувачі» в політиці даних показує, чи підтримується можливість фільтрації кінцевих точок для з’єднувача.
Якщо значення стовпця Кінцева точка налаштовується вказано як Так, ви можете скористатися відповідною можливістю, клацнувши правою кнопкою миші та вибравши Налаштування з'єднувача>Кінцеві точки з'єднувача.
Відкриється бічна панель, на якій можна визначити упорядкований список шаблонів «Дозволити» або «Відхилити» для URL-адрес. Останній рядок у списку завжди буде правилом для символу узагальнення (*
), яке застосовується до всіх кінцевих точок у цьому з’єднувачі. За замовчуванням шаблон *
задано як «Дозволити» для нових політик ЗВД, але ви можете позначити його як «Дозволити» або «Відхилити».
Як додати нові правила
Можна додавати нові правила, вибравши Додати кінцеву точку. Нові правила додаються в кінець списку шаблонів як передостаннє правило. Це пов’язано з тим, що *
він завжди буде останнім записом у списку. Однак ви можете оновити порядок шаблонів, скориставшись розкривним списком Порядок або вибравши Перемістити вгору чи Перемістити вниз.
Після додавання шаблону можна редагувати або видалити шаблон, вибравши певний рядок, а потім вибравши Видалити.
Після збереження правил фільтрації кінцевих точок з’єднувача та політики DLP, у якій вони визначені, вони миттєво застосовуються до цільових середовищ. Нижче наведено приклад, де виробник намагався підключити свій хмарний цикл до кінцевої точки HTTP, що заборонено.
Відомі обмеження
Правила фільтрації кінцевих точок не застосовуються до змінних середовища, користувацьких вхідних даних і динамічно прив’язаних кінцевих точок під час виконання. Під час створення програми, циклу або чат-ботів в процесі розробки застосовуються лише статичні кінцеві точки. Це означає, що правила фільтрації кінцевих точок з’єднувача для SQL Server і Azure Blob Storage не застосовуються, якщо з’єднання автентифіковано за допомогою Microsoft Entra ID. На двох скріншотах нижче виробник створив хмарний цикл, який визначає SQL-сервер і базу даних всередині змінних, а потім використовує ці змінні як вхідні дані для визначення з’єднання. Таким чином, правила фільтрації кінцевих точок не оцінюються, і хмарний цикл може успішно виконуватися.
Деякі Power Apps з них, опубліковані до 1 жовтня 2020 року, мають бути повторно опубліковані для дотримання правил дії DLP-з’єднувача та правил кінцевих точок. Наведений нижче сценарій дає адміністраторам і розробникам змогу визначати програми, які необхідно повторно опублікувати відповідно до цих нових правил DLP для деталізованого контролю.
Add-PowerAppsAccount $GranularDLPDate = Get-Date -Date "2020-10-01 00:00:00Z" ForEach ($app in Get-AdminPowerApp){ $versionAsDate = [datetime]::Parse($app.LastModifiedTime) $olderApp = $versionAsDate -lt $GranularDLPDate $wasBackfilled = $app.Internal.properties.executionRestrictions -ne $null -and $app.Internal.properties.executionRestrictions.dataLossPreventionEvaluationResult -ne $null -and ![string]::IsNullOrEmpty($app.Internal.properties.executionRestrictions.dataLossPreventionEvaluationResult.lastAdvancedBackfillDate) If($($olderApp -and !$wasBackfilled)){ Write-Host "App must be republished to be Granular DLP compliant: " $app.AppName " " $app.Internal.properties.displayName " " $app.Internal.properties.owner.email } Else{ Write-Host "App is already Granular DLP compliant: " $app.AppName } }
Вхідні формати та приклади кінцевих точок
Для різних з’єднувачів поняття щодо того, що вважається кінцевою точкою, відрізняється. Крім того, деякі кінцеві точки можуть визначатися в кількох форматах. Таким чином, щоб заборонити авторам використовувати кінцеві точки під час створення програм і циклів, необхідно вказувати кінцеві точки в усіх можливих форматах. Створюючи правила фільтрації кінцевих точок, адміністратори можуть вводити ім'я кінцевої точки повністю або використовувати шаблони із символом узагальнення (*
). Ці правила вводяться та представляються у вигляді упорядкованого списку шаблонів кінцевих точок, тобто, правила застосовуються у порядку за зростанням відповідно до номера у списку. Зверніть увагу, що останнім правилом для будь-якого заданого з’єднувача завжди *
є Allow або *
Deny. Allow — це значення за замовчуванням, яке можна змінити на Deny.
У наведеній нижче інструкції описано, як вводяться кінцеві точки з'єднувача під час створення правил, які дозволятимуть або відхилятимуть ці кінцеві точки.
SQL Server
Кінцеві точки підключення SQL Server потрібно вказувати у форматі <Server_name, database_name>
. Нижче наведено кілька важливих порад, які слід запам’ятати.
Автори можуть вводити ім'я сервера в різних форматах. Тому, щоб дійсно обробити кінцеву точку, її потрібно вказати в усіх можливих форматах. Наприклад, локальні інсталяції можуть зазначатися у форматі
<machine_name\named_instance, database_name>
або<IP address, custom port, database_name>
. У цьому випадку для кожної кінцевої точки потрібно буде застосувати правила дозволу або блокування в обох форматах. Наприклад:- Заблокувати
WS12875676\Servername1,MktingDB
- Заблокувати
11.22.33.444,1401,MktingDB
- Заблокувати
Не існує окремої логіки для обробки відносних адрес, таких як
localhost
. Отже, якщо заблокувати*localhost*
, відповідне правило блокуватиме використання авторами усіх кінцевих точок SQL Server, в яких використовуєтьсяlocalhost
. Проте це не завадить їм звертатися до кінцевої точки за допомогою абсолютної адреси, якщо адміністратор не заблокує цю абсолютну адресу.
Нижче наведено приклади:
Дозволити лише інсталяції Azure SQL Server:
- Дозволити
*.database.windows.net*
- Відхилити
*
- Дозволити
Дозволити лише певний діапазон IP-адрес: (Зауважте, що недозволені IP-адреси виробник все одно може ввести у
<machine_name\named_instance>
форматі.)- Дозволити
11.22.33*
- Відхилити
*
- Дозволити
Dataverse
Dataverse кінцеві точки представлені ідентифікатором організації, наприклад, 7b97cd5c-ce38-4930-9497-eec2a95bf5f7. Зауважте, що зараз при застосуванні фільтрації кінцевих точок може використовуватись лише звичайний з’єднувач Dataverse. З’єднувачі Dataverse dynamics та поточні з’єднувачі Dataverse поза областю застосування. Крім того, локальну інсталяцію Dataverse (що також відома як «поточне середовище») за жодних умов не можна заборонити для використання в середовищі. Це означає, що в будь-якому середовищі автори завжди зможуть отримати доступ до поточного середовища Dataverse.
Таким чином, правило, в якому зазначено таке:
- Дозволити
7b97cd5c-ce38-4930-9497-eec2a95bf5f7
- Відхилити
*
Фактично означає:
- Дозволити
Dataverse current environment
- Дозволити
7b97cd5c-ce38-4930-9497-eec2a95bf5f7
- Відхилити
*
«Дозволити Dataverse current environment
» завжди неявно буде першим правилом у списку фільтрації кінцевих точок Dataverse для будь-якого певного середовища.
Azure Blob Storage
Кінцеві точки сховища BLOB-об'єктів Azure представлені іменем облікового запису сховища Azure.
SMTP
Кінцеві точки SMTP представляються у форматі <SMTP server address, port number>
.
Нижче наведено приклад можливого сценарію.
- Відхилити
smtp.gmail.com,587
- Дозволити
*
HTTP з Microsoft Entra ID, HTTP Webhook і HTTP конектори
Кінцеві точки для всіх з'єднувачів HTTP представляються у вигляді шаблона URL-адреси. Дія Отримати веб-ресурс HTTP з Microsoft Entra конектором виходить за рамки програми.
Нижче наведено приклад можливого сценарію.
Дозвольте доступ лише до сторінки передплат Azure на https://management.azure.com/
.
- Дозволити
https://management.azure.com/subscriptions*
- Відхилити
https://management.azure.com/*
- Відхилити
*
Підтримка PowerShell для фільтрації кінцевих точок
Налаштування правил фільтрації кінцевих точок для політики
Об'єкт, який містить правила фільтрації для політики, далі називається конфігураціями з'єднувача.
Об'єкт конфігурацій з'єднувача має таку структуру:
$ConnectorConfigurations = @{
connectorActionConfigurations = @() # used for connector action rules
endpointConfigurations = @( # array – one entry per
@{
connectorId # string
endpointRules = @( # array – one entry per rule
@{
order # number
endpoint # string
behavior # supported values: Allow/Deny
}
)
}
)
}
Нотатки
- Останнє правило для кожного з’єднувача завжди має застосовуватися до URL,
*
щоб гарантувати, що всі URL-адреси охоплені правилами. - Властивість порядку правил для кожного з’єднувача повинна бути заповнена цифрами від 1 до N, де N - це кількість правил для цього з’єднувача.
Отримання наявних конфігурацій з’єднувачів для політики DLP
Get-PowerAppDlpPolicyConnectorConfigurations
Створення конфігурацій конекторів для DLP-політики
New-PowerAppDlpPolicyConnectorConfigurations
Оновлення конфігурацій конектора для політики DLP
Set-PowerAppDlpPolicyConnectorConfigurations
Приклад
Ціль:
Для з'єднувача SQL Server:
- Відхилити базу даних «testdatabase» сервера «myservername.database.windows.net»
- Дозволити усі інші бази даних сервера «myservername.database.windows.net»
- Відхилити всі інші сервери
Для з'єднувача SMTP:
- Дозволити Gmail (адреса сервера: smtp.gmail.com, порт: 587)
- Відхилити всі інші адреси
Для з'єднувача HTTP:
- Дозволити кінцеві точки
https://mywebsite.com/allowedPath1
таhttps://mywebsite.com/allowedPath2
- Відхилити всі інші URL-адреси
Нотатка
У командлеті нижче PolicyName посилається на унікальний GUID. Guid DLP можна отримати, запустивши командлет Get-DlpPolicy .
$ConnectorConfigurations = @{
endpointConfigurations = @(
@{
connectorId = "/providers/Microsoft.PowerApps/apis/shared_sql"
endpointRules = @(
@{
order = 1
endpoint = "myservername.database.windows.net,testdatabase"
behavior = "Deny"
},
@{
order = 2
endpoint = "myservername.database.windows.net,*"
behavior = "Allow"
},
@{
order = 3
endpoint = "*"
behavior = "Deny"
}
)
},
@{
connectorId = "/providers/Microsoft.PowerApps/apis/shared_smtp"
endpointRules = @(
@{
order = 1
endpoint = "smtp.gmail.com,587"
behavior = "Allow"
},
@{
order = 2
endpoint = "*"
behavior = "Deny"
}
)
},
@{
connectorId = "http"
endpointRules = @(
@{
order = 1
endpoint = "https://mywebsite.com/allowedPath1"
behavior = "Allow"
},
@{
order = 2
endpoint = "https://mywebsite.com/allowedPath2"
behavior = "Allow"
},
@{
order = 3
endpoint = "*"
behavior = "Deny"
}
)
}
)
}
New-PowerAppDlpPolicyConnectorConfigurations -TenantId $TenantId -PolicyName $PolicyName -NewDlpPolicyConnectorConfigurations $ConnectorConfigurations