方向性データ ガバナンス フローの使用

完了

ビジネスの状況によっては、外部のソースからコネクタを介して取得したデータが、重要なビジネス情報を保持しているサービスに渡される場合があります。 通常、これらのコネクタは相互に通信します。 データ損失防止 (DLP) ポリシーの課題は、コネクタが一方向にのみ通信し、重要なビジネス データが誤って第三者に送信されるのを防ぐことです。 指定された場所にのみデータが送られるようデータのフローを管理することを、方向性データ ガバナンスと呼びます。

現在、DLP ポリシーでは方向性データ ガバナンスは自動的に処理されません。 ただし、Power Automate を使用すると、ビジネス データを第三者に送信するフローをインターセプトして停止することができます。

次に例を示します。あなたの組織では、SharePoint を使用して X (旧 Twitter) の投稿を追跡することを考えているとします。 適切な制御が行われていないと、ビジネス情報が SharePoint から X に流出する可能性があります。

データが正しい方向 (X から SharePoint へ) にのみ移動するように制御するには、次の手順に従います。

  1. Power Platform 管理センターで、ビジネス データ グループに SharePoint コネクタと X コネクタが含まれる DLP ポリシーを作成します。 このポリシーにより、これらのコネクタの両方を使用してフローを作成できます。

    Microsoft Power Platform 管理センターの [データ ポリシー] ページのスクリーンショット。[コネクタの割り当て] ステップに X コネクタと SharePoint コネクタが表示されています。

  2. 次に、管理者アカウントを使用して Power Automate Maker Portal にサインインし、ガバナンス フローを作成します。 1 時間ごとに実行される予定フローを作成します。

  3. ホーム画面の左側のメニューで +作成 を選択してから、スケジュール済みクラウド フロー を選択します。 フローに対して フロー名、開始日時、および 1 時間ごとの繰り返しを設定し、作成 を選択します。

    [フロー名] が [X アクションの検出] に設定されている [予定フローを作成] のスクリーンショット。

    繰り返しトリガーがフローに自動的に追加されます。

  4. 次に、60 分前から現在までの "ティック" の数を計算する変数を作成します (ティックとは、非常に短い時間の単位です)。 このステップの変数を後続のフローで使用して、フローが最後に実行された時点 (60 分前) 以降に作成または変更されたフローがあるかどうかを確認します。

  5. 繰り返し トリガーの下の + 記号を選択すると、アクションの追加 メニューが表示されます。 検索変数を初期化する と入力し、検索結果を下にスクロールすると、変数を初期化する アクションが見つかります (これは 変数 アクションにあります)。

  6. 変数を初期化する というタイトルを選択し、アクションの名前を 変数を初期化する - タイムスタンプ 1 時間前 に変更します。 名前 では previousTimestamp と指定します。 種類 では、整数 を選択します。 カーソルを フィールドに置くと、稲妻アイコン (前のステップの動的コンテンツを追加) または fx (式を追加) を選択するオプションが表示されます。 ここでは式を入力するので、fx を選択します。

    ticks(addMinutes(utcNow(),-60)) を入力し、追加 を選択します。

    Power Automate のマイ フロー ページのスクリーンショット。[変数を初期化する] アクションの [値] プロパティで ticks の式が強調表示されています。

    次に、別の変数を作成します。 この変数を後続のフローで使用して、他のフローに X アクションが含まれているかどうかを検出します。

  7. 作成したステップの下にある + を選択し、別のアクションを追加します。 変数を初期化する アクションを探して、このアクションをもう一つ追加します。 変数を初期化する を選択し、アクションの名前を 変数を初期化する - フローに X アクションが含まれているか に変更します。 名前isFlowAction を追加し、種類ブール値 に変更します。 の下のドロップダウンから false を選択して、false を既定値にします。 この変数は、フローに X アクションが含まれていることを検出する場合に、後続のフローで使用します。

    [フローに X アクションが含まれているか] という 2 番目の [変数を初期化する] アクションのスクリーンショット。

    次に、環境の一覧を取得します。 このステップで作成された環境の一覧を後続のフローで使用し、各環境を調べて、X アクションが含まれているフローがあるかどうかを確認します。

  8. 作成したステップの下にある + を選択し、管理者として環境を一覧表示 を探します。このアクションは、Power Platform for Admins コネクタ にあります。 このステップではパラメーターを変更する必要はありません。

    新しい [Power Platform for Admins] アクションのスクリーンショット。[管理者として環境を一覧表示] オプションが強調表示されています。

    環境を一覧表示した後で、各環境に含まれるフローの一覧を取得できます。

  9. 作成したステップの下にある + を選択し、管理者としてフローを一覧表示 (V2) を探します (V2 よりも新しいバージョンがある場合は、最新バージョンを使用してください)。 このアクションは、Power Automate 管理コネクタ の下にあります。

    アクションを選択するステップのスクリーンショット。[管理者としてフローを一覧表示] が強調表示されています。

  10. 管理者としてフローを一覧表示 アクションでは、入力パラメーターとして環境の名前が必要です。 環境 フィールドにカーソルを置き、ドロップダウンから カスタム値 を選択します。 稲妻アイコンと fx が再度表示されます。 ここでは、管理者として環境を一覧表示 ステップで生成された動的コンテンツを使用するため、稲妻アイコンを選択します。

  11. フロー内で作成した前のステップから使用できる出力の一覧が表示されます。 下にスクロールして 管理者として環境を一覧表示 ステップを探し、このステップの下から 名前 列を選択します。 この入力を指定すると、個々に適用 アクションが自動的に追加され、すべての環境が反復処理されます。

    [個々に適用] アクションのスクリーンショット。[管理者としてフローを一覧表示] に動的コンテンツの [名前] が設定されています。

