共用方式為


連接器端點篩選 (預覽版)

[本文章是發行前版本文件,且隨時可能變更。]

連接器端點篩選可讓管理員控管建置應用程式、流程或聊天機器人時,製作者可以連接至哪些特定端點。 這是在資料外洩防護 (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。

為自訂連接器指定 Allow 或 Deny URL 模式的排序清單。

新增新規則

您可以選取新增端點來新增規則。 新規則會新增至模式清單結尾做為倒數第二條規則。 這是因為 * 永遠都是清單中的最後一個項目。 不過,您也可以使用順序下拉式清單或選取上移下移來更新模式的順序。

選取新增端點新增規則。

新增模式之後,您可以選取特定列並選取編輯或刪除,然後選擇刪除

刪除模式。

儲存連接器端點篩選規則以及定義這些規則的 DLP 原則後,目標環境會立即強制執行這些規則。 以下是製作者已嘗試將其雲端流程連接至不允許的 HTTP 端點的範例。

因端點篩選規則而發生的 DLP 錯誤。

已知限制

  • 執行階段不會對環境變數、自訂輸入和動態繫結端點強制執行端點篩選規則。 只有在設計期間組建應用程式、流程或聊天機器人時已知和所選靜態端點才會強制執行。 這表示如果使用 Microsoft Entra ID 對連線進行驗證,則不會強制執行 SQL Server 和 Azure Blob 儲存體的端點篩選規則。 在下方兩個螢幕擷取畫面中,製作者已建置雲端流程,此流程會在變數中定義 SQL Server 和資料庫,然後使用這些變數做為連線定義的輸入。 因此,不會評估端點篩選規則,而雲端流程可以順利執行。

    雲端流程使用變數來連接至 SQL。雲端流程執行成功。

  • 部分在 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 執行個體:

    1. 允許 *.database.windows.net*
    2. 拒絕 *
  • 只允許特定的 IP 範圍:(請注意,製造商仍然可以用 <machine_name\named_instance> 格式輸入不允許的 IP 位址)。

    1. 允許 11.22.33*
    2. 拒絕 *

Dataverse

Dataverse 端點是以組織識別碼 (例如 7b97cd5c-ce38-4930-9497-eec2a95bf5f7) 來表示。 請注意,只有常規 Dataverse 連接器目前位於端點篩選的範圍。 Dataverse dynamics 和 Dataverse current 連接器不在範圍中。 此外,在環境中也不會封鎖本機直營個體 Dataverse (也稱為目前環境)。 這表示在任何特定環境中,決策者始終可以存取 Dataverse 目前的環境。

因此,有一項規則會指出下列各項:

  1. 允許 7b97cd5c-ce38-4930-9497-eec2a95bf5f7
  2. 拒絕 *

實際意義:

  1. 允許 Dataverse current environment
  2. 允許 7b97cd5c-ce38-4930-9497-eec2a95bf5f7
  3. 拒絕 *

Dataverse 中任何特定環境的端點篩選清單中,Dataverse current environment 永遠是隱式的第一個規則。

Azure Blob 儲存體

Azure Blob 儲存體端點由 Azure 儲存體帳戶名稱表示。

SMTP

SMTP 端點以 <SMTP server address, port number> 格式表示。

下列範例情況:

  1. 拒絕 smtp.gmail.com,587
  2. 允許 *

具有 Microsoft Entra ID 的 HTTP、HTTP Webhook 和 HTTP 連接器

所有 HTTP 連接器的端點都是以 URL 模式表示。 帶有 Microsoft Entra 連接器的 HTTP Get web 資源動作不在範圍內。

下列範例情況:

只允許存取 https://management.azure.com/ 中的 Azure 訂閱頁面。

  1. 允許 https://management.azure.com/subscriptions*
  2. 拒絕 https://management.azure.com/*
  3. 拒絕 *

端點篩選的 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/allowedPath1https://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