次の方法で共有


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

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

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

  • HTTP
  • HTTP With Microsoft Entra ID (AD)
  • HTTP ウェブフック
  • SQL Server ( Azure Synapse データ ウェアハウスにアクセスするための SQL Server コネクタの使用を含む)
  • Azure Blob Storage
  • SMTP
  • ブラウザーの自動化
  • ユーザーインターフェース自動化

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

警告

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

重要

  • これはプレビュー機能です。
  • プレビュー機能は運用環境向けではなく、機能が制限されている可能性があります。 これらの機能は 補足的な使用条件の対象であり、お客様が早期にアクセスしてフィードバックを提供できるように、公式リリースの前に利用できます。

エンドポイント フィルター規則をデータ ポリシーに追加する

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

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

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

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

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

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

新しいルールの追加

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

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

パターンを追加した後は、特定の行を選択してから [削除] を選択して、パターンを編集または 削除できます

パターンを削除します。

コネクタ エンドポイントのフィルター規則と定義されているデータ ポリシーを保存すると、対象となる環境にすぐに適用されます。 次の図は、作成者が許可されていない HTTP エンドポイントにクラウド フローを接続しようとする例を示しています。

エンドポイント フィルター規則が原因でデータ ポリシー エラーが発生しました。

既知の制限

  • エンドポイントのフィルタールールは、実行時に環境変数、カスタム入力、動的にバインドされたエンドポイントには適用されません。 設計時にアプリ、フロー、またはチャットボットを構築するときに既知で選択された静的エンドポイントのみが適用されます。 つまり、接続が Microsoft Entra ID で認証されている場合、SQL Server と Azure Blob Storage のコネクタ エンドポイントフィルター規則は適用されません。 次の 2 つのスクリーンショットでは、作成者が SQL Server とデータベースを変数内に定義し、それらの変数を接続定義への入力として使用するクラウド フローを構築します。 その結果、エンドポイント フィルター規則は評価されず、クラウド フローが正常に実行されます。

    変数を使用して SQL に接続するクラウド フローのスクリーンショット。

    正常に実行されているクラウド フローのスクリーンショット。

  • データ ポリシー コネクタアクションルールとエンドポイントルールを適用するには、2020 年 10 月 1 日より前に公開された Power Apps を再発行する必要があります。 次のスクリプトを使用すると、管理者と作成者は、これらの新しいデータ ポリシーの詳細な制御規則に準拠するために再発行する必要があるアプリを特定できます。

    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 comply with granular data policy: " $app.AppName " "  $app.Internal.properties.displayName " " $app.Internal.properties.owner.email
        } 
        Else{ 
            Write-Host "App is already Granular data policy 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 エンドポイントは、00aa00aa-bb11-cc22-dd33-44ee44ee44ee などの 組織 ID で表されます。 現在、エンドポイント フィルターの対象となるのは通常の Dataverse コネクタのみであることに注意してください。 Dataverse ダイナミクスと Dataverse 現在のコネクタは対象外です。 また、Dataverse のローカル インスタンス (現在の環境とも呼ばれます) を、環境内で使用するためにブロックすることはできません。 つまり、作成者は任意の環境内の Dataverse の現在の環境にいつでもアクセスできます。

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

  1. 許可する 00aa00aa-bb11-cc22-dd33-44ee44ee44ee
  2. 拒否 *

実際の意味:

  1. 許可する Dataverse current environment
  2. 許可する 00aa00aa-bb11-cc22-dd33-44ee44ee44ee
  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. 拒否 *

ブラウザーの自動化

この機能を使用すると、Power Automate for Desktop でデスクトップ フローがアクセスする Web ページを制御できます。 エンドポイントは URL 形式または Web ページ名の形式で表され、ワイルドカードを使用して動的 URL またはページ名の照合を行うことができます。 検証は、デスクトップ フローがブラウザーの操作を続行する前に、"Web ブラウザーの起動" または "Web ページに移動" アクション中に行われます。

注意

"Web ブラウザーの起動" アクションがフォアグラウンド ウィンドウにアタッチするように構成されている場合、エンドポイント フィルター処理は検証されません。 このような場合、すべての Web ページへのアクセスが拒否されない限り、アクションはブロックされません。

シナリオの例を次に示します。

URL https://www.microsoft.com/ と文字列 powerplatform を含む URL、または Web ページを除く、すべての Web ページへのアクセスを許可します。

  1. 拒否 https://www.microsoft.com/
  2. 拒否 *powerplatform*
  3. 許可する *

ユーザーインターフェース自動化

この機能を使用すると、デスクトップ 向け Power Automate でデスクトップ フローが対話できるアプリケーションと画面を定義できます。 エンドポイントは、アプリケーションのプロセス名を使用して指定されます。 プロセス名が ApplicationFrameHostJava、または Javaw の場合は、複数のインスタンスが同じ名前を共有するユニバーサル Windows プラットフォーム (UWP) または Java アプリケーションを示します。Power Automate for desktop では、プロセス名とウィンドウ表示名の両方を使用してターゲットを正確に識別します。 ワイルドカードは、柔軟な照合でサポートされています。

検証は、UI オートメーション グループ内のすべてのアクションで行われます。 ターゲット画面のセレクター (画像内の矢印で示されているように) プロセス 属性 (画像内の数値 1 で示されます) または Name 属性 (画像内の数値 2 で示されます) を確認します。 通常、関連する UI 要素の親は、対話が許可されているかどうかを判断するために使用されます。

画面のセレクター

エンドポイント フィルター規則は、変数や動的にバインドされたエンドポイントには適用されません。 式にリテラル文字列以外のものが含まれている場合、フィルター処理はバイパスされ、制限されたコネクタ引数へのアクセスが許可される可能性があります。 既定のポリシー動作は、すべてのエンドポイント フィルター ポリシーにコア ルール (許可 * または 拒否 * ) が含まれます。既定値は [許可] * ([すべて許可] ) です。

  • 許可 * が使用されている場合: 動的な値はフィルター処理されません。 動的式は、特定のアプリケーションが制限されている場合でも、エンドポイントのフィルター処理をバイパスします。
  • Deny * を使用する場合: すべての動的値は既定でブロックされ、より厳密な適用が保証されます。

注意

  • 関連する属性 (プロセス または 名前) がセレクターの一部でない場合、エンドポイントのフィルター処理は適用されません。
  • エンドポイント のフィルター処理は、デスクトップ アイコン、タスク バー ボタン、 スタート メニュー内のコンポーネントなど、特定の Windows オペレーティング システム UI 要素ではサポートされていません。

シナリオの例を次に示します。 すべてのアプリケーションと画面へのアクセスを許可するために、Process または Name 属性が正確に Calculator であるか、文字列 Java を含むものを除外するために、次の規則を構成します。

  1. 拒否 Calculator
  2. 拒否 *Java*
  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 がルールでカバーされるようにする必要があります。
  • 各コネクタのルールの order プロパティでは、数値 1 から N を使用する必要があります。N は、そのコネクタのルールの数です。

データ ポリシーの既存のコネクタ構成を取得する

Get-PowerAppDlpPolicyConnectorConfigurations 

データ ポリシーのコネクタ構成を作成する

New-PowerAppDlpPolicyConnectorConfigurations

データ ポリシーのコネクタ構成を更新する

Set-PowerAppDlpPolicyConnectorConfigurations

目標:

SQL Server コネクタの場合:

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

SMTP コネクタの場合:

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

HTTP コネクタの場合:

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

注意

次のコマンドレットでは、PolicyName は一意の GUID を指します。 Get-DlpPolicy コマンドレットを実行して、データ ポリシー 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