web-dev-qa-db-ja.com

Windowsサービスをドメインアカウントとして実行するために必要な最小限の権限

そのユーザーとしてWindowsサービスを実行するためにドメインユーザーアカウントに付与する必要がある最低限の権利を誰が知っていますか?

簡単にするために、サービスは「アプリケーション」イベントログの開始、停止、書き込み以外に何もしないと仮定します。つまり、ネットワークアクセス、カスタムイベントログなどはありません。

ビルトインのServiceアカウントとNetworkServiceアカウントを使用できることは知っていますが、ネットワークポリシーが適切であるため、これらのアカウントを使用できない可能性があります。

38
Paul Nearney

二通り:

  1. サービスのプロパティを編集し、ログオンユーザーを設定します。適切な権利が自動的に割り当てられます。

  2. 手動で設定します。[管理ツール]-> [ローカルセキュリティポリシー]-> [ローカルポリシー]-> [ユーザー権利の割り当て]に移動します。 「サービスとしてログオン」項目を編集し、そこにドメインユーザーを追加します。

73
spoulson

アカウントに「サービスとしてログオン」権限が必要であることは知っています。それ以外は、よくわかりません。サービスとしてログオンするためのクイックリファレンスを見つけることができます here 、および特定の特権 here の多くの情報があります。

3

「BypassTraverseChecking」は、間にあるディレクトリへのすべての中間アクセス特権、つまりルートレベルに向かうその上のすべてのディレクトリがない場合でも、任意のディープレベルのサブディレクトリに直接アクセスできることを意味します。

2
ths

リンクをありがとう、クリス。 「BypassTraverseChecking」のような特権の特定の効果についてよく疑問に思っていましたが、それらを調べることに悩むことはありませんでした。

サービスを実行する際に興味深い問題があり、管理者が最初のインストールを行った後、サービスにアクセスできないことがわかりました。ファイルの問題が見つかるまで、Logon As A Serviceに加えて何かが必要だと考えていました。

  1. 単純なファイル共有を無効にしました。
  2. サービスアカウントを一時的に管理者にしました。
  3. サービスアカウントを使用して、ファイルの所有権を取得しました。
  4. 管理者グループからサービスアカウントを削除します。
  5. リブート。

所有権の取得中、親ディレクトリからのアクセス許可の継承を無効にし、アクセス許可を再帰的にツリーの下に適用する必要がありました。

ただし、サービスアカウントを一時的に管理者にすることを避けるために、「give所有権」オプションを見つけることができませんでした。

とにかく、他の誰かが実際にファイルシステムの権利でしかなかったときにセキュリティポリシーの問題を探していたのと同じ道を進んでいる場合に、これを投稿すると思いました。

1
T.Rob