NTFSアクセス許可とダイナミックアクセス制御

Windows Server 2012のActive Directoryで新しく実装されたダイナミックアクセス制御を利用する際、NTFSアクセス許可や共有フォルダーのアクセス許可などが関連してくると、結局何が適用されるの?という問題があります。そこで200回目の投稿となる今回は、最終的に適用されるアクセス許可について注目してみたいと思います。

おさらい

Windowsのファイルサーバーに保存されているファイル共有に、クライアントコンピューターからネットワークアクセスした場合、Windowsの機能によって、どのようなアクセス制御ができるか確認しておきましょう。

1.共有フォルダーのアクセス許可 (共有フォルダーのプロパティ [共有]から設定)
2.共有フォルダーまたはフォルダー内のファイルに対するNTFSアクセス許可(ファイル/フォルダーのプロパティ [セキュリティ]から設定)
3.ダイナミックアクセス制御のユーザー属性に基づくアクセス制御 (Central Access Ruleから設定)
4.ダイナミックアクセス制御のコンピューター属性に基づくアクセス制御 (Central Access Ruleから設定)

以上の4種類があります。

アクセス制御のプロセス

まず、4種類のアクセス制御方法のうち、ファイルサーバーで最初に確認するのは1.のアクセス許可です。
1.でアクセス許可のあるユーザーでアクセスしていることが確認できた場合、
続いて、1.のアクセス許可の結果をもとに、続いて2.と3.と4.のアクセス許可を比較し、
すべてに共通して設定されているアクセス許可を最終的なアクセス許可とします

たとえば、NTFSアクセス許可で「フルコントロール」、ダイナミックアクセス制御のユーザー属性に基づくアクセス許可で「変更」のアクセス許可が割り当てられている場合、両者に共通して割り当てられているアクセス許可は「変更」になりますので、
変更のアクセス許可が最終的なアクセス許可として割り当てられます。(下図参照)

car10

現実的なダイナミックアクセス制御の設定

これまでのことから、NTFSアクセス許可とダイナミックアクセス制御の関係は、共有フォルダーとNTFSアクセス許可の関係と同じだということがわかります。
共有フォルダーとNTFSアクセス許可のアクセス許可設定をするときは、「共有フォルダーのアクセス許可にEveryone-フルコントロールを設定しておきましょう。そうすれば、NTFSアクセス許可で設定したアクセス許可が必ず最終的なアクセス許可になりますよ」ということをお客様によくアドバイスしていました。

しかし、このやり方はダイナミックアクセス制御とNTFSアクセス許可の組み合わせでは少々危険だと思うのです。
なぜなら、NTFSアクセス許可はすべてのユーザーに必ず適用されますが、ダイナミックアクセス制御は無視されてしまうユーザーがいるかもしれないからです。

少しわかりにくいので、例を挙げましょう。

ユーザーA、ユーザーBの2人のユーザーがいたとしましょう。ユーザーAは役職に「部長」が割り当てられているとします。
このとき、共有フォルダーとNTFSアクセス許可で次のようなアクセス許可が割り当てられていたとします。

・共有フォルダーのアクセス許可 Everyone-フルコントロール
・NTFSアクセス許可 ユーザーA-読み取り

このとき、ユーザーAとユーザーBに割り当てられるアクセス許可はなんでしょうか?
そう、ユーザーAは「読み取り」、ユーザーBは「アクセスできない」です。

では、NTFSアクセス許可とダイナミックアクセス制御で次のようなアクセス許可が割り当てられている場合はどうでしょうか?

・NTFSアクセス許可 Everyone-フルコントロール
・ダイナミックアクセス制御 「役職=部長」-変更

このとき、ユーザーAとユーザーBに割り当てられるアクセス許可はなんでしょうか?
ユーザーAは「変更」ですが、ユーザーBは「フルコントロール」になってしまうのです。
(下図は、属性を持たないAdministratorユーザーで同条件におけるアクセス許可を調べた様子)

car11

話が長くなりましたが、ダイナミックアクセス制御の基準となる、ユーザー属性やコンピューター属性がそもそも割り当てられていない場合、ダイナミックアクセス制御自体、無視されてしまうのです。
そのため、NTFSアクセス許可で安易に「Everyone-フルコントロール」なんて設定したら、属性を持たないユーザー/コンピューターはすべて「フルコントロール」になってしまいます。

以上のことに注意して、ダイナミックアクセス制御を活用したいものです。