連接器端點篩選 (預覽版)
[本文章是發行前版本文件,且隨時可能變更。]
連接器端點篩選可讓管理員控管建置應用程式、流程或聊天機器人時,製作者可以連接至哪些特定端點。 這是在資料外洩防護 (DLP) 原則中所設定,並僅供六個連接器使用:
- HTTP
- 具有 Microsoft Entra ID (AD) 的 HTTP
- HTTP Webhook
- SQL Server (包括使用 SQL Server Connector 存取 Azure Synapse 資料倉儲)
- Azure Blob Storage
- SMTP
製作者嘗試將其應用程式、流程或聊天機器人連接至已封鎖的端點時,他們會收到 DLP 錯誤訊息。
警告
不會對環境變數、自訂輸入或任何在執行階段動態建立的端點強制執行端點篩選規則。 只有靜態端點才會在應用程式、流程或聊天機器人設計師中進行評估。 如需詳細資訊,請參閱已知限制。
重要
預覽功能不供生產時使用,而且可能功能受限。 這些功能是在正式發行前先行推出,讓客戶能夠搶先體驗並提供意見反應。
將端點篩選規則新增至 DLP 原則
可設定端點欄 (在資料原則的預建連接器頁面中) 會指示連接器是否支援端點篩選功能。
若端點可設定資料行的值為是,請用滑鼠右鍵按一下,然後選取設定連接器>連接器端點來使用此功能。
這會打開側邊面板,可在其中指定允許或拒絕 URL 模式的排序清單。 清單中的最後一列永遠是萬用字元 (*
) 的規則,這會套用至該連接器中的所有端點。 根據預設,*
模式會設定為允許新的 DLP 原則,但是您可以將它標記為 Allow 或 Deny。
新增新規則
您可以選取新增端點來新增規則。 新規則會新增至模式清單結尾做為倒數第二條規則。 這是因為 *
永遠都是清單中的最後一個項目。 不過,您也可以使用順序下拉式清單或選取上移或下移來更新模式的順序。
新增模式之後,您可以選取特定列並選取編輯或刪除,然後選擇刪除。
儲存連接器端點篩選規則以及定義這些規則的 DLP 原則後,目標環境會立即強制執行這些規則。 以下是製作者已嘗試將其雲端流程連接至不允許的 HTTP 端點的範例。
已知限制
執行階段不會對環境變數、自訂輸入和動態繫結端點強制執行端點篩選規則。 只有在設計期間組建應用程式、流程或聊天機器人時已知和所選靜態端點才會強制執行。 這表示如果使用 Microsoft Entra ID 對連線進行驗證,則不會強制執行 SQL Server 和 Azure Blob 儲存體的端點篩選規則。 在下方兩個螢幕擷取畫面中,製作者已建置雲端流程,此流程會在變數中定義 SQL Server 和資料庫,然後使用這些變數做為連線定義的輸入。 因此,不會評估端點篩選規則,而雲端流程可以順利執行。
部分在 2020 年 10 月 1 日之前的 Power Apps,必須重新發佈才能強制執行 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 } }
端點輸入格式和範例
每個連接器都有不同端點含義的概念。 此外,某些端點可以以多種格式定義。 因此,必須在所有可能的格式中輸入端點,才能阻止決策者在建立應用程式和流程時使用它們。 在建立端點篩選規則時,系統管理員可以輸入完整端點名稱,或使用萬用字元 (*
) 的模式匹配。 這些規則會輸入並呈現端點模式的排序清單,這表示它們將會根據數字以昇冪進行計算。 請注意,任何特定連接器的最後一個規則永遠是「*
允許」或「*
拒絕」。 「允許」是預設值,可變更為「拒絕」。
下列指導描述如何在建立允許或拒絕規則時輸入連接器端點。
SQL 伺服器
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*
,它會localhost
在 SQL Server 端點中,封鎖程式使用任何端點。 但是,除非系統管理員也封鎖該絕對地址,否則無法使用絕對地址來存取端點。
以下是一些範例:
僅允許 Azure SQL Server 執行個體:
- 允許
*.database.windows.net*
- 拒絕
*
- 允許
只允許特定的 IP 範圍:(請注意,製造商仍然可以用
<machine_name\named_instance>
格式輸入不允許的 IP 位址)。- 允許
11.22.33*
- 拒絕
*
- 允許
Dataverse
Dataverse 端點是以組織識別碼 (例如 7b97cd5c-ce38-4930-9497-eec2a95bf5f7) 來表示。 請注意,只有常規 Dataverse 連接器目前位於端點篩選的範圍。 Dataverse dynamics 和 Dataverse current 連接器不在範圍中。 此外,在環境中也不會封鎖本機直營個體 Dataverse (也稱為目前環境)。 這表示在任何特定環境中,決策者始終可以存取 Dataverse 目前的環境。
因此,有一項規則會指出下列各項:
- 允許
7b97cd5c-ce38-4930-9497-eec2a95bf5f7
- 拒絕
*
實際意義:
- 允許
Dataverse current environment
- 允許
7b97cd5c-ce38-4930-9497-eec2a95bf5f7
- 拒絕
*
Dataverse 中任何特定環境的端點篩選清單中,Dataverse current environment
永遠是隱式的第一個規則。
Azure Blob 儲存體
Azure Blob 儲存體端點由 Azure 儲存體帳戶名稱表示。
SMTP
SMTP 端點以 <SMTP server address, port number>
格式表示。
下列範例情況:
- 拒絕
smtp.gmail.com,587
- 允許
*
具有 Microsoft Entra ID 的 HTTP、HTTP Webhook 和 HTTP 連接器
所有 HTTP 連接器的端點都是以 URL 模式表示。 帶有 Microsoft Entra 連接器的 HTTP Get web 資源動作不在範圍內。
下列範例情況:
只允許存取 https://management.azure.com/
中的 Azure 訂閱頁面。
- 允許
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 伺服器連接器:
- 拒絕伺服器「myservername.database.windows.net」的資料庫「testdatabase」
- 允許伺服器「myservername.database.windows.net」的所有其他資料庫
- 拒絕所有其他伺服器
SMTP 連接器:
- 允許 Gmail (伺服器位址:smtp.gmail.com,連接埠:587)
- 拒絕所有其他地址
HTTP 連接器:
- 允許端點
https://mywebsite.com/allowedPath1
和https://mywebsite.com/allowedPath2
- 拒絕所有其他 URL
Note
在以下 Cmdlet 中,PolicyName 是指唯一的 GUID。 您可以執行 Get-DlpPolicy Cmdlet 來擷取 DLP GUID。
$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