Microsoft Teamsで秘密度ラベルを設定

皆さんこんにちは。国井です。
先日SC-400の試験対策講座をお話しさせていただき、その中でMicrosoft Teamsの秘密度ラベルってどうやって設定するの?割り当てる意味ってなに?という質問をいただいたので、今日はMicrosoft Teamsのコンテンツに秘密度ラベルを設定する方法などについて書いてみます。

秘密度ラベルはMicrosoft Purviewの中のサービスのひとつで、コンテンツに対する暗号化とアクセス制御機能を提供するサービスです。重要なデータを保存するときにパスワードを設定して暗号化するって話をよく聞くと思いますが、秘密度ラベルの場合はMicrosoft Entra IDのユーザーで認証し、ユーザーに割り当てられたアクセス権に基づいてアクセス権が決まる (閲覧、編集など) という仕組みになっています。

秘密度ラベルを使ったことのある人だと「それってOffice アプリケーションのデータに対してだけでしょ」っていう印象を持っている人がいるかもしれないけど、その設定はMicrosoft 365グループに対して適用することもできるのです。Microsoft 365グループに対して適用できるってことは.. そう、Microsoft Teamsのチームを対象に秘密度ラベルが適用できるのです。

前提条件

Microsoft 365グループに対して秘密度ラベルを設定する場合、Microsoft 365 E5/E3 などに含まれる Microsoft Purview Information Protectionのライセンスと Microsoft Teams Premium のライセンスが必要になります。(Microsoft Teams自体、別ライセンスになるというのに、さらにPremiumライセンス買うのか..)

初期設定

Microsoft Purview Information Protection (MIP) で秘密度ラベルを作成するときにラベルの適用対象を選択するのですが、初期設定ではその一覧からTeams会議やMicrosoft 365グループを選択することはできません。そこで、Microsoft 365 グループに秘密度ラベルを適用できるようにするための設定を行います。設定自体は Microsoft Learn のページに掲載されているのですが、これを私の環境で設定したら、うまくいかなかったんですよね..
なので私の環境でこうやって実現したって方法を紹介します。
実行方法の前になぜ失敗したかだけ話しておくと、以下のコマンドレットを実行したときに失敗したのですが、

image

その前に実行するGet-MgBetaDirectorySetting -Search DisplayName:”Group.Unified”コマンドレットが明示的にGroup.Unifiedという名前のものだけを選択してくれないという事象が起きていて、これを無視して実行を進めると上記のようなエラーになります。

image

ということなので、Microsoft Learn の別ページに新規作成方法が書かれているのですが、これをケース関係なく実行するのが良いのではないかと思いました。
ではそれにトライしてみましょう。まずは書かれている通りにPowerShellからコマンドレットを実行します。

Install-Module Microsoft.Graph -Scope CurrentUser

Install-Module Microsoft.Graph.Beta -Scope CurrentUser

Connect-MgGraph -Scopes “Directory.ReadWrite.All”

その後、Get-MgBetaDirectorySettingコマンドレットの代わりにGet-MgBetaDirectorySettingTemplateコマンドレットを実行し、Group.Unifiedという名前のディレクトリ設定の元ネタとなるテンプレート情報を収集します。

$TemplateId = (Get-MgBetaDirectorySettingTemplate | `
where { $_.DisplayName -eq “Group.Unified” }).Id
$Template =Get-MgBetaDirectorySettingTemplate | `
where {$_.id -eq $TemplateId}

それができたら、Group.Unifiedディレクトリ設定に以下の文字列を入れて秘密度ラベルの有効化設定を定義します。

$params = @{
templateId = “$TemplateId”
values = @(
@{
name = “EnableMIPLabels”
value = “True”
}
)
}

ちなみに $Template =Get-MgBetaDirectorySettingTemplate | where {$_.id -eq $TemplateId} を実行した後で $Template だけを実行したときに何も結果が返ってこない場合はLearnのページにある以下のコマンドレットを実行してください。

$params = @{
templateId = “$TemplateId”
values = @(
@{
name = “UsageGuidelinesUrl”
value = “https://guideline.example.com”
}
@{
name = “EnableMIPLabels”
value = “True”
}
)
}

いずれかのコマンドレットが実行できたら、この設定を適用します。

New-MgBetaDirectorySetting -BodyParameter $params

これで出来上がり。設定の確認は以下のコマンドレットでできます。

(Get-MgBetaDirectorySetting | where {$_.displayName -match “group”}).values

image

秘密度ラベルの作成

秘密度ラベルはMicrosoft Purview管理センターの [情報保護] – [秘密度ラベル] から作成します。秘密度ラベルを新規作成すると今まで選択できなかった [グループ&サイト] の項目が選択できるようになります。

image

秘密度ラベルの作成ウィザードを進めると、ラベルが設定されたチーム (Microsoft 365グループ) 内での Teams 会議とチャットを利用するうえでの制限事項を選択できます。
※これは前の画面で [アイテム] – [会議] を選択したことに対応するメニューですね。

image

そして [グループ&サイト] を選択したことに対応するメニューがこちら。
ここでは [プライバシーと外部ユーザー アクセス] と [外部共有および条件付きアクセス] の2つを見てみます。

image

まず [プライバシーと外部ユーザー アクセス] から。ここでは [外部ユーザーアクセス] メニューの項目にチェックをつけておくと外部ユーザー (ゲストユーザー) をチームに追加できなくなります。
それってアクセス許可設定するときに外部ユーザーを追加しなければよいだけなんじゃないの?という意見をいただきましたが、その通りなんですよね。ただ誤って追加しちゃったという行為に対する制限がかけられるメリットはあるかと思います。

image

image

それから[外部共有および条件付きアクセス]項目について。こちらはTeamsチームに対するアクセス制御が実現できます。Microsoft Entra に登録されたデバイス以外のデバイスからアクセスがある場合は条件付きアクセスの設定で閲覧専用のアクセスにしたり、アクセスそのものをブロックしたりできます。

image

Microsoft 365グループへの秘密度ラベルの割り当て

Teamsに対する秘密度ラベルができたら Microsoft 365 グループに秘密度ラベルを割り当てましょう。

image

ここまでの設定によりMicrosoft 365グループに紐づくTeamsチームにアクセスするとラベルが付いていることが確認できます。

Teamsに対する秘密度ラベル

上に書いたことが実際に適用される様子については地味すぎるので省略しますけど、秘密度ラベルからチームに対する各種制限がかけられることが確認しました。秘密度ラベルといえば、暗号化のイメージがありますが、Microsoft 365グループの場合だとアクセス制御面に重きを置いた機能が実装されています。
繰り返しますけど、これを使うにはTeams Premiumが必要なんですよね..