treedown’s Report

システム管理者に巻き起こる様々な事象を読者の貴方へ報告するブログです。会社でも家庭でも"システム"に携わるすべての方の共感を目指しています。

※https化しました。その影響でしばらくリンク切れなどがあるかもしれませんが徐々に修正していきます。 リンク切れなどのお気づきの点がございましたらコメントなどでご指摘いただけますと助かります。

(1/2)Windowsサービスアカウントを学ぶ

Windows Server 2025がリリースされて、2024年11月に一般提供が開始されました。
必要な情報収集をしている上で、サービスアカウントの仕組みが更に進化したようだったので、改めてサービスアカウントの仕組みを学んでいます。その内容をご報告です。

一部を除く全体的にActive Directory環境が前提となります。基本的にスタンドアロン環境は対象としていません。

そもそもサービスアカウントとはなにか

Windows上で動作するサービスというプログラムは、プログラムの実行にサービスアカウントという特殊なユーザアカウントが使われています。

サービス画面(services.msc)から各サービスのプロパティで確認すると、「LOCAL SERVICE」とか「NETWORK SERVICE」というアカウント名が確認できます。

例えばDHCPクライアントサービスでは、

アカウントに「Local Service」が使われています。

DNSクライアントサービスでは、

アカウントに「Network Service」というアカウントが使われていることが画面から確認できます。

タスクマネージャの詳細画面で個別にプロセスを確認すると、

上記のようにサービスで指定されたアカウントでプロセスが起動している様子を確認できます。

これらはサービスを実行してOS上で動作するために使われている「サービスアカウント」と言います。サービスの動作に使われており、通常のユーザアカウントのようにログオン(サインイン)したり、LAN内のサーバアクセスへの認証に使われたり、Microsoftアカウントのような認証に使われることは(明示的に指定しない限り)ありません。

これらはWindows内で動作するサービスの起動やサービス内での処理の実行にだけ使われています。

以前のサービスアカウント

一部のプログラムでは、このサービスアカウントをWindowsを使う人間が自身で指定する必要があるケースがあります。

例えば、過去のSQL Serverのページ(Windows サービス アカウントと権限の構成 - SQL Server | Microsoft Learn

<https://learn.microsoft.com/ja-jp/sql/database-engine/configure-windows/configure-windows-service-accounts-and-permissions?view=sql-server-ver16>

を参照すると、SQL Serverの動作(に必要なサービス)に一部ドメインユーザアカウントとか"仮想アカウント"というサービスアカウントの指定が必要になることが見て取れます。

Windows7やWindows Server 2008以前では、こういったサービスの動作に必要なサービスアカウントは「LOCAL SYSTEM」のような強い権限を持つOS標準のサービスアカウントを指定するか、あるいはActive Directory内に手動で作成したAdministratorsグループのように特権を持つユーザアカウントを手動で作成して割り当てるという選択肢しかありませんでした。
パスワードを定期変更するポリシーを適用していた場合、パスワード変更のプロセスが走るとサービスアカウントが正常利用できなくなり、システム動作に影響を与えるという困った動きをみせます。このため、パスワード無期限、静的なアカウントを作成してサービスアカウントとして利用する、という方法が使われていました。

MSA(Managed Service Account)で進化

MSAはWindows Server 2008 R2から提供された機能で、新しい機能となるサービスアカウントです。Active Directory内で提供されます。よりセキュリティと障害対策に考慮されたサービスアカウントを作成して使用することができます。

※Microsoft Learn:マネージド サービス アカウントによるアセスメントの実行
https://learn.microsoft.com/ja-jp/services-hub/unified/health/kb-running-assessments-with-msas

以前のサービスアカウントと比較したMSAの進化ポイントは、動的なパスワード変更とサービスプリンシパル名(SPN)の自動的な更新といえます。従来サービスアカウントのパスワードは、静的なパスワードを人間が生成して有効期限を無期限に設定し、サービスアカウントとして設定後は触れない、という運用をしてきたのですが、一旦パスワードを知っている管理者が退職や異動などでシステムと関わらなくなっても、サービスアカウントはパスワードを変更しないという運用なのでセキュリティの視点ではあまり好ましくない状況といえました。
MSAを使用することでActive Directory上に生成されたサービスアカウントは、定期的なパスワードの変更を自動化してくれるので、前述のようにパスワードを知っている人間が部外者となったとしても不正利用できる期間を限定することができます。

長くなったので続きます

続きは次回、まだgMSAがまとめ切れていないので持ち越し。