Microsoft 365を利用している企業では、ファイルやフォルダの共有リンクが無制限に作成され、意図しない外部共有や情報漏洩のリスクが生じることがあります。特に匿名リンクは、だれでもアクセス可能なため、自社のセキュリティポリシーに反して発行されていないか定期的に確認する必要があります。本記事では、管理者が共有リンクを一括点検する方法を、匿名リンクと外部共有リスクの観点から解説します。
【要点】この記事で確認すること
- 最初に見る場所: Microsoft 365 管理センターの共有ポリシーと SharePoint 管理センターの共有リンク一覧。
- 切り分けの軸: リンクの種類(匿名・組織・特定ユーザー)と共有範囲(社内・外部)でリスクを分類。
- 注意点: 匿名リンクを一括削除する前に、業務利用の有無を確認し、影響範囲を評価してください。
ADVERTISEMENT
目次
1. 匿名リンクと外部共有のリスクとは
共有リンクには、リンクを知っているすべてのユーザーがアクセスできる「匿名リンク」、組織内のユーザーのみがアクセスできる「組織内リンク」、特定のユーザーのみがアクセスできる「特定ユーザーリンク」の3種類があります。このうち匿名リンクは、認証が不要でパスワードや有効期限の設定も可能ですが、設定が不十分だと悪意のある第三者に悪用されるリスクがあります。また、外部共有を許可しているテナントでは、外部ユーザーとの共同作業が促進される一方で、不要な共有リンクが放置されると情報漏洩の温床となります。管理者は、これらのリンクを定期的に一括点検し、不要なものを無効化または削除する必要があります。
2. 共有リンクを一括確認するための準備
点検を始める前に、使用するツールと必要な権限を確認してください。Microsoft 365では、管理センターのGUIからも確認できますが、大量のサイトやリンクを効率的に点検するにはPowerShellが適しています。
利用可能なツール
- Microsoft 365 管理センター(共有ポリシー、外部共有設定の確認)
- SharePoint 管理センター(サイトごとの共有リンクリスト、エクスポート機能)
- SharePoint Online Management Shell(PowerShellによる一括取得・分析)
必要な権限
共有リンクの一覧を取得するには、SharePoint管理者またはグローバル管理者の役割が必要です。PowerShellを使用する場合は、あらかじめSharePoint Online Management Shellをインストールし、Connect-SPOServiceでテナントに接続できる状態にしておいてください。
3. 管理センターでの確認手順
まずは、Microsoft 365 管理センターで組織全体の共有設定を確認します。その後、SharePoint 管理センターで各サイトの共有リンクを確認します。
- Microsoft 365 管理センターにサインインして、「設定」→「組織設定」→「外部共有」を開きます。ここで、ファイルやフォルダの外部共有が許可されているか、匿名リンクが有効になっているかを確認します。
- SharePoint 管理センターに移動し、「共有」をクリックします。外部共有のレベルが「だれでも(認証不要)」になっているサイトがないか確認します。
- サイト一覧から特定のサイトを選択し、「共有リンク」タブを開きます。ここでサイト内の共有リンクを閲覧できますが、全サイトを一度に確認するにはエクスポート機能を使います。
- 「エクスポート」機能を利用して、CSVファイルにリンク情報をダウンロードします。エクスポートにはリンクのURL、タイプ(匿名/組織内/特定ユーザー)、作成者、作成日、有効期限などが含まれます。
- ダウンロードしたCSVをExcelで開き、フィルター機能を使って匿名リンクのみを抽出します。有効期限が切れていないもの、パスワードが設定されていないものなどに注意してください。
管理センターのエクスポートでは、一度に取得できるリンク数に制限がある場合があります。その場合はPowerShellを使うことをおすすめします。
ADVERTISEMENT
4. PowerShellを使った一括取得と分析
PowerShellを使用すると、すべてのサイトから共有リンクを取得し、匿名リンクや外部共有リンクを効率的に抽出できます。以下に代表的な手順を示します。
PowerShellモジュールのインストール
管理者PowerShellを起動し、次のコマンドを実行します。Install-Module -Name Microsoft.Online.SharePoint.PowerShell
インストール後、Connect-SPOService -Url https://contoso-admin.sharepoint.comで接続します。
スクリプト例
次のスクリプトで、すべてのサイトの共有リンクを取得し、匿名リンクを抽出できます。
# 全サイトを取得
$sites = Get-SPOSite -Limit All
$allLinks = @()
foreach ($site in $sites) {
Write-Host "Processing: $($site.Url)"
$links = Get-SPOSiteSharingLink -Identity $site.Url
$allLinks += $links
}
# 匿名リンクのみ抽出
$anonymousLinks = $allLinks | Where-Object { $_.LinkKind -eq "Anonymous" }
# 結果をCSV出力
$anonymousLinks | Export-Csv -Path "AnonymousLinks.csv" -NoTypeInformation
このスクリプトを実行すると、テナント内のすべての匿名共有リンクがCSVに出力されます。CSVにはリンクのURL、作成者、有効期限、パスワード設定の有無などが含まれます。必要に応じて、特定のサイトのみを対象にしたり、有効期限が切れているリンクを除外したりするフィルターを追加してください。
5. 状況別の判断基準と対応方法
取得した共有リンクをどのように評価し、対応するかを表にまとめました。
| リンクの種類 | リスクレベル | 推奨対応 | 管理者確認事項 |
|---|---|---|---|
| 匿名リンク(パスワードなし、期限なし) | 高 | 直ちに無効化し、発行元に連絡 | 業務利用の有無、パスワード設定可否 |
| 匿名リンク(パスワード付き、期限あり) | 中 | 有効期限が適切か確認、不要なら削除 | パスワードの強度、共有範囲の適切さ |
| 組織内リンク | 低 | 原則そのまま、ただし不要なものは削除 | リンクの有効性、利用状況 |
| 特定ユーザーリンク(外部ユーザー含む) | 中〜高 | 外部ユーザーが適切か確認、不要なら削除 | 外部ユーザーの所属・アクセス権限の妥当性 |
特にリスクが高いのは、パスワードも有効期限も設定されていない匿名リンクです。このようなリンクを発見した場合は、すぐに無効化してください。無効化はPowerShellでRemove-SPOSiteSharingLink -Identity [サイトURL] -LinkId [リンクID]を実行するか、管理センターから該当リンクを削除します。
6. よくある失敗パターンと対処法
共有リンクの一括点検では、次のような失敗がよく発生します。事前に把握しておくとスムーズに対応できます。
失敗パターン1:権限不足でリンク一覧を取得できない
PowerShellでGet-SPOSiteSharingLinkを実行するとき、対象のサイトがユーザーの管理範囲外だとエラーになります。すべてのサイトを取得するには、SharePoint管理者権限が必要です。テナント全体のグローバル管理者であることを確認してください。
失敗パターン2:大量のリンクを一度に処理しようとしてタイムアウトする
テナントに数千以上のサイトがある場合、スクリプトが途中で止まることがあります。対処法として、-Limitパラメータで取得数を制限したり、サイトをバッチに分割して処理したりしてください。
失敗パターン3:匿名リンクを無効化した後に業務停止が発生する
事前にリンクの利用状況を確認せずに一括削除すると、顧客との共有ファイルが突然使えなくなるトラブルが起こります。削除前には、リンクの作成者に問い合わせるか、アクセスログを確認して業務に必要かどうかを判断してください。
7. よくある質問(FAQ)
Q1. 共有リンクの有効期限をテナント全体で設定できますか?
はい、SharePoint管理センターの「共有」ポリシーで、匿名リンクの有効期限の既定値を設定できます。たとえば「30日後に期限切れ」と設定すると、新しく作成される匿名リンクに自動的に有効期限が付与されます。
Q2. 外部共有を完全に禁止すべきですか?
業務上の必要性に応じて判断してください。外部共有を完全に禁止すると、取引先との共同作業に支障が出る場合があります。代わりに、承認ワークフローやゲストアクセスのレビューを導入することで、リスクを低減できます。
Q3. PowerShellスクリプトでエラーが発生した場合の確認点は?
まずはSharePoint Online Management Shellのバージョンが最新か確認してください。また、Connect-SPOServiceで正しいテナントURLを指定しているか、アカウントに適切な権限があるかをチェックします。エラーメッセージに応じて対処してください。
まとめ
Microsoft 365の共有リンクを一括点検するには、管理センターのエクスポート機能とPowerShellの併用が効果的です。匿名リンクや外部共有リンクはリスクが高いため、定期的に監視し、不要なものは速やかに無効化する必要があります。管理者は点検の前に、自社の共有ポリシーを確認し、業務利用とのバランスを考慮してください。今後は、自動化スクリプトや監査ログを活用して、継続的なリスク管理を実施することをおすすめします。
ADVERTISEMENT
超解決 リモートワーク研究班
Microsoft 365の導入・保守を専門とするエンジニアグループ。通信障害やサインイン不具合など、ビジネスインフラのトラブル対応に精通しています。
Office・仕事術の人気記事ランキング
- 【Word】差し込み印刷で数字の桁を整える!金額にカンマ(桁区切り)を入れる設定
- 【Copilot】「サービスに接続できません」エラーの原因切り分けと対処法
- 【Teams】メッセージを「保存済み」にして後で読む!重要なチャットをブックマークして整理する技
- 【PDF】PDFのサムネイルプレビューが表示されない!エクスプローラーの設定とAcrobat環境設定
- 【PDF】PDFに入力した文字の「フォント・サイズ・色」を変更するプロパティ設定
- 【Outlook】添付ファイルが「Winmail.dat」に化ける!受信側が困らない送信設定
- 【Excel】文字がセルの枠からはみ出す・隠れる!「折り返して表示」と「縮小して全体を表示」の使い分け
- 【Word】校閲機能の基本!赤字(変更履歴)とコメントで修正を見える化する
- 【PDF】結合するPDFの「用紙サイズ」がバラバラな時、すべてを「A4サイズ」に強制リサイズしてから結合する
- 【Outlook】メール本文が「文字化け」して読めない!エンコード設定の変更と修復手順
