【PowerPlatform】ポリシー設定まとめ

こんにちは。ネオシステムの高橋です。
今回は、PowerPlatformにおけるデータ損失防止ポリシー (以下、DLPポリシー) のコアな設定についてまとめました。
コネクタ周りのセキュリティを強化したい方は参考にしてみてください。

# 目次
- ポリシーを作成する
    - DLPポリシー設定の大まかな流れ
    - 事前構築済みコネクタの割り当て
        - 基本的なコネクタの割り当て
        - コネクタを構成する
            - コネクタ アクション コントロール
            - コネクタ エンドポイント フィルター処理 (プレビュー)
    - カスタムコネクタDLPポリシー
        - メール通知
- 【おまけ】テナント間の送信受信制限
- 参考資料

# ポリシーを作成する

DLPポリシーは[Power Platform管理センター](https://admin.powerplatform.microsoft.com/)で設定することができます。

:::note warn
この画面にアクセスするためには、**テナント管理者**か**環境管理者**の権限が必要です。
:::

画面左のメニューから「データポリシー」を選択すると、登録してあるポリシーの一覧が表示されます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/599668/884a2772-857c-80b8-7824-bb759cdcf98f.png)

## DLPポリシー設定の大まかな流れ

新しいポリシーを定義するには「＋新しいポリシー」を選択してください。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/599668/47af53e4-e0ab-ba17-7001-d27b6b2f142f.png)

ポリシーを作成するためには、5つのステップを踏む必要があります。
この記事では、2つ目の「事前構築済みコネクタ」と3つ目の「カスタムコネクタ」について詳しく見ていきます。

## 事前構築済みコネクタの割り当て
ここでは、標準で用意されているコネクタを設定します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/599668/a39cd3b1-5ed4-171f-1f8a-26f9dd980b7d.png)


### 基本的なコネクタの割り当て
通常、コネクタは「ビジネス」「非ビジネス」「ブロック」の3つに割り当てることができます。
機密情報を扱うコネクタの場合は「ビジネス」、使用禁止にしたいコネクタは「ブロック」に割り当てましょう。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/599668/f4eaad85-82db-0792-edfd-4910e4dd08b1.png)
対象のコネクタを選ぶと「ビジネスに移動する」と「ブロック」のボタンが表示されるので、移動させたい方に選んでください。

### コネクタを構成する
**上の画面にある「コネクタを構成する」ボタンを押すとどうなるのか？**
ここからがこの記事のメインです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/599668/c1a05a3b-4616-4b51-0e2a-cfebd06da16c.png)

「コネクタを構成する」ボタンを押すと2つの選択肢が表示されます。
それぞれの機能について見ていきましょう。


#### コネクタ アクション コントロール
「コネクタのアクション」から利用できるアクションを制限することができます。

:::note warn
アクションの設定が有効でないコネクタがあることに注意してください。
詳細は[こちら](https://learn.microsoft.com/ja-jp/power-platform/admin/connector-action-control)。
:::

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/599668/df3c53ec-7310-5f7f-2a9a-1d7bd3a61603.png)

新規アクションが追加された場合、そのアクションを許可するかブロックするかも選ぶことができます。

この設定を入れた状態で、Power Automateを使ってみましょう。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/599668/3b519ffb-c77e-d9ac-c8d8-8dcb3ed7d68f.png)

アクションの追加時は、許可されていないアクションも選べるようです。
フローを保存しようとすると…

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/599668/bd30e886-5e03-2eb4-bafa-7cf400855f31.png)

このようなエラーメッセージが表示され、フローを保存することができなくなります。

#### コネクタエンドポイントフィルター処理 (プレビュー)
コネクタエンドポイントを設定すると、上で紹介した基本的なコネクタの割り当てよりも細かなアクセス制限を設けることができます。

:::note warn
コネクタエンドポイントを設定できるコネクタは以下の6つです。
詳細は[こちら](https://learn.microsoft.com/ja-jp/power-platform/admin/connector-endpoint-filtering)をご確認ください。
- HTTP
- Azure Active Directory (AD) を使用した HTTP
- HTTP Webhook
- SQL サーバー
- Azure Blob Storage
- SMTP

:::

実際にHTTPコネクタにエンドポイントの構成を設定してみました。
HTTPコネクタの割り当ては既定の**非ビジネス**のままにしています。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/599668/f6e50067-01ec-f73a-efaf-5e39209fb3d5.png)

