よくある光景:ローカルアカウント運用の苦労
1台や2台のESXiサーバーを管理するだけなら、rootアカウントの使用でも問題ないかもしれません。しかし、システムが拡張し始めると現実は厳しくなります。現在私が運用している環境では12台のESXiホストがありますが、パスワードポリシーの変更や新しいITスタッフが入るたびに、各ホストにログインして手動で操作しなければなりませんでした。これは非常に非効率で時間の無駄な繰り返し作業です。
セキュリティ面においても、複数の人間が一つのrootアカウントを共有することは大きな脆弱性となります。重要な仮想マシン(VM)が誤って削除されるなどのトラブルが発生した際、誰が実行したのかを追跡する術がありません。そのため、ESXiホストをWindows Active Directory (AD) にドメイン参加(Join)させることは必須のタスクと言えます。これにより、ID管理を一本化し、企業の既存のセキュリティポリシーを活用できるようになります。
ESXiとActive Directoryの連携の仕組み
ドメインに参加すると、ESXiはKerberosプロトコルを通じて認証権限をWindowsドメインコントローラー(DC)に委ねます。内部ファイルでパスワードを照合する代わりに、ESXiはログイン情報が有効かどうかをDCに問い合わせるようになります。
これにより、管理プロセスに2つの大きな変化がもたらされます:
- 認証 (Authentication): Web ClientやSSHの両方で、
user@domain形式(例:[email protected])を使用して直接ログインが可能になります。 - 認可・権限付与 (Authorization): グループに基づいた権限設定が可能です。例えば、
SA_Adminsグループには全権限を、App_Devグループには特定の仮想マシンの起動/停止のみを許可するといった運用ができます。
実務経験から言えるのは、DNSとNTPのインフラを適切に準備しておかないと、難解なエラーコードとともに即座に失敗するということです。
実行前に確認すべき3つの要件
すぐに「Join Domain」ボタンを押してはいけません。後のエラー対応で数時間を無駄にしないよう、5分かけて以下のチェックリストを確認してください。
1. 時刻同期 (NTP)
Kerberos認証は時刻のズレに対して非常に厳格です。ESXiとDCの時刻が300秒(5分)以上ズレていると、認証リクエストは拒否されます。両方を同じ信頼できるNTPサーバーに参照させてください。
2. 名前解決 (DNS)
ESXiはドメイン名を通じてドメインコントローラーのIPを知る必要があります。ESXiのDNS設定でDCのIPを指定してください。さらに重要なのは、Windows DNSサーバー側でESXiホストのAレコードとポインタ(PTR)レコードが作成されていることを確認することです。
3. Active Directoryでのグループ作成
個々のユーザーに権限を割り当てるのではなく、ESXi_Full_Adminsのような専用グループを作成しましょう。あとは技術スタッフのアカウントをそのグループに追加するだけで完了です。
実践:ESXiのドメイン参加手順
方法1:Webインターフェース(ESXi Host Client)での操作
視覚的な操作を好む方に最も一般的な選択肢です。
root権限でESXi Web UIにアクセスします。- Manage(管理)メニューで、Security & users(セキュリティとユーザー)タブを選択し、Authentication(認証)項目に移動します。
- Join domain(ドメインに参加)をクリックします。
- ドメインのFQDN(例:
itfromzero.vn)と、ドメイン参加権限を持つアカウント情報を入力します。 - 30秒ほど待ちます。ステータスが「Leave domain(ドメインを脱退)」に変われば、半分成功したと言えます。
方法2:プロ向け CLI(コマンドライン)の使用
スクリプトで自動化したい場合は、esxcliを使用します。基本的なコマンドは以下の通りです:
# 正しいホスト名とFQDNを設定する
esxcli system hostname set --host=esxi-01 --fqdn=esxi-01.itfromzero.vn
# DNSサーバーを追加する
esxcli network ip dns server add --server=192.168.1.10
# ドメイン参加コマンド
esxcli system auth-domain join --domain=itfromzero.vn --user=administrator --password='ここにパスワードを入力'
注意:実行後はコマンド履歴を削除するか、周囲に人がいる場合は画面に表示されるパスワードに注意してください。
権限設定:運用のための最終ステップ
ドメイン参加したのにログインできないという質問をよく受けますが、それはESXi側でADユーザーに権限を付与していないからです。
- Web UIで、Actions(アクション) -> Permissions(権限)に進みます。
- Add user(ユーザーの追加)を選択します。
- ADグループ名を
DOMAIN\Group_Nameの形式で正確に入力します(例:ITFROMZERO\ESXi_Full_Admins)。 - ロールにAdministrator(管理者)を選択し、ホスト上の全リソースに権限が適用されるよう、Propagate to all children(すべての子に伝達)に必ずチェックを入れてください。
ここで、シークレットブラウザを使用してテストを行います。個人のADアカウントでログインし、スムーズにアクセスできれば成功です。これでローカルアカウントの煩雑な管理から解放されました。
よくある「厄介な」エラーの解決策
実際の運用で遭遇しやすい3つのエラーをまとめました:
- ファイアウォールによるポート遮断:ESXiはポート88 (Kerberos)、389 (LDAP)、445 (SMB) を介してDCと通信する必要があります。間にファイアウォールがある場合は、これらのポートが開放されていることを確認してください。
- lwsmdサービスのフリーズ:Likewise Service Manager (
lwsmd) はドメイン接続の核心部分です。接続が切れた場合は、SSHでログインし、コマンド/etc/init.d/lwsmd restartで再起動してください。 - Clock Skewエラー:前述の時刻同期の問題です。わずか6分のズレでも、午後の作業がすべて台無しになることがあります。
おわりに
ESXiをActive Directoryにドメイン参加させることは、単なる利便性の向上ではなく、プロフェッショナルな運用の標準です。これにより、システムの透明性と安全性が高まり、監査時の対応も非常に容易になります。3台以上のホストを運用している場合は、ぜひ今すぐ導入して、運用負荷を軽減させましょう。

