方向性データ ガバナンス フローの使用
ビジネスの状況によっては、外部のソースからコネクタを介して取得したデータが、重要なビジネス情報を保持しているサービスに渡される場合があります。 通常、これらのコネクタは相互に通信します。 データ損失防止 (DLP) ポリシーの課題は、コネクタが一方向にのみ通信し、重要なビジネス データが誤って第三者に送信されるのを防ぐことです。 指定された場所にのみデータが送られるようデータのフローを管理することを、方向性データ ガバナンスと呼びます。
現在、DLP ポリシーでは方向性データ ガバナンスは自動的に処理されません。 ただし、Power Automate を使用すると、ビジネス データを第三者に送信するフローをインターセプトして停止することができます。
次に例を示します。あなたの組織では、SharePoint を使用して X (旧 Twitter) の投稿を追跡することを考えているとします。 適切な制御が行われていないと、ビジネス情報が SharePoint から X に流出する可能性があります。
データが正しい方向 (X から SharePoint へ) にのみ移動するように制御するには、次の手順に従います。
Power Platform 管理センターで、ビジネス データ グループに SharePoint コネクタと X コネクタが含まれる DLP ポリシーを作成します。 このポリシーにより、これらのコネクタの両方を使用してフローを作成できます。
次に、管理者アカウントを使用して Power Automate Maker Portal にサインインし、ガバナンス フローを作成します。 1 時間ごとに実行される予定フローを作成します。
ホーム画面の左側のメニューで +作成 を選択してから、スケジュール済みクラウド フロー を選択します。 フローに対して フロー名、開始日時、および 1 時間ごとの繰り返しを設定し、作成 を選択します。
繰り返しトリガーがフローに自動的に追加されます。
次に、60 分前から現在までの "ティック" の数を計算する変数を作成します (ティックとは、非常に短い時間の単位です)。 このステップの変数を後続のフローで使用して、フローが最後に実行された時点 (60 分前) 以降に作成または変更されたフローがあるかどうかを確認します。
繰り返し トリガーの下の + 記号を選択すると、アクションの追加 メニューが表示されます。 検索 に 変数を初期化する と入力し、検索結果を下にスクロールすると、変数を初期化する アクションが見つかります (これは 変数 アクションにあります)。
変数を初期化する というタイトルを選択し、アクションの名前を 変数を初期化する - タイムスタンプ 1 時間前 に変更します。 名前 では previousTimestamp と指定します。 種類 では、整数 を選択します。 カーソルを 値 フィールドに置くと、稲妻アイコン (前のステップの動的コンテンツを追加) または fx (式を追加) を選択するオプションが表示されます。 ここでは式を入力するので、fx を選択します。
式
ticks(addMinutes(utcNow(),-60))
を入力し、追加 を選択します。次に、別の変数を作成します。 この変数を後続のフローで使用して、他のフローに X アクションが含まれているかどうかを検出します。
作成したステップの下にある + を選択し、別のアクションを追加します。 変数を初期化する アクションを探して、このアクションをもう一つ追加します。 変数を初期化する を選択し、アクションの名前を 変数を初期化する - フローに X アクションが含まれているか に変更します。 名前 に isFlowAction を追加し、種類 を ブール値 に変更します。 値 の下のドロップダウンから false を選択して、false を既定値にします。 この変数は、フローに X アクションが含まれていることを検出する場合に、後続のフローで使用します。
次に、環境の一覧を取得します。 このステップで作成された環境の一覧を後続のフローで使用し、各環境を調べて、X アクションが含まれているフローがあるかどうかを確認します。
作成したステップの下にある + を選択し、管理者として環境を一覧表示 を探します。このアクションは、Power Platform for Admins コネクタ にあります。 このステップではパラメーターを変更する必要はありません。
環境を一覧表示した後で、各環境に含まれるフローの一覧を取得できます。
作成したステップの下にある + を選択し、管理者としてフローを一覧表示 (V2) を探します (V2 よりも新しいバージョンがある場合は、最新バージョンを使用してください)。 このアクションは、Power Automate 管理コネクタ の下にあります。
管理者としてフローを一覧表示 アクションでは、入力パラメーターとして環境の名前が必要です。 環境 フィールドにカーソルを置き、ドロップダウンから カスタム値 を選択します。 稲妻アイコンと fx が再度表示されます。 ここでは、管理者として環境を一覧表示 ステップで生成された動的コンテンツを使用するため、稲妻アイコンを選択します。
フロー内で作成した前のステップから使用できる出力の一覧が表示されます。 下にスクロールして 管理者として環境を一覧表示 ステップを探し、このステップの下から 名前 列を選択します。 この入力を指定すると、個々に適用 アクションが自動的に追加され、すべての環境が反復処理されます。
このフローが最後に実行された以降に変更されたフローのみを確認の対象にするため、フローに条件を追加して、各フローの最後に変更されたタイムスタンプのティックを、このフローで以前に設定した "タイムスタンプ 1 時間前" 変数と比較します。
これを行うには、まず、最後に変更されたタイムスタンプのティックを計算します。 全体のステートメントは、
ticks(items('Apply_to_each_2')?['properties']?['lastModifiedTime']) is greater than previousTimestamp
です。過去 60 分以内にフローが変更されたことを検出した場合は、それが管理者の所有するものではないことを確認する必要があります。 この確認を行うと、今後のステップで管理者をフローの共同所有者として追加するとき、エラーを回避するのに役立ちます。
Office 365 ユーザー コネクタと マイ プロフィールの取得 (V2) アクションを使用し、このアクションを はいの場合 分岐に追加します。 このステップにより、コネクタへの接続を確立したユーザーに関する情報が返されます。この場合は、管理者に関する情報です。
次に、管理者としてフローを一覧表示 アクションの 作成者 のオブジェクト ID が マイ プロフィールの取得 (V2) アクションの ID と等しいかどうかを確認する別の条件を追加します。
はいの場合 分岐に、Power Automate for Admins コネクタに属している フロー所有者ロールを管理者として編集する アクションを追加します。 管理者をフローの共同所有者として追加し、フロー定義を抽出することが可能になります。そのためには、フローの共同所有者である必要があります。
フロー定義は後のステップで取得しますが、現時点では、現在の 環境名 と現在の フロー名 を指定してください。 Body/put セクションを展開し、管理者ユーザーのメールアドレス、表示名、ID に関する詳細を追加します これらの値は、マイ プロフィールの取得 (V2) アクションの動的コンテンツからアクセスできます。
管理者アカウントをフローの共同所有者として追加したら、[フロー管理] コネクタからフローを管理者として取得アクションを呼び出すことができます。
フローを管理者として取得アクションの入力には、現在の環境名やフロー名が含まれます。 このアクションの出力には、X アクションが存在するかどうかを確認できるフロー定義が含まれます。
X アクションが使用されているかどうかを確認するには、フローに条件を追加して、フローを管理者として取得 アクションの アクション API 名 が shared_twitter と等しいかどうかを確認します。 この条件を追加すると、個々に適用 ループが適用されます。 こうしたループが適用されるのは、アクション API 名 属性が配列の一部であり、各フローには多くのアクションが含まれているためです。
Twitter アクションを含むフローが検出されるようになったため、はいの場合 分岐で、isFlowAction 変数を更新して、true に設定します。 この変数を後続のフローで使用して、フローを無効にしてフローの所有者にメールを送る必要があるかどうかを判断します。
フローのすべてのアクションを繰り返すことができる 個々に適用 変数の外側に別の条件を追加します。 この条件は、isFlowAction 変数の値が true であるかどうかを確認します。
はいの場合 分岐で、Microsoft Flow for Admins コネクタを追加し、管理者としてフローを無効にする アクションを選択します。 これにより、フローを無効にして、X への情報の送信を防ぐことができます。このアクションを呼び出すには、現在の 環境名 と フロー名 を含めます。
他のユーザーのフローを無効にする場合は、そのユーザーにメールを送って、そのユーザーのフローが実行されなくなっていることを知らせる必要があります。 フロー所有者のメール アドレスを取得するには、Office 365 ユーザー コネクタを使い、所有者のメール アドレスを返す ユーザー プロファイルの取得 (V2) アクションを使用します。 所有者のメール アドレスを取得するには、作成者のオブジェクト ID を追加する必要があります。この ID は、管理者としてフローを一覧表示 アクションで取得できます。
Office 365 Outlook コネクタとメールの送信 (V2) アクションを使用して、フローの所有者にメールを送ります。 このメールを送信するには、ユーザー プロファイルの取得 (V2) アクションから返された情報 (メール属性、名前属性など) を使用します。 また、管理者としてフローを一覧表示の出力に含まれるフローの表示名属性を追加して、フロー名を含めることもできます。
テナントのすべてのフローをループ処理するので、isFlowAction 変数を false に設定し直して、Twitter アクションを含む可能性のある他のフローを検索できるようにします。 これで、管理フローを保存することができます。
フローをテストするには、別のアカウントを使用して、Power Automate Maker Portal にサインインします。 SharePoint トリガーと X アクションを含むフローを作成します。 このシナリオは、DLP ポリシーによってブロックされませんが、作成した管理フローによって検出されます。
これで、先ほど作成した X (旧 Twitter) アクションの検出フローを管理者として実行することができます。 このフローを実行すると、最近変更されたフローで Twitter アクションが含まれているものが検出されます。 その結果、フローの所有者にメールが送信されます。
SharePoint から X へのフローを確認すると、管理者がフローを無効にしたことが原因でフローが無効になっていることがわかります。
ただし、X から情報を取得して、それを SharePoint に送信することは、ガバナンス ルールには違反しません。 そのため、フロー作成者のアカウントを使用して、X トリガーと SharePoint アクションを含む別のフローを作成することができます。 X アクションの検出ガバナンス フローを実行すると、これは許可されているユース ケースであるため、引き続き機能し、無効にはなりません。