PowerShellでMicrosoft Purviewのロールグループレポートを作成する方法
By Mirko Peters · · Updated
PowerShellを使って、Microsoft Purviewのロールグループのアクセス許可をまとめたレポートを作成します。このガイドで、コンプライアンス、eディスカバリー、Microsoft 365の監査を行いましょう。
Automatically translated with AI from the original post. Read the English original
Purviewでロールグループを管理することは、組織内のセキュリティとコンプライアンスを維持するうえで欠かせません。PowerShellを活用すればこのプロセスを効率化でき、作業を自動化して時間を節約できます。PowerShellを使うと、Purviewのロールグループのメンバーシップを一覧にしたレポートを簡単に生成できます。このガイドでは、Purviewに接続してレポートを効果的に作成するための手順を順に説明します。
重要なポイント
- レポートを生成する前に、Purviewへの管理者アクセス権があることを確認してください。このアクセス権は、ロールグループを効果的に管理するために不可欠です。
- Microsoft Purviewにスムーズに接続するために、PowerShell 5.1と必要なモジュール(CAMPとAIPService)をインストールしてください。
- PowerShellスクリプトを使用して、Purviewのロールグループレポートの生成を自動化しましょう。これにより時間を節約でき、手作業によるミスも減らせます。
- コンプライアンスとセキュリティを維持するために、レポートを定期的に作成するようスケジュールを設定しましょう。このプロセスを自動化すると、ロールグループのメンバーシップの状況を常に把握しやすくなります。
- レポートのデータを分析し、傾向や潜在的なセキュリティリスクを特定してください。定期的なレビューにより、機密情報にアクセスできるのが承認されたユーザーだけであることを確認できます。
- Purviewのロールグループは、プログラムによって列挙してエクスポートできます。PowerShellでPurviewロールグループレポートを生成すれば、メンバーシップ、割り当てられたロール、スコープを1回の実行で包括的に取得できます。
- ロールグループのメンバーシップは、Purviewの UI で必ずしも見えるとは限りません。ネストされたメンバーシップや継承されたメンバーシップの一部は、PowerShellでクエリした場合にのみ表示されます。そのため、レポートによって隠れたアクセス経路が明らかになります。
- 監査の抜け漏れを発見できます。PowerShellで作成したPurviewロールグループレポートは、UI では見落とされがちな古いアクセス許可や孤立したアクセス許可を示すことができ、過剰な権限を持つアカウントの削減に役立ちます。
- カスタムロールはレポートに影響します。カスタムロールを含むロールグループには標準外のアクセス許可セットが設定されている場合があり、スクリプトで作成したレポートでのみ、実際に対処可能な権限として正しく解決できます。
- テナントをまたぐシナリオもレポートできます。PowerShellによる自動化を使えば、複数のテナントのロールグループレポートを統合し、ガバナンスやコンプライアンスレビュー向けに正規化されたビューにまとめられます。
- 時間軸での変更追跡も可能です。PowerShellのPurviewロールグループレポートを定期的に実行して出力を保存すれば、履歴の変化を追跡し、予期しない権限昇格を検出できます。
- 他のツールとの連携も簡単です。PowerShellで生成したPurviewロールグループレポートは、CSVやJSON形式に整形して、SIEM、GRCプラットフォーム、スプレッドシートに取り込めます。これにより、自動アラートや分析を実施できます。
PowerShellの前提条件

