IIS 7 以降のアプリケーションプールのビルトインアカウントにアクセス権を付与する

聞かれたので、メモ替わりに。

AppPool

アプリケーションプールの ID ですが、IIS 7.0 以降は既定で ApplicationPoolIdentity になっています。
使用する Web アプリによっては(例えば、画像管理とか)ファイルをブラウザから IIS にアップロードすることもあります。
その際、書き込み権限がなければ、当然ですが、アクセス違反が発生して、書き込むことができません。
こういうときには、どのアカウントがアクセスしてきたのか監査で調べることができます。

監査設定

監査ポリシー設定

この設定で一度、再現させて、イベントログ – セキュリティ を見てみると…ありました!

AppPool_Err

今回の現象では、アカウント名 「Classic .NET AppPool」 が WriteData でアクセスしたが、権限が無いために
エラーになったことがわかります。

IIS のアプリケーションプールの ID についてですが、ApplicationPoolIdentity のアカウントは

IIS AppPool\アカウント名

になります。

今回は、IIS AppPool\Classic .NET AppPool に対して書き込み権限を付与してあげれば
期待した動作(書き込みできる)になるわけです。

アクセス権設定ユーザー

アプリケーションプールが Classic .NET AppPool であれば、IIS AppPool\Classic .NET AppPool
DefaultAppPool であれば、IIS AppPool\DefaultAppPool になります。
なお、この IIS AppPool\アカウント名 ですが、アカウント名を途中まで入れて名前の確認をクリックしても
一覧表示には表示されません。すべて入力してから、名前の確認をクリックする必要があります。