「このフォルダ、誰がアクセスできるか把握していますか?」——現場でこう聞かれて即答できるエンジニアは少ないです。
ファイルサーバの権限は、運用を続けるうちに少しずつ「誰かが必要だと言ったから追加した」「以前の担当者が設定したまま残っている」という状態が積み重なり、気づけば誰も全体像を把握できないブラックボックスになっています。退職者のアカウントが残ったまま・全員が参照できるはずのフォルダに意図しない編集権限が付いている・本来見せてはいけないフォルダに広範なアクセス権が設定されている——こうした問題は、設計と棚卸しの仕組みがないと際限なく積み重なります。
この記事では、ファイルサーバの権限設計の基本・AGDLPモデルを使った管理パターン・PowerShellによる権限の棚卸し方法を解説します。
最小権限の原則については「最小権限の原則とは?実務での考え方と設計例」を先にご覧ください。
ファイルサーバの権限がブラックボックス化する理由
ファイルサーバの権限は「作ったときは整理されていたが、運用するうちに崩れる」パターンがほとんどです。
個別対応の積み重ね 「このプロジェクトのために○○さんにアクセス権を付けてほしい」という個別依頼に対応するたびに、設計の外側で権限が追加されていきます。プロジェクト終了後も権限が残り続けます。
担当者交代による引き継ぎ不足 前任者が設定した権限の意図が引き継がれず、「なぜこの権限があるのかわからないが触ると問題が起きそう」という理由で放置されます。
退職者・異動者のアカウントが残る IDライフサイクル管理が機能していないと、退職・異動後もアクセス権が有効なまま残ります。IDライフサイクル管理については「IDライフサイクル管理とは?入社・異動・退職で権限を正しく管理する方法」を参照してください。
権限設計の基本——ACLとアクセス制御の仕組みを理解する
ACLとは何か——許可と拒否のルール
ACL(Access Control List:アクセス制御リスト) リソース(フォルダ・ファイル)に設定されたアクセス権のリスト。誰が(ユーザー・グループ)・何を(読み取り・書き込み・削除等)・許可するか/拒否するかを定義する。
WindowsのファイルサーバにおけるACLは、ACE(アクセス制御エントリ) の集合体です。各ACEは「このユーザー・グループはこの操作を許可/拒否する」という1つのルールを表します。
ACE(Access Control Entry:アクセス制御エントリ) ACLを構成する個々のルール。対象(ユーザー・グループ)・権限の種類(読み取り・書き込み等)・許可または拒否の3つの要素で構成される。
権限の評価で重要なのは「拒否は許可より優先される」という原則です。あるユーザーが「読み取り許可」のグループと「読み取り拒否」のグループの両方に所属している場合、拒否が優先されてアクセスできません。この仕様を知らないと意図しないアクセス制限が発生します。
共有アクセス許可とNTFSアクセス許可の違い
Windowsのファイルサーバには2種類のアクセス許可が存在します。この2つが重なって最終的なアクセス権が決まります。
共有アクセス許可(Share Permissions) ネットワーク経由でフォルダにアクセスする際に適用されるアクセス許可。フォルダの共有設定で定義する。ローカルアクセスには適用されない。
NTFSアクセス許可(NTFS Permissions) NTFSファイルシステム上のフォルダ・ファイルに直接設定するアクセス許可。ネットワーク・ローカル両方のアクセスに適用される。継承の設定が可能。
| 項目 | 共有アクセス許可 | NTFSアクセス許可 |
|---|---|---|
| 適用範囲 | ネットワーク経由のみ | ネットワーク・ローカル両方 |
| 設定の粒度 | 粗い(フルコントロール・変更・読み取りの3種類) | 細かい(読み取り・書き込み・削除等を個別設定) |
| 推奨設定 | 「Everyone・フルコントロール」で開放 | NTFSで細かく制御 |
実務での推奨設定は「共有アクセス許可はEveryoneフルコントロール・NTFSアクセス許可で詳細を制御する」です。共有アクセス許可で細かい制御をしようとすると2つの設定が絡み合って管理が複雑になります。
参考:共有と NTFS アクセス許可 | Microsoft Learn
ファイルサーバの権限設計パターン
フォルダ構造と権限の設計原則
権限設計の前に、フォルダ構造を設計することが重要です。フォルダ構造が権限設計の粒度を決めるためです。
フォルダ構造設計の原則
共有フォルダ(ルート)
├── 部門フォルダ(営業部・開発部・管理部等)
│ ├── 全員参照フォルダ(部門内全員が読み取り可能)
│ ├── 業務フォルダ(担当者のみ編集可能)
│ └── 管理職フォルダ(管理職のみアクセス可能)
├── プロジェクトフォルダ(プロジェクト単位)
└── 共通フォルダ(全社共通資料)
設計の原則は3つです。
① 権限の継承を活用する:親フォルダの権限を子フォルダに継承させることで、設定の手間と管理コストを減らします。
② フォルダ階層は浅くする:深い階層は権限の把握を困難にします。3〜4階層を上限の目安にしてください。
③ 最小権限で設計する:必要な操作のみを許可します。「とりあえずフルコントロール」は厳禁です。
AGDLPモデル——グループを使った権限管理
AGDLPモデル Active Directory環境でのグループ管理のベストプラクティス。Account(ユーザーアカウント)→Global group(グローバルグループ)→Domain Local group(ドメインローカルグループ)→Permission(アクセス許可)の順にネストする設計。