必要なアクセス許可
PowerShellを使ってPurviewのレポートを生成する前に、必要なアクセス許可があることを確認してください。Purviewへの管理者アクセス権が必要です。この権限があると、ロールグループを効果的に表示および管理できます。このアクセス許可がない場合、スクリプトの実行やデータの取得時にエラーが発生する可能性があります。
PowerShellのインストール
PowerShellスクリプトを実行するには、お使いのマシンにPowerShellがインストールされている必要があります。必要な最小バージョンは5.1です。インストールされていない場合は、Microsoftの公式サイトからダウンロードできます。さらに、Microsoft Purviewに接続するには特定のモジュールが必要です。必要なモジュールはCAMPとAIPServiceです。
前提条件を満たしているかを確認するための簡単なチェックリストです。
- PowerShellのバージョン: バージョン5.1以上であることを確認してください。
- モジュール: CAMPおよびAIPServiceモジュールをインストールしてください。
- 管理者アクセス: Purviewで管理者権限があることを確認してください。
これらの前提条件を満たすことで、Purview ロールグループ レポートの生成をスムーズに進められるようになります。
手順の概要
- PowerShell のバージョンを確認します。
- 必要なモジュールをインストールします。
- Purview で管理者アクセス権があることを確認します。
これらの手順を実行すると、レポート作成に向けて PowerShell を効果的に使える状態になります。
Microsoft Purview に接続する
接続のセットアップ
PowerShell で Microsoft Purview に接続するには、次の手順に従います。
- Azure サブスクリプションを用意する: 有効な Azure サブスクリプションと、それに関連付けられた Microsoft Entra テナントが必要です。
- Azure ポータルにサインインする: Azure アカウントの資格情報を使用して、ポータルにアクセスします。
- Azure PowerShell または Azure CLI をインストールする: クライアント マシンに必要なツールがインストールされていることを確認します。
- リソース グループを作成する: リソース グループがない場合は、次のコマンドを実行します。
New-AzResourceGroup -Name myResourceGroup -Location 'East US' - Microsoft Purview アカウントを作成またはデプロイする: 次のコマンドを使用して Purview アカウントを設定します。
New-AzPurviewAccount
これらの手順に従うと、Microsoft Purview へのセキュリティで保護された接続を確立できます。
資格情報の認証
接続を設定したら、資格情報を認証する必要があります。手順は次のとおりです。
- PowerShell を開く: お使いのマシンで PowerShell を起動します。
- ログイン コマンドを実行する: 次のコマンドを使用してログインします。
このコマンドを実行すると、Azure アカウントの資格情報の入力を求められます。Connect-AzAccount - 接続を確認する: ログイン後、次のコマンドを実行して Purview アカウントにアクセスできるかを確認します。
Get-AzPurviewAccount
接続プロセス中に問題が発生した場合は、次のよくあるエラーを確認してください。
- パスワードの誤り: ユーザー名とパスワードを再度確認してください。
- PowerShell へのアクセス: アカウントで PowerShell が有効になっていることを確認してください。
- ネットワーク アクセス: Microsoft 365 との通信のために TCP ポート 80 が開いていることを確認してください。
- モジュールのインストール: PowerShellGet と PackageManagement の両方のモジュールがインストールされていることを確認してください。
これらの手順に従うことで、Microsoft Purview に正常に接続して資格情報を認証でき、ロールグループ レポートの生成に進めます。
Purview ロールグループ レポートの生成

