次の方法で共有


コネクタ エンドポイント フィルター処理 (プレビュー)

[この記事はプレリリース ドキュメントであり、変更されることがあります。]

コネクタ エンドポイント フィルター処理を使用すると、管理者は、アプリ、フロー、またはチャットボットを構築するときに、作成者が接続できる特定のエンドポイントを制御できます。 これはデータ損失防止 (DLP) ポリシー内で構成され、次の 6 つのコネクタでのみ使用できます。

  • HTTP
  • HTTP With Microsoft Entra ID (AD)
  • HTTP Webhook
  • SQL Server ( Azure Synapse データ ウェアハウスにアクセスするための SQL Server コネクタの使用を含む)
  • Azure Blob Storage
  • SMTP

作成者がアプリ、フロー、またはチャットボットをブロックされたエンドポイントに接続しようとすると、DLP エラー メッセージが表示されます。

警告

エンドポイントのフィルター処理ルールは、環境変数やカスタム入力、または実行中に動的に作成されたエンドポイントの適用は範囲外です。 アプリ、フロー、またはチャットボット デザイナーでは、静的エンドポイントのみが評価されます。 詳細については、既知の制限 を参照してください。

重要

プレビュー機能は運用環境での使用を想定しておらず、機能が制限されている可能性があります。 これらの機能を公式リリースの前に使用できるようにすることで、顧客が一足先にアクセスし、そこからフィードバックを得ることができます。

エンドポイント フィルター処理ルールを DLP ポリシーに追加する

データ ポリシー事前構築済みコネクタ ページの エンドポイント構成可能 列は、エンドポイント フィルター処理機能がコネクタでサポートされているかどうかを示します。

事前構築済みコネクタ ページで構成可能なエンドポイント。

エンドポイント構成可能列の値がはいの場合、右クリックして構成コネクター>コネクター エンドポイントを選択することでこの機能を使用できます。

コネクタの構成 > コネクタ エンドポイント。

これによりサイドパネルが開き、URL パターンの許可または拒否の順序付きリストを指定できます。 リストの最後の行は常にワイルドカード文字 (*) のルールであり、そのコネクタのすべてのエンドポイントに適用されます。 既定では、* パターンは新しい DLP ポリシーの許可として設定されていますが、これに許可または拒否のタグを付けることができます。

カスタム コネクタの URL パターンの許可と拒否の順序付きリストを指定します。

新しいルールの追加

エンドポイントの追加を選択すると、新しいルールを追加できます。 新しいルールがパターン リストの最後に、最後から 2 番目のルールとして追加されます。 これは、* が常にリストの最後に入力されるからです。 ただし、順序 ドロップダウン リスト、上に移動 または 下に移動 を使用してパターンの順序を更新できます。

エンドポイントの追加を選択して、新しいルールを追加します。

パターンを追加した後、特定の行を選択してから削除を選択することにより、パターンを編集または削除できます。

パターンを削除します。

コネクタ エンドポイント フィルター処理ルールとそれらが定義されている DLP ポリシーを保存すると、対象の環境にすぐに適用されます。 以下は、作成者が許可されていない HTTP エンドポイントにクラウド フローを接続しようとした例です。

エンドポイント フィルター処理ルールによる DLP エラー。

既知の制限

  • エンドポイントのフィルター処理ルールは、環境変数やカスタム エンドポイント、実行中の動的にバインドされたエンドポイントに対するエンドポイント フィルターの適用は範囲外です。 設計時にアプリ、フロー、またはチャットボットを構築するときに既知で選択された静的エンドポイントのみが適用されます。 これは接続が Microsoft Entra ID で認証されている場合、SQL Server と Azure Blob Storage のエンドポイント フィルター ルールは機能しないことを意味します。 以下の 2 つのスクリーンショットでは、作成者が変数内で 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 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 インスタンスのみを許可します。

    1. 許可する *.database.windows.net*
    2. 拒否 *
  • 特定の IP 範囲のみを許可します (許可されていない IP アドレスは、作成者が <machine_name\named_instance> 形式に入力できます。)

    1. 許可する 11.22.33*
    2. 拒否 *

Dataverse

Dataverse エンドポイントは、7b97cd5c-ce38-4930-9497-eec2a95bf5f7 などの 組織 ID で表されます。 現在、エンドポイント フィルターの対象となるのは通常の Dataverse コネクタのみであることに注意してください。 Dataverse ダイナミクスと Dataverse 現在のコネクタは対象外です。 また、Dataverse のローカル インスタンス (現在の環境とも呼ばれます) を、環境内で使用するためにブロックすることはできません。 これは、特定の環境内で、作成者がいつでも Dataverse 現在の環境にアクセスできることを意味します。

したがって、次のようなルールがあります。

  1. 許可する 7b97cd5c-ce38-4930-9497-eec2a95bf5f7
  2. 拒否 *

実際の意味:

  1. 許可する Dataverse current environment
  2. 許可する 7b97cd5c-ce38-4930-9497-eec2a95bf5f7
  3. 拒否 *

Dataverse current environment を許可することは、常に特定の環境の Dataverse エンドポイント フィルター リストの最初のルールです。

Azure Blob Storage

Azure Blob Storage エンドポイントは、Azure ストレージ アカウント名で表されます。

SMTP

SMTP エンドポイントは <SMTP server address, port number> 形式で表されます。

以下がシナリオの例となります。

  1. 拒否 smtp.gmail.com,587
  2. 許可する *

HTTP と Microsoft Entra ID、HTTP Webhook、および HTTP コネクタ

すべての HTTP コネクタのエンドポイントは、URL パターンで表されます。 HTTP と Microsoft Entra コネクタの 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 Server コネクタの場合:

  • サーバー「myservername.database.windows.net」のデータベース「testdatabase」を拒否する
  • サーバー「myservername.database.windows.net」の他のデータベース「testdatabase」を許可する
  • 他のすべてのサーバーを拒否する

SMTP コネクタの場合:

  • Gmail を許可する (サーバーアドレス: smtp.gmail.com、ポート: 587)
  • 他のすべてのアドレスを拒否する

HTTP コネクタの場合:

  • エンドポイント https://mywebsite.com/allowedPath1https://mywebsite.com/allowedPath2 を許可する
  • 他のすべての URL を拒否する

Note

次のコマンドレットでは、PolicyName は一意の GUID を指します。 DLP GUID を取得するには、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