画像にある通り、1番に`https://management.azure.com/*`を拒否するように設定します。

この状態でポリシーを作成し、ポリシーを割り当てた環境でPower Automateのフローを作成してみましょう。

HTTPコネクタを使ったアクションを追加し、URIを`https://management.azure.com/*`に設定してフローを保存してみてください。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/599668/37cc0105-351e-672e-129e-5aa6c9864658.png)

フローは保存できましたが警告が表示され、フローをオンにすることができなくなりました。

エンドポイントは「許可」と「拒否」の2種類が設定できるほかに、複数のエンドポイントを指定することもできます。その場合は並び順に注意しましょう。

## カスタムコネクタDLPポリシー
次に、ポリシー作成のステップ3「カスタムコネクタ」について見ていきましょう。
ここでは、カスタムコネクタに対してのポリシーを設定することができます。

上で説明したコネクタエンドポイントフィルターとやり方はほぼ同じです。
少し違うのは、データグループを設定できる点です。
事前構築済みコネクタと同様に「ビジネス」「非ビジネス」「ブロック」の3つに割り当てることができます。

![b7b5abcb-3b4e-4c02-a80c-ca6412ad0494.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/599668/50d4137c-60fc-290a-5bc3-2d76f4bd0632.png)

このようなポリシーを作成した後にカスタムコネクタを作成します。

今回は、ポリシーに違反した場合どのような動きになるかを見たいので、カスタムコネクタにわざとポリシーに引っかかるようなリクエストURLをセットしました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/599668/4386cb73-6489-ed97-7f0f-7696bb40eb2d.png)

Power Automateで作成したカスタムコネクタを使って保存しようとすると

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/599668/f4f0a9a9-a568-5bea-7baf-0c102ed28f1a.png)

エラーメッセージが表示され、フローを保存することができなくなります。

## メール通知
あとからポリシーを作成/編集した場合、既存で作成していたフローが動かなくなることがあります。
そんな時はフロー所有者に対してメールが届くようです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/599668/aa4e4bbb-2290-161e-814d-6abc0fde7bf5.png)

# 【おまけ】テナント間の送信受信制限
ポリシー設定の調査をしているときに見つけたので、おまけとして記載しました。

テナント間での制限を設けないと、間違って別のテナントの情報を取ってきてしまうことがあるらしいです。
この例で言うと、Power Automateで別テナントのメールアドレスを使って接続できてしまいます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/599668/95bfb46d-2075-b67c-b26c-aeb2dc0dc309.png)

「テナント分離」から新しいテナントルールを設定することで、上のような予期せぬ接続を防ぐことができます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/599668/dd3eb7d3-f09c-b2be-6d92-ef409e108d07.png)

通信方向は「受信」「送信」「受信と送信」の3つから選べます。
この設定をするには、別テナントのテナントIDが必要になるのであらかじめ用意しておきましょう。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/599668/ffca1854-80ba-2d9a-8db2-4eb1ec050ec7.png)

テナントIDは、PowerAppsの「設定」にある**セッション詳細**を選択すると表示されます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/599668/232651de-e604-4c9c-f752-3574c5531a21.png)
テナント間の制限に引っかかるとこのようなエラーメッセージが表示されます。

# まとめ
今回は、PowerPlatformのコネクタ周りの制御方法について紹介しました。
アプリ開発者が誤って情報漏えいを起こさないために、テナント管理者や環境管理者が守ってあげましょう。

# 参考資料
- [コネクタ アクション コントロール](https://learn.microsoft.com/ja-jp/power-platform/admin/connector-action-control)
- [コネクタ エンドポイント フィルター処理 (プレビュー)](https://learn.microsoft.com/ja-jp/power-platform/admin/connector-endpoint-filtering)
- [テナント レベル DLP ポリシー](https://learn.microsoft.com/ja-jp/power-platform/admin/dlp-connector-classification#tenant-level-dlp-policies)
- [テナント間のインバウンドとアウトバウンドを制限する](https://learn.microsoft.com/ja-jp/power-platform/admin/cross-tenant-restrictions)