レポート用メンバーシップの PowerShell スクリプト
Purview ロールグループ レポートを生成するには、次の PowerShell スクリプトを使用できます。このスクリプトは Microsoft Graph に接続し、ロールグループのメンバーシップを取得します。レポートを作成するには、次の手順に従ってください。
- Microsoft Graph に接続する: 必要なスコープを使用して、必要なデータにアクセスします。
- Exchange Online に接続する: セキュリティ and コンプライアンス エンドポイントにアクセスできることを確認します。
- ロールグループを取得する:
Get-RoleGroupコマンドレットを実行して、テナント内のすべてのロールグループを検索します。 - メンバーシップを列挙する: 各ロールグループについて、現在のメンバーを特定します。Entra ID のオブジェクトの種類ごとに区別します。
- PowerShell のリストを更新する: 各ロール割り当てとロールグループのメンバーシップの詳細を格納するリストを作成します。
- 一意の ID を特定する: ユーザーやサービス プリンシパルなど、ロール割り当てを保持している一意の ID を見つけます。
- オブジェクトの詳細を収集する: 一意の ID ごとに、部署や国などの追加の詳細を収集します。
- 情報を並べ替える: レポートを見やすくするために、ユーザーの割り当て情報をオブジェクトの種類と名前で整理します。
- HTML レポートを生成する: 有効な各ロールグループとそのメンバーシップの詳細を含む HTML レポートを作成します。
これらの手順を実装したサンプルの PowerShell スクリプトは次のとおりです。
# Connect to Microsoft Graph
Connect-MgGraph -Scopes "Group.Read.All"
# Get role groups
$roleGroups = Get-RoleGroup
# Initialize lists
$roleGroupMemberships = @()
foreach ($group in $roleGroups) {
$members = Get-RbacGroupMember -GroupId $group.Id
foreach ($member in $members) {
$roleGroupMemberships += [PSCustomObject]@{
RoleGroupName = $group.DisplayName
MemberName = $member.DisplayName
MemberType = $member.ObjectType
}
}
}
# Generate HTML report
$roleGroupMemberships | ConvertTo-Html -Property RoleGroupName, MemberName, MemberType -Title "Purview Role Group Membership Report" | Out-File "PurviewRoleGroupReport.html"
このスクリプトを使用すると、Purview のロールグループのメンバーシップに関する包括的なレポートを生成できます。
出力データの理解
PowerShellスクリプトを実行すると、ロールグループのメンバーシップを詳しく示すHTMLレポートが出力されます。出力データの読み方は次のとおりです。
- Role Group Name: この列には、各ロールグループの名前が表示されます。
- Member Name: この列には、各ロールグループに所属するユーザーやサービスプリンシパルの名前が表示されます。
- Member Type: メンバーがユーザー、サービスプリンシパル、またはその他の種類のEntra IDオブジェクトのどれであるかを示します。
このデータを分析すると、組織内のロールグループのメンバーシップについての洞察が得られます。この情報は、適切なロールベースのアクセス制御 (RBAC)を確保し、セキュリティコンプライアンスを維持するうえで欠かせません。
レポートに表示されるメンバーシップの正確性は、Purview環境の現在の状態に左右される点に注意してください。スクリプトとレポートを定期的に更新すると、ロールグループのメンバーシップの変更を把握しやすくなります。
レポート作成のベストプラクティス
定期レポートをスケジュールする
コンプライアンスとセキュリティを維持するために、Purviewロールグループに関する定期レポートをスケジュールしておくことをお勧めします。定期的なレポートは、どのユーザーがコンプライアンス関連のロールを保有しているかを把握するのに役立ち、組織がセキュリティポリシーに沿って運用されていることの確認にもつながります。レポートを効果的にスケジュールするための手順は次のとおりです。
- PowerShellコマンドレットを使用する: PowerShellコマンドレットを活用して、レポート作成のプロセスを自動化します。指定した間隔で実行されるスクリプトを作成できます。
- タスクスケジューラを設定する: Windows タスクスケジューラを使用して、PowerShellスクリプトを自動的に実行します。これにより、手作業を介さなくても最新のレポートを受け取れます。
- レポート形式を選択する: レポートは、.PDFなどの安全な形式で保存します。こうすると機密情報を保護でき、権限を持つユーザーとの共有も容易になります。
ヒント: レポートへのアクセス権を付与する際は、必ず最小特権の原則を適用してください。これにより、不正アクセスのリスクを最小限に抑えられます。
レポートデータを分析する
レポートを作成したら、データの分析が重要になります。コンプライアンスロールグループのメンバーシップを把握すると、潜在的なセキュリティリスクを特定しやすくなります。効果的な分析のための戦略は次のとおりです。
- メンバーシップを定期的に確認する: 各ロールグループに所属するユーザーを確認します。機密データへのアクセスが承認されたユーザーだけに限定されているかを確かめてください。主要なロールグループには、Purview 管理者やData Source Administratorsが含まれます。
- 傾向を特定する: ロールグループのメンバーシップにパターンがないかを確認します。通常と異なる動きや、さらなる調査が必要な変更を見つけるのに役立ちます。
- 調査結果を記録する: 分析の記録を残しておきます。このドキュメントは、コンプライアンス監査の証跡として使えるほか、時間の経過に伴う変更を追跡するのにも役立ちます。
これらのベストプラクティスに従うことで、レポート作成のプロセスを強化し、組織がMicrosoft 365のコンプライアンス基準に準拠した状態を保てます。
このガイドでは、PowerShellを使ってPurviewロールグループのレポートを作成する方法を学びました。Microsoft Purviewに接続し、資格情報で認証したうえで、PowerShellスクリプトを実行してロールグループのメンバーシップを取得しました。
定期的なレポート作成は、セキュリティとコンプライアンスを維持するうえで非常に重要です。アクセス状況を監視し、潜在的なリスクを特定するのに役立ちます。
このプロセスを日々のワークフローに組み込むことをお勧めします。そうすることで、組織のセキュリティ態勢が強化され、業界標準への準拠も確実になります。
よくある質問
Microsoft Purviewとは何ですか?
Microsoft Purviewは、さまざまな環境にまたがるデータの管理と保護を支援する統合型のデータガバナンスソリューションです。データの検出、分類、コンプライアンスのためのツールを提供します。
PurviewのレポートにPowerShellを使うのはなぜですか?
PowerShellを使うとレポート作成プロセスが自動化され、時間を節約できるうえ、手作業によるミスも減らせます。Purviewのロールグループのメンバーシップを効率よく取得し、管理できます。
Purview ロール グループ レポートはどのくらいの頻度で生成すればよいですか?
Purview ロール グループ レポートは定期的に、理想的には毎月または四半期ごとに生成してください。この取り組みにより、アクセスを監視し、セキュリティ ポリシーへの準拠を維持できます。
PowerShell スクリプトの実行中にエラーが発生した場合はどうすればよいですか?
エラーが発生した場合は、アクセス許可を確認し、必要なモジュールがすべてインストールされていることを確認したうえで、Microsoft Purview への接続を検証してください。具体的な対処方法については、エラー メッセージを確認してください。
レポートの形式はカスタマイズできますか?
はい、レポートの形式はカスタマイズできます。必要に応じて PowerShell スクリプトを変更し、CSV や PDF ファイルの生成など、出力形式を変更してください。
Purview ポータルと Purview コンプライアンス
この FAQ では、PowerShell を使用した Purview ロール グループ レポートの生成に焦点を当て、Microsoft Purview および Microsoft 365 における関連するアクセス許可、ロール管理、監査について説明します。
PowerShell モジュール、Microsoft Purview アクセス許可、Purview RBAC ロール
このガイドでは、PowerShell モジュールと Microsoft Graph PowerShell SDK を使用して、ロール グループのメンバーを一覧表示し、組み込みのロール定義を確認し、コンプライアンスおよび eDiscovery のシナリオ向けのレポートを作成する方法を説明します。
PowerShell を使用した Purview ロール グループ レポートとは何ですか?また、なぜ作成するのでしょうか?
PowerShell を使用した Purview ロール グループ レポートとは、ロール グループ、ロールの割り当て (Purview RBAC ロールと組み込みロールのマッピング)、および Microsoft Purview ソリューションと Microsoft 365 サービス全体のロール グループ メンバーを一覧にした、生成済みのファイル (CSV または JSON) です。このレポートは、ロールのアクセス許可を監査し、特権ロール (グローバル管理者ロールや管理者ロール) へのアクセス権を持つユーザーを確認し、コンプライアンス レビューや eDiscovery ケースを支援し、変更管理や内部リスク管理のアクセス許可レビューに活用するために作成します。
Microsoft Purview のロール グループ レポートを生成するには、どの PowerShell モジュールを使用すればよいですか?
環境に応じて複数のモジュールを組み合わせて使用します。Microsoft Purview ポータルのロールの割り当てとロール グループ メンバーを照会するには Microsoft Graph PowerShell SDK を使用し、一部の Microsoft 365 および eDiscovery 固有のロール グループには Exchange Online Management モジュールまたは Security & Compliance モジュールを使用します。Purview データおよび Purview コンプライアンス ポータルのタスクについては、Microsoft Learn に例が掲載されている場合もあります。
PowerShell を使用して Purview ロール グループ レポートを実行するには、どのようなアクセス許可が必要ですか?
通常は、ロール管理機能を持つグローバル管理者ロールや委任管理者ロールなどの昇格されたロール、または Purview ポータルの管理ロール (特権ロールや管理者ロール) などの Microsoft Purview 固有のアクセス許可が必要です。一部のクエリでは、Organization Management ロール グループや eDiscovery Manager ロール グループの割り当てが必要になる場合があります。Microsoft Graph PowerShell SDK でロールの割り当てと監査ログのエントリを読み取る場合は、Graph のアクセス許可に同意していることを確認してください。
Microsoft Graph PowerShell SDK を使用して、ロール グループのメンバーとそのロールを一覧表示するにはどうすればよいですか?
roleManagement.read.* と Directory.Read.All を含む委任アクセス許可またはアプリ アクセス許可で認証し、roleDefinitions と roleAssignments を照会して、Purview RBAC ロールをロール グループにマッピングし、ロール グループのメンバーを列挙します。結果を CSV にエクスポートするとレポートを作成できます。eDiscovery Manager ロール グループなど Exchange Online 固有のグループの場合は、ロール グループのメンバーとコンテンツ検索の権限を一覧表示するために、Exchange Online Management モジュールが必要になる場合があります。
同じレポートに eDiscovery と情報保護のロールを含めることはできますか?
はい、可能です。Microsoft Purview ポータル (Microsoft Purview ソリューションと Microsoft Purview Data ロール)、Microsoft 365 サービス (コンテンツ検索、eDiscovery ケース、eDiscovery Manager ロールおよび eDiscovery Manager ロール グループ)、Microsoft Information Protection の割り当ての各データを組み合わせてください。複数の PowerShell モジュールまたは Graph クエリを使用してロールのアクセス許可を集約し、正規化したうえで、1 つのレポートとしてエクスポートします。
ロール グループの変更を監査し、時間の経過に伴うロールのアクセス許可を追跡するにはどうすればよいですか?
Microsoft Graph PowerShell SDK または Purview コンプライアンス ポータルの監査 API を通じて利用できる監査ログと、Azure AD のサインインおよび監査イベント (Microsoft Entra / Microsoft Entra ID) を使用します。ロールの割り当てとロール グループのメンバー一覧を定期的にエクスポートする処理をスケジュールして、変更を検出してください。過去のスナップショットを保存しておくと、ドリフトの検出やコンプライアンスの証跡収集に役立ちます。
Microsoft Purviewのロール グループ レポートで注意すべき、組み込みロールの一般的な制限は何ですか?
組み込みロールの定義は範囲が広く(例: グローバル管理者、コンプライアンス管理者)、Microsoft Purview コンプライアンス、パージ操作、特権データへのアクセスを広範囲に付与する場合があります。レポートでは、組み込みロールの重複、既定のロール グループ、および Microsoft Purview データ、Microsoft Defender XDR、Microsoft 365 Copilot のデータへの昇格アクセスを実質的に付与する割り当てを明示する必要があります。変更できない組み込みロールもありますが、それらの数を把握し、監視することはできます。
委任管理のロール グループを扱い、特権ロールの露出を減らすにはどうすればよいですか?
特権ロールに割り当てられているロール グループのメンバーを特定し、最小特権の原則を検討してください。可能であれば、より範囲の狭いカスタム ロールを作成し、不要なロール グループのメンバーシップを削除し、緊急アクセス用の制御を使用します。レポートでは、特権ロールのリスクを抑えるため、組織の管理ロール グループのユーザー、管理ロールの保有者、およびロールが割り当てられているサービス プリンシパルにフラグを付ける必要があります。
これらのレポートの作成と自動化に関する例やベスト プラクティスはどこで見つけられますか?
Microsoft Graph PowerShell SDK、Exchange Online 管理モジュール、コンプライアンス ポータルの API を使用した PowerShell の例については、Microsoft Learn とドキュメントを参照してください。ベスト プラクティスとしては、定期的なエクスポートの自動化、監査ログ エントリの取得、ロールのアクセス許可を一連のアクセス許可として文書化すること、そして検出結果をロール管理、ロール アクセス許可のレビュー、コンプライアンス監査に関するガバナンス ワークフローに統合することが挙げられます。