AGDLPモデルを使うと「フォルダへの権限を直接ユーザーに付与しない」設計が実現できます。
ユーザーに直接権限を付与する問題点
- 退職・異動時に個別で権限を削除する必要がある
- 誰にどの権限があるか把握しにくい
- 同じ権限を持つべき複数人に個別設定が必要
AGDLPモデルの設計例
【フォルダ】営業部_業務フォルダ
↓ NTFSアクセス許可を付与
【ドメインローカルグループ】DL_営業部_業務_変更
↓ メンバーとして追加
【グローバルグループ】G_営業部_メンバー
↓ メンバーとして追加
【ユーザーアカウント】田中太郎、鈴木花子...
この構造にすることで、人事異動が発生したときにグローバルグループのメンバーを変更するだけで済みます。フォルダへの権限設定を変更する必要がありません。
ADのグループ設計については「ADのユーザーとグループ管理|最小権限を実現する設計パターン」で詳しく解説しています。
部門・ロール別の権限設計例
実務でよく使われる権限の組み合わせを整理します。
| ロール | 推奨する権限 | 設定場所 |
|---|---|---|
| 一般メンバー(参照のみ) | 読み取りと実行 | NTFSアクセス許可 |
| 一般メンバー(編集あり) | 変更(読み取り・書き込み・削除) | NTFSアクセス許可 |
| 管理者・リーダー | フルコントロール | NTFSアクセス許可 |
| バックアップサービス | 読み取りと実行 | NTFSアクセス許可(専用アカウント) |
権限の棚卸し——現状を可視化する
PowerShellで権限を一覧化する
既存のファイルサーバの権限を把握するために、PowerShellで現状を一覧化します。
powershell
# 指定フォルダ以下のACLを再帰的に取得してCSVに出力
$rootPath = "\\fileserver\share"
Get-ChildItem -Path $rootPath -Recurse -Directory |
ForEach-Object {
$acl = Get-Acl -Path $_.FullName
foreach ($access in $acl.Access) {
[PSCustomObject]@{
フォルダパス = $_.FullName
アカウント = $access.IdentityReference
権限の種類 = $access.FileSystemRights
アクセス制御の種類 = $access.AccessControlType
継承 = $access.IsInherited
}
}
} |
Export-Csv -Path "acl_report.csv" -NoTypeInformation -Encoding UTF8
このスクリプトで出力したCSVをExcelで確認することで、フォルダごとのアクセス権を一覧で把握できます。
不要な権限を見つけるチェックポイント
棚卸し時に優先的に確認すべきポイントは以下の通りです。
① 退職・異動済みアカウントへの権限 無効化されたアカウントや削除済みアカウント(SIDが表示される)が権限に残っていないか確認します。
② Everyoneグループへの過剰な権限 Everyone や Authenticated Users に変更・フルコントロール権限が付いているフォルダは即確認が必要です。
③ 継承を切って個別設定されているフォルダ 継承を無効にして個別設定されているフォルダは管理が複雑になりやすい場所です。意図した設定かどうかを確認してください。
④ ユーザーに直接付与されている権限 グループではなくユーザーアカウントに直接権限が付与されているものは、AGDLPモデルへの移行対象です。
よくある失敗パターン
① フォルダに直接ユーザーアカウントを設定している
グループを使わずにユーザーアカウントを直接フォルダのACLに設定しているケースです。退職・異動のたびに個別でフォルダのACLを変更する必要が生じ、変更漏れが発生しやすくなります。AGDLPモデルへの移行を検討してください。
② 「とりあえずフルコントロール」の権限が広がっている
作業効率を優先して「フルコントロール」を付与したまま放置されているケースが多くあります。フルコントロールはファイルの削除・権限変更まで含む最大の権限です。本当に必要でなければ「変更」権限に下げてください。
③ 継承を無効にしたフォルダが大量に存在する
個別対応のたびに継承を無効にして個別設定を繰り返した結果、どのフォルダに何の権限があるか把握できない状態になっています。継承の無効化は最小限にして、できる限り親フォルダからの継承で管理することを推奨します。
④ 権限の棚卸しを一度もしていない
「最初に設定したまま一度も見直していない」というケースが最も多い問題です。少なくとも年1回・人事異動の多い時期に合わせて権限の棚卸しをスケジュール化してください。
ファイルサーバ権限設計チェックリスト
設計
- フォルダ構造を設計してから権限を付与している
- AGDLPモデルに基づいてグループ経由で権限を付与している
- ユーザーアカウントにフォルダの権限を直接付与していない
- 共有アクセス許可はEveryoneフルコントロール・NTFSで詳細制御している
- 最小権限の原則に基づいて必要な操作のみを許可している
棚卸し・運用
- 年1回以上の権限棚卸しをスケジュール化している
- 退職・異動時にアクセス権を削除する手順が定まっている
- PowerShellまたはツールで権限を定期的に一覧化している
- Everyoneへの変更・フルコントロール権限がないか確認している
- 継承を無効にしたフォルダを把握している
まとめ——権限設計は「最初に正しく作る」が原則
ファイルサーバの権限はいったんブラックボックスになると、整理するコストが膨大になります。「最初に正しく作る」ことと「定期的に棚卸しする仕組みを作る」ことが、長期的な管理コストを最小化する唯一の方法です。
AGDLPモデルでグループ経由の権限管理を実現し・継承を活用してフォルダ構造をシンプルに保ち・PowerShellで定期的に棚卸しする——この3つを実践するだけで、ファイルサーバの権限管理は大きく改善できます。
今日確認すべきことは1つです。現在管理しているファイルサーバで、PowerShellのACL取得コマンドを実行して権限の一覧を出力してみてください。Everyoneやユーザーアカウントへの直接付与がないか確認することが最初のステップです。
あわせてご覧ください


コメント