IIS 7 以降のアプリケーションプールのビルトインアカウントにアクセス権を付与する
2014/03/14 コメントを残す
聞かれたので、メモ替わりに。
アプリケーションプールの ID ですが、IIS 7.0 以降は既定で ApplicationPoolIdentity になっています。
使用する Web アプリによっては(例えば、画像管理とか)ファイルをブラウザから IIS にアップロードすることもあります。
その際、書き込み権限がなければ、当然ですが、アクセス違反が発生して、書き込むことができません。
こういうときには、どのアカウントがアクセスしてきたのか監査で調べることができます。
この設定で一度、再現させて、イベントログ – セキュリティ を見てみると…ありました!
今回の現象では、アカウント名 「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\アカウント名 ですが、アカウント名を途中まで入れて名前の確認をクリックしても
一覧表示には表示されません。すべて入力してから、名前の確認をクリックする必要があります。