DLPポリシーのコネクタ割り当てをPowerShellを使って行う

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/357828/b1a178bd-90d4-96c7-ae22-696024720fd3.png)
前回の投稿で、DLPポリシーをCSVに出力するPowerShellスクリプトについて説明しました。そのCSVを入力情報として新しいDLPポリシーを作成するPowerShellスクリプトを作成しました。

https://github.com/wataruf01/Microsoft365/blob/main/PowerShell/GetAndSetDLPPolicy/NewDLPPolicy.ps1

参考（前回の投稿）：
DLPポリシーに含まれているコネクタをPowerShellを使って割当先グループ（ビジネス、非ビジネス、ブロック済み）ごとにCSVに一覧出力する
https://qiita.com/wataruf01/items/34d0b44c7178efd74650

#使い方
前回の投稿と同じく以下のモジュールを使います。インストール未実施のPCを使ってDLPポリシーの作成を行う場合は、スクリプトの実行前に管理者権限で下記インストールコマンドを実行してください。

```powershell:モジュールのインストールコマンド
Install-Module -Name Microsoft.PowerApps.Administration.PowerShell
Install-Module -Name Microsoft.PowerApps.PowerShell -AllowClobber
```
次に、入力用のCSVです。前回の投稿で記載している「GetDLPPolicy.ps1」を使って出力したCSVを用意してください。

必要に応じて、割当先のGroupの変更を行ってください。
<font color="Red"> ※CSVで指定されてないコネクタは自動で"既定のグループ"に割り当てられます。</font>
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/357828/7e716734-e3b1-82b2-1814-3a1f588113fa.png)
以下のソースコードがDLPポリシーの設定用PowerShellスクリプトです。
以下の箇所はテナントによって置き換えてください。
・実行アカウントのID/パスワード
・作成するDLPポリシーの名前
・入力用CSVのファイルパス

```powershell:DLPポリシーを作成するスクリプト
#実行アカウント
$adminUserName  = "XXX@XXX.onmicrosoft.com"
$securePassword = "XXX" | ConvertTo-SecureString -AsPlainText -Force
Add-PowerAppsAccount -Username $adminUserName -Password $securePassword

#ポリシーの名前
$newDLPPolicyName = "XXXX"

#入力用CSVのファイルパス
$inputCSVFilePath = ".\DLPPolicy.csv"

#DLPポリシーを作成する
$newDLPPolicy = New-DlpPolicy -DisplayName $newDLPPolicyName -EnvironmentType "AllEnvironments"

#入力用CSVからコネクタの情報をインポートする
$csv = Import-Csv -Path $inputCSVFilePath -Encoding UTF8 | select Group,Name,ID,Type
$allConnectors = $csv | Group-Object -Property Group

#CSVから取得したコネクタ情報を割当先ごとにグループ化する
$BusinessDataConnectors    = $allConnectors | Where Name -EQ "BusinessDataGroup" 
$NonBusinessDataConnectors = $allConnectors | Where Name -EQ "NonBusinessDataGroup"  
$BlockedConnectors         = $allConnectors | Where Name -EQ "BlockedGroup"  

#「ビジネス」グループに割り当てるコネクタを定義する
$BusinessDataConnectorsGroup = `
[PSCustomObject]@{
    classification = "Confidential"
    connectors     = $BusinessDataConnectors.Group | Select Name,ID,Type
}

#「非ビジネス」グループに割り当てるコネクタを定義する
$NonBusinessDataConnectorsGroup = `
[PSCustomObject]@{
    classification = "General"
    connectors     = $NonBusinessDataConnectors.Group | Select Name,ID,Type
}

#「ブロック済み」グループに割り当てるコネクタを定義する
$BlockedConnectorsGroup = 
[PSCustomObject]@{
    classification = "Blocked"
    connectors     = $BlockedConnectors.Group | Select Name,ID,Type
}

#定義したコネクタ情報をDLPポリシーにセットする
$allConnectorGroups = @()
$allConnectorGroups += $BlockedConnectorsGroup
$allConnectorGroups += $BusinessDataConnectorsGroup
$allConnectorGroups += $NonBusinessDataConnectorsGroup
$newDLPPolicy.connectorGroups = $AllConnectorGroups

#DLPポリシーの設定を更新する
Set-DlpPolicy -PolicyName $newDLPPolicy.name -UpdatedPolicy $newDLPPolicy
```

スクリプトを実行するとDLPポリシーの作成が行われます。

このスクリプトでは下記の設定は割愛しています。そのため、このスクリプトでポリシーを作成したあとにPowerPlatform管理センターで手動で行う等の対応を行ってください。
・既定のグループ
・スコープ
・カスタムコネクタ
#参考
この投稿のスクリプトは下記ページを参考にして作成しました。

DLP Policy für Power Platform Services erstellen
https://blog.topedia.com/2020/10/dlp-policy-fur-power-platform-services-erstellen/