Information protectionクライアントによる秘密度ラベルの付与(暗号化)をコマンドで実施する
はじめに
Informaiton protectionクライアントによる秘密度ラベルの付与(暗号化)をコマンドで実施する方法について紹介します。
公式ドキュメント
流れ
本記事では、以下の3つの主要なステップでInformation Protectionによる暗号化をコマンドで実施します。
STEP1:Entraのアプリの登録をする。
↓
STEP2:そのアプリと認証をする。(Set-Authenticaton)
↓
STEP3:ファイルパスを指定し、その配下のファイルに、ラベルを付与する。(Set-FileLabel)
前提
下記のアカウントを用意する必要があります。
なお、Entraアカウントについては、適用したいラベルがこのユーザーに発行されていること、Information Protectionのスーパーユーザーとなっていることが必要です。
対話形式でサインインできる Windows アカウント。
委任されたアクセス用の Microsoft Entra アカウント。 管理を容易にするために、Active Directory から Microsoft Entra ID に同期する単一のアカウントを使用します。
Information protectionクライアントをインストールします。
コマンドを実行するためのモジュールは、Informaiton protectionクライアントをインストールすれば同時にインストールされます。
STEP1:Entraアプリの登録
Entra管理センター>アプリの登録>+新規登録

次の値を入力し、[登録]をクリック
| 選択肢 | 値 |
|---|---|
| 名前 | AIP-DelegatedUser ※別の名前でもかまいません |
| サポートされているアカウントの種類 | [ この組織のディレクトリ内のアカウントのみ] |
| リダイレクト URI (省略可能) | [Web] を選択し、「https://localhost」と入力します。 |

作成した情報が表示される。
アプリケーション(クライアント)IDを控えておく。

証明書とシークレット>クライアント シークレット>+ 新しいクライアント シークレット

次の値を入力し、[追加]
| 選択肢 | 値 |
|---|---|
| 説明 | Microsoft Purview Information Protection client |
| 有効期限 | 任意 |
一時的にしか使わないのであれば、推奨の6ヶ月でよいでしょう。
※期限が切れるタイミングで、コマンドを使ってラベル付与等したい場合は、再度新しいシークレットの作成が必要になるので注意。

新しく作成されたことを確認し、[値]の文字列をコピーして控えておきます。

APIのアクセス許可 > +アクセス許可の追加

Azure Right Management Servicesを選択

アプリケーションの許可を選択

Content.DelegatedReader
Content.DelegatedWriterを検索し、[アクセス許可の追加]

再度 +アクセス許可の追加

Microsoft Information Protection Sync Service を検索し、クリック

アプリケーションの許可を選択肢、
UnifiedPolicy.Tenant.Readをクリック、[アクセス許可の追加]

APIのアクセス許可ページに戻るので、
[✔テナントに管理者の同意を与えます]をクリック

確認のウィンドウが出るので[はい]

この後の手順のために、テナントIDを確認して控えておきます。
Entra管理センター>概要>基本情報>テナントID

STEP2:Set-Authenticationコマンドを実行
このステップでは、Entra IDを通じて認証トークンを取得するために使われます。これを実施しておくことで、スクリプト実行時に対話的な認証が不要になります。
このコマンドレットをパラメーターなしで実行すると、アカウントは 90 日間またはパスワードの有効期限が切れるまで有効な Microsoft Entra アクセス トークンを取得します。
Powershellを管理者として実行します

Purviewモジュールをインポートします
Import-Module PurviewInformationProtection
Windowsのアカウントの資格情報を格納する変数を作成します。
"CONTOSO\srv-scanner"は、認証に使用するWindowsアカウントのユーザー名に置き換えてください。
$pscreds = Get-Credential "CONTOSO\srv-scanner"
ウィンドウが表示されるため、パスワードを入力します。

控えておいたアプリケーション (クライアント) ID、シークレットの値、テナントID、Entraのユーザーアカウント名を当てはめます。
Set-Authentication -AppId "アプリケーション (クライアント) ID" -AppSecret "クライアントシークレットの[値]" -TenantId "テナントID" -DelegatedUser scanner@contoso.com -OnBehalfOf $pscreds
STEP3 Set-FileLabelコマンドの実施
ここからは、フォルダにあるファイルに秘密度ラベルを付与していきます。
コマンドリファレンス
付与したいラベルのGUIDを調べる
付与したいラベルのGUIDを調べます(Purview管理センター唐も可能です。)
セキュリティ/コンプライアンス PowerShell接続します
# Exchange Online PowerShell モジュールを読み込む
Import-Module ExchangeOnlineManagement
# 接続して認証する
Connect-IPPSSession
※認証ウィンドウが表示されるためEntraアカウント情報で認証します
テナントで作成されているラベルを取得するコマンドを実行します
Get-Label | Format-Table DisplayName, Name, Guid
付与したいラベルのGUIDを控えておきます。
ラベルの付与コマンドを実行
フォルダーとそのサブフォルダー内のすべてのファイルに "全般" ラベルを適用するコマンドを実行します。
Set-FileLabel -Path "C:\Projects\folder(パスと置き換えてください)" -LabelId d9f23ae3-1324-1234-1234-f515f824c57b(ラベルのGUIDをと差し替えてください)
# 出力イメージ
FileName : C:\Projects\folder\test.docx
Status : Success
Comment : MainLabelName :
MainLabelId :
SubLabelName :
SubLabelId :
WhatIf : False
MatchedInformationTypes :
LastModifiedBy :
LastModifiedTime :
- ラベルが付与されていないファイルのみを対象とする
- 拡張子を指定して対象とする
といった方法については下記のコマンドリファレンスに記載があります。
コマンドリファレンス
確認結果
自動ラベル付けポリシーの対象外で、Informaiton protectionクライアントを使ってのみ秘密度ラベルの付与が可能な、TXTやPNGファイルも暗号化されています。

Word、Excel、Powerpoint等のOfficeファイルについては、カギのアイコンは表示されていないものの、ファイルを開くとユーザーでの認証が求められます。(秘密度ラベルのアクセス制御によるもの)
秘密度ラベルのアクセス権限がないアカウントでログインしても閲覧できません。


おわりに
Informaiton protectionクライアントによる秘密度ラベルの付与(暗号化)はコマンドでも実行できます。
コマンド利用で円滑かつセキュリティをUPする暗号化ライフを~
Discussion