Active Directoryでマネージドサービスアカウント(MSA・gMSA)を活用する方法
マネージドサービスアカウント(MSA:Managed Service Account)は、Active Directoryの特別なアカウントタイプで、サービス、アプリケーション、スケジュールタスクを安全に実行するために使用できます。基本的な仕組みは、これらのアカウントのパスワードがActive Directoryによって完全に管理されるというものです。240文字の複雑なパスワードが自動的に生成され、デフォルトでは30日ごとに自動的に変更されます。認証にはKerberosのみが使用され(NTLMのセキュリティ問題は発生しません)、対話型ログオンは許可されず、パスワードは誰にも知られることなくローカルシステムにも保存されません(mimikatzなどのツールでLSASSプロセスからパスワードを抽出することはできません)。このため、サービスや無人ジョブを実行する際に、個別のサービス用ユーザーをADに作成してパスワードを管理する必要がなくなります。
MSAとgMSAの違い
マネージドサービスアカウント(MSA)は、Windows Server 2008 R2で導入されました(オブジェクトタイプ:msDS-ManagedServiceAccount)。主な制限として、このアカウントは1台のサーバーでのみ使用可能であり、クラスターやNLB環境では利用できないという点があります。この制限を解消するため、Windows Server 2012ではグループマネージドサービスアカウント(gMSA)(タイプ:msDS-GroupManagedServiceAccount)が導入されました。gMSAアカウントは、複数のホストで同時に使用できます。
ここでは、Active Directory内のサーバーやワークステーションでサービスやタスクを実行するために、MSAおよびgMSAを使用する方法について解説します。
MSA/gMSAの利用要件
| マネージドサービスアカウント(MSA) | グループマネージドサービスアカウント(gMSA) | |
| ADドメイン・フォレスト機能レベル | Windows Server 2008 R2以降 | Windows Server 2012以降 |
| KDC | Microsoftキー配布サービス(KdsSvc)が有効化されたドメインコントローラー | |
| PowerShell | ADサービスアカウントの作成と管理には、Windows PowerShell用Active Directoryモジュールが必要 | |
| .NET Framework | サーバーに.NET Framework 3.5以降がインストールされている必要がある | |
| 対応OS | Windows 7/Windows Server 2008 R2以降 | Windows Server 2012/Windows 8以降 |
KDSルートキーの作成
MSA/gMSAアカウントを作成する前に、一度だけ実行する操作としてKDSルートキーを作成する必要があります。ドメインコントローラー上で以下のPowerShellコマンドを実行してください(Microsoftキー配布サービスがインストールされ、実行中であることが前提です)。
Add-KdsRootKey –EffectiveImmediately
この場合、キーは作成後、ADレプリケーション完了から10時間後に利用可能になります。
ヒント: テスト環境ですぐにキーを使用したい場合は、以下のコマンドを実行します。Add-KdsRootKey –EffectiveTime ((get-date).addhours(-10))
KDSルートキーが正常に作成されたことを確認します。Get-KdsRootKey
さらに、以下のコマンドでKDSキーをテストできます。
Test-KdsRootKey -KeyId (Get-KdsRootKey).KeyId
Active DirectoryでMSAアカウントを作成する方法
ADに新しいMSAアカウントを作成するには、次のコマンドを使用します。
New-ADServiceAccount -Name msaMunSrv1 –RestrictToSingleComputer
デフォルトでは、MSAとgMSAはCN=Managed Service Accountsコンテナーに作成されますが、Pathパラメーターを使用してOUを変更することもできます。
次に、MSAサービスアカウントを対象のコンピューターにリンクさせます。
$Identity = Get-ADComputer -identity mun-srv01
Add-ADComputerServiceAccount -Identity $identity -ServiceAccount msaMunSrv1
なお、MSAアカウントは1台のADホストでのみ使用できる点に注意してください。
ADUC(Active Directoryユーザーとコンピューター)コンソールを開き、Managed Service Accountsコンテナー(OU)に新しいmsDS-ManagedServiceAccountタイプのアカウントが表示されていることを確認します。
このコンテナーはデフォルトでは非表示になっています。表示するには、スナップインの「表示」メニューから「拡張機能」を有効にしてください。
MSAアカウントの情報は、次のコマンドで取得できます。
Get-ADServiceAccount msaMunSrv1
Active DirectoryでgMSAアカウントを作成する方法
gMSAアカウントを作成する前に、まずドメインセキュリティグループを作成し、そのグループサービスアカウントのパスワードの使用を許可するサーバーを追加します。PowerShellを使うのが最も簡単な方法です。
New-ADGroup grMunSQL1 -path 'OU=Groups,OU=Munich,OU=DE,dc=woshub,DC=com' -GroupScope Global -PassThru –Verbose
Add-AdGroupMember -Identity grMunSQL1 -Members mun-sql01$, mun-sql02$, mun-sql03$
続いて、以下のコマンドでgMSAアカウントを作成します。
New-ADServiceAccount -name gmsaMunSQL1 -DNSHostName gmsaMunSQL1.woshub.com -PrincipalsAllowedToRetrieveManagedPassword grMunSQL1 –verbose
gMSAアカウントも、デフォルトではManaged Service Accounts OUに作成されます。
Windowsへのグループマネージドサービスアカウントのインストール
対象のサーバーやワークステーションでMSA/gMSAサービスアカウントを使用するには、まずActive Directory PowerShellモジュールをインストールします。
Add-WindowsFeature RSAT-AD-PowerShell
サーバーにMSA(gMSA)サービスアカウントをインストールします。
Install-ADServiceAccount -Identity gmsaMunSQL1
サービスアカウントが正しくインストールされているか確認します。
Test-ADServiceAccount gmsaMunSQL1
コマンドがTrueを返せば、設定は正しく完了しています。Falseが返る場合は、MSAアカウントがサーバーにインストールされていないか、そのコンピューターにアカウントを使用する権限がない可能性があります。
WARNING: Test failed for Managed Service Account gmsaMunSQL1. If standalone Managed Service Account, the account is linked to another computer object in the Active Directory. If group Managed Service Account, either this computer does not have permission to use the group MSA or this computer does not support all the Kerberos encryption types required for the gMSA.
標準のRunAsでは、MSAサービスアカウントでサービスやスクリプトが実行できるかを検証できません。代わりにPsExecツールを使用します。
- 管理者としてコマンドプロンプトを開きます。
- 次のコマンドを実行します:
PsExec64.exe -i -u woshub\gmsaMunSQL1$ -p ~ cmd.exeパスワード部分は~に置き換えます。これはパスワードをADから取得することを意味します。 - 開いたcmdウィンドウで
whoamiコマンドを実行し、コンソールがgMSAアカウントで動作していることを確認します。 - スクリプト、プログラム、またはサービスがマネージドサービスアカウントで正しく実行されることを確認します。
あとは、必要なWindowsサービス、タスクスケジューラのタスク、IISアプリケーションプールなどを、MSA/gMSAユーザーとして実行するように設定するだけです。
マネージドサービスアカウントでWindowsサービスを実行する方法
- サービス管理コンソール(
services.msc)を開きます。 - 対象サービスのプロパティを開き、「ログオン」タブに移動します。
- 「このアカウント」を選択し、MSAアカウント名を入力します。アカウント名の末尾に必ず$記号を付けてください(パスワードの入力は不要です)。
- MSAサービスアカウントには、「サービスとしてログオン」権限が自動的に付与されます。
- 変更を保存したら、サービスを再起動します。
gMSAで複雑なサービスを実行する場合は、事前にドキュメントでサポート状況を確認してください。現在、gMSAはSQL Server、IIS、AD LDS、Exchange Serverなどでサポートされています。
マネージドサービスアカウント/gMSAでスケジュールタスクを実行する方法
Windowsタスクスケジューラを設定して、gMSAサービスアカウントでジョブを実行できます。これは非常に便利です。gMSAアカウントのパスワードはスクリプト内に保存されないため、暗号化や保護の必要がなく、パスワードが変更されてもタスクを再設定する必要がないからです。
MSA/gMSAアカウントに権限を付与するには、必要なセキュリティグループに追加するだけで十分です。例えば、ローカルのAdministratorsグループ、Domain Admins、DNS Adminsなどに追加します。
PowerShellを使用して、gMSAアカウントで実行するタスクを設定できます。以下のスクリプトは、毎日午後11時にデータベースバックアップ用のPowerShellスクリプトを実行する新しいスケジュールタスクを作成する例です。
$action = New-ScheduledTaskAction -Execute powershell.exe -Argument "-file C:\PS\Scripts\DBBackup.ps1 -executionpolicy bypass -NoProfile"
$trigger = New-ScheduledTaskTrigger -At 23:00 -Daily
$principal = New-ScheduledTaskPrincipal -UserID woshub\gmsaMunSQL1$ -LogonType Password
Register-ScheduledTask DBBackup –Action $action –Trigger $trigger –Principal $principal
ヒント: スケジュールタスクを実行するには、gMSAアカウントに「バッチジョブとしてログオン」権限を付与する必要があります。
「-LogonType Password」引数は、このgMSAアカウントのパスワードがドメインコントローラーから取得されることを指定しています。
また、taskschd.mscのGUIで目的の設定を持つスケジュールジョブを作成し、その後schtasks.exeツールを使用してマネージドサービスアカウントで実行するように再設定することもできます。
schtasks /Change /TN BackupDB /RU "woshub\gmsaMunSQL1$" /RP ""
-
Outlook・Gmailのメールを別アカウントへ自動転送する方法を徹底解説
多くの方が、シンプルで使いやすいGoogleアカウントとOutlookアカウントを持っています。プライベート用と仕事用など、用途に合わせて複数のアカウントを使い分けている人も少なくないでしょう。しかし、すべてのアカウントに同時にログインしておくことはできず、各メールボックスの確認が手間になったり、重要なメールを見逃してしまうこともあります。そこで便利なのがメールの自動転送機能です。OutlookとGmailを使っていれば、すべてのメッセージをひとつの受信トレイに集約できます。この記事では、OutlookとGmailでメールを自動的に転送する設定方法を、手順を追って詳しく解説します。Outloo
-
Windows 10で職場・学校のアカウントを接続・管理する方法
Windows 10には、個人用デバイスから職場や学校のアカウントに簡単に接続できる機能が搭載されています。従来のWindowsバージョンとは異なり、ユーザーアカウントを切り替えることなく、組織が提供するファイルやリソースをそのまま利用できます。OS自体が、外部アカウントをメインのサインインアドレスにリンクする仕組みを備えているのが特徴です。 アカウント接続の基本手順 まずは「設定」アプリの「アカウント」セクションを開きましょう。なお、Windows 10 Creators Update(クリエーターズアップデート)以降、職場アクセス関連の設定画面の構成が変更されているため、以降の手順はお使