このフローが最後に実行された以降に変更されたフローのみを確認の対象にするため、フローに条件を追加して、各フローの最後に変更されたタイムスタンプのティックを、このフローで以前に設定した "タイムスタンプ 1 時間前" 変数と比較します。

  1. これを行うには、まず、最後に変更されたタイムスタンプのティックを計算します。 全体のステートメントは、ticks(items('Apply_to_each_2')?['properties']?['lastModifiedTime']) is greater than previousTimestamp です。

    はいの場合といいえの場合のオプションが表示されているティックの数値が前のステップよりも大きい条件のスクリーンショット。

  2. 過去 60 分以内にフローが変更されたことを検出した場合は、それが管理者の所有するものではないことを確認する必要があります。 この確認を行うと、今後のステップで管理者をフローの共同所有者として追加するとき、エラーを回避するのに役立ちます。

    Office 365 ユーザー コネクタと マイ プロフィールの取得 (V2) アクションを使用し、このアクションを はいの場合 分岐に追加します。 このステップにより、コネクタへの接続を確立したユーザーに関する情報が返されます。この場合は、管理者に関する情報です。

    [はいの場合] 条件に含まれる [Office 365 ユーザー] のスクリーンショット。[マイ プロフィールの取得] アクションが強調表示されています。

  3. 次に、管理者としてフローを一覧表示 アクションの 作成者 のオブジェクト ID が マイ プロフィールの取得 (V2) アクションの ID と等しいかどうかを確認する別の条件を追加します。

    はいの場合 分岐に、Power Automate for Admins コネクタに属している フロー所有者ロールを管理者として編集する アクションを追加します。 管理者をフローの共同所有者として追加し、フロー定義を抽出することが可能になります。そのためには、フローの共同所有者である必要があります。

    フロー定義は後のステップで取得しますが、現時点では、現在の 環境名 と現在の フロー名 を指定してください。 Body/put セクションを展開し、管理者ユーザーのメールアドレス、表示名、ID に関する詳細を追加します これらの値は、マイ プロフィールの取得 (V2) アクションの動的コンテンツからアクセスできます。

    [フロー所有者ロールを管理者として編集する] のスクリーンショット。プロパティが強調表示されています。

  4. 管理者アカウントをフローの共同所有者として追加したら、[フロー管理] コネクタからフローを管理者として取得アクションを呼び出すことができます。

    フロー管理とフローを管理者として取得が強調表示されているスクリーンショット。

  5. フローを管理者として取得アクションの入力には、現在の環境名フロー名が含まれます。 このアクションの出力には、X アクションが存在するかどうかを確認できるフロー定義が含まれます。

    [フローを管理者として取得] が追加されている [はいの場合] 条件のスクリーンショット。[環境] に [名前] が設定され、[フロー] に [フロー名] が設定されています。

  6. X アクションが使用されているかどうかを確認するには、フローに条件を追加して、フローを管理者として取得 アクションの アクション API 名shared_twitter と等しいかどうかを確認します。 この条件を追加すると、個々に適用 ループが適用されます。 こうしたループが適用されるのは、アクション API 名 属性が配列の一部であり、各フローには多くのアクションが含まれているためです。

  7. Twitter アクションを含むフローが検出されるようになったため、はいの場合 分岐で、isFlowAction 変数を更新して、true に設定します。 この変数を後続のフローで使用して、フローを無効にしてフローの所有者にメールを送る必要があるかどうかを判断します。

    はいの場合の条件の変数の設定 - Twitter アクションは存在しますが強調表示されているスクリーンショット。

  8. フローのすべてのアクションを繰り返すことができる 個々に適用 変数の外側に別の条件を追加します。 この条件は、isFlowAction 変数の値が true であるかどうかを確認します。

    [条件 3 - Twitter アクションは存在するか] が強調表示されているスクリーンショット。

  9. はいの場合 分岐で、Microsoft Flow for Admins コネクタを追加し、管理者としてフローを無効にする アクションを選択します。 これにより、フローを無効にして、X への情報の送信を防ぐことができます。このアクションを呼び出すには、現在の 環境名フロー名 を含めます。

    [管理者としてフローを無効にする] が含まれている [はいの場合] 分岐のスクリーンショット。[環境名] に [名前] が設定され、[フロー名] に [フロー名] が設定されています。

  10. 他のユーザーのフローを無効にする場合は、そのユーザーにメールを送って、そのユーザーのフローが実行されなくなっていることを知らせる必要があります。 フロー所有者のメール アドレスを取得するには、Office 365 ユーザー コネクタを使い、所有者のメール アドレスを返す ユーザー プロファイルの取得 (V2) アクションを使用します。 所有者のメール アドレスを取得するには、作成者のオブジェクト ID を追加する必要があります。この ID は、管理者としてフローを一覧表示 アクションで取得できます。

    ユーザー プロファイルの取得 - フローの作成者でユーザー (UPN) が作成者のオブジェクト ID に設定されているスクリーンショット。

  11. Office 365 Outlook コネクタとメールの送信 (V2) アクションを使用して、フローの所有者にメールを送ります。 このメールを送信するには、ユーザー プロファイルの取得 (V2) アクションから返された情報 (メール属性、名前属性など) を使用します。 また、管理者としてフローを一覧表示の出力に含まれるフローの表示名属性を追加して、フロー名を含めることもできます。

    メールの送信で、宛先にメール、件名にテキスト、本文にテキストと、名とフローの表示名の各フィールドが設定されているスクリーンショット。

  12. テナントのすべてのフローをループ処理するので、isFlowAction 変数を false に設定し直して、Twitter アクションを含む可能性のある他のフローを検索できるようにします。 これで、管理フローを保存することができます。

    [変数の設定 - Twitter フラグのリセット] のスクリーンショット。[名前] が [isFlowAction] に設定され、[値] が [false] に設定されています。

  13. フローをテストするには、別のアカウントを使用して、Power Automate Maker Portal にサインインします。 SharePoint トリガーと X アクションを含むフローを作成します。 このシナリオは、DLP ポリシーによってブロックされませんが、作成した管理フローによって検出されます。

    Power Automate のマイ フロー ページのスクリーンショット。

  14. これで、先ほど作成した X (旧 Twitter) アクションの検出フローを管理者として実行することができます。 このフローを実行すると、最近変更されたフローで Twitter アクションが含まれているものが検出されます。 その結果、フローの所有者にメールが送信されます。

  15. SharePoint から X へのフローを確認すると、管理者がフローを無効にしたことが原因でフローが無効になっていることがわかります。

    [SharePoint > Twitter] フローが無効になっている Power Automate の [フロー] ページのスクリーンショット。

ただし、X から情報を取得して、それを SharePoint に送信することは、ガバナンス ルールには違反しません。 そのため、フロー作成者のアカウントを使用して、X トリガーと SharePoint アクションを含む別のフローを作成することができます。 X アクションの検出ガバナンス フローを実行すると、これは許可されているユース ケースであるため、引き続き機能し、無効にはなりません。

Power Automate のマイ フロー ページのスクリーンショット。