VMWare vSphere でパスワードの有効期限設定を管理する方法

vSphere または vCenter を使っていると、「パスワードの有効期限はあと xx 日です」という通知がしつこく表示され始めることがあります。正直言って、特に数ヶ月ごとにパスワードを変更したくない場合や、処理するアカウントが多数ある場合は、かなり煩わしいものです。このガイドでは、これらのメッセージの背後にあるもの(微調整可能な設定なのか、調整が必要なポリシーなのか)を詳しく説明し、どこを確認すればいいのか、何をすればいいのかを正確に把握できるようにします。多くの場合、有効期限をオフにするか期間を延長するだけで済むため、手間が大幅に省けます。設定をいろいろと調整していくうちに、これらのプロンプトが表示される回数が減り、パスワード ポリシーをより細かく制御できるようになります。そもそもなぜこれらのポリシーが存在するのかはわかりませんが、アカウントを切り替えたりすべてを再インストールしたりすることなく、ポリシーを管理できるのは確かに満足感があります。

vSphere と vCenter で「パスワードの有効期限が切れます」という通知を修正する方法

方法1: vSphere Clientでパスワードポリシーを調整する

ローカルユーザーへのパスワード有効期限通知を防止したい場合、これが最も簡単な方法です。vSphere Client は、これらのポリシーをシングルサインオン設定、具体的には「パスワードポリシー」タブに保存します。このポリシーはパスワードの変更頻度を制御し、デフォルトは通常 90 日に設定されています。

  • vSphere Web Client にログインし、「管理」「シングル サインオン」「構成」に移動します。(vSphere HTML5 クライアントを使用している場合は、メイン メニューの下にありますが、通常は「管理」からアクセスできます。)
  • 「パスワードポリシー」タブに移動します。ここには、「パスワードの最小文字数」「パスワードの有効期限」などのオプションが表示されます。
  • 「編集」をクリックします。デフォルトの最大有効期間は多くの場合90日間ですが、簡単に変更できます。
  • 最大有効期間を365などの大きな数値に設定するか、パスワードを無期限にしたい場合は0に設定します。
  • 変更を保存します。設定によっては、新しいポリシーが反映されるまでに更新や再ログインが必要になる場合があります。すぐに変更されなくても慌てないでください。

この方法は、vSphere がパスワード変更を強制する頻度を直接調整できるため便利です。セキュリティポリシーでパスワードの有効期間を長く設定している場合や、有効期限に関する暗い通知にうんざりしている場合に最適です。パスワード更新のプロンプトが少なくなることを期待できます。

方法2: SSH経由で特定のユーザーのパスワードを無期限に設定する

グローバルポリシーを変更したくないけれど、より長いアクセス制限が必要なユーザーまたはサービスアカウントがある場合は、この方法があります。少し不便ですが、問題なく動作します。まず、vCSAホストへのSSHアクセスが必要です。SSHが有効になっていない場合は、アプライアンス管理UI(https://your_vcenter_name:5480/ui/access)の「アクセス」タブに移動し、SSHを有効にしてください。

SSH がオンになって接続できるようになったら、VMware が CLI ツールを保存しているディレクトリに移動します。

cd /usr/lib/vmware-vmafd/bin/

次の方法でユーザーが存在するかどうかを確認します:

./dir-cli user find-by-name --account backup_user

アカウントが見つかった場合は、次のコマンドを実行してそのユーザーのパスワードを無期限にすることができます。

./dir-cli user modify --account backup_user --password-never-expires

実行すると、 backup_userのパスワードが無期限に設定されていることを確認するメッセージが表示されます。VMware がこの CLI をなぜ少し分かりにくくしたのかは分かりませんが、特別なアカウントには便利です。設定によっては、効果を確認するためにサービスの再起動や再ログインが必要になる場合がありますが、通常はすぐに反映されます。

方法3: ルートパスワードの有効期限を確認して変更する

これは、vCenterをアプライアンスとしてインストールしていて、rootアカウントのパスワードが予期せず失効してしまうのではないかと心配な場合に適用されます。rootパスワードの有効期限はバージョンによって設定されており、vSphere 6.5では365日、vSphere 6.7では90日です。この有効期限を延長したり、無期限にしたい場合は、以下の手順で設定できます。

  • vCSAコンソールに直接またはSSH経由でアクセスします。次のコマンドを使用します。
chage -l root
  • これにより、現在の有効期限情報が表示されます。「パスワードの有効期限:日付」などの詳細情報が表示されるはずです。
  • パスワードを無期限に設定するには、次のコマンドを実行します。
  • sudo chage -E -1 root
  • または、次のように最大日数を調整します。
  • sudo chage -M 0 root

    ただし、vCSAをアップグレードしたりパッチを適用したりすると、これらの有効期限ポリシーが元に戻ったり、エラーが発生したりする可能性があることにご注意ください。インターフェースが直接フラグを立てない場合もありますが、アップグレードやパッチ適用後すぐに有効期限の通知が再び表示される可能性があります。セキュリティポリシーで許可されている場合は、一度設定して忘れてしまうのが最善です。

    方法4: パスワード有効期限通知のタイミングを調整する

    vCenterのデフォルト設定では、パスワードの有効期限が切れる約30日前にユーザーに警告が表示されますが、必要に応じて変更できます。これは、ドメインポリシーやセキュリティチームが早期警告を希望している場合、あるいは逆に警告を一切表示したくない場合に特に便利です。

    • vCSA のターミナルまたは SSH セッションを開き、設定ファイルを編集します。
    sudo vi /etc/vmware/vsphere-ui/webclient.properties
  • sso.pending.password.expiration.notification.daysパラメータを探します。値を変更します。例えば、1か月ではなく1週間前に通知したい場合は、7日に設定します。
  • ファイルを保存し、vSphere Web Client サービスを再起動します。
  • sudo service-control --stop vsphere-uisudo service-control --start vsphere-ui

    古いFlexベースのクライアントをまだ使用している場合、ファイルは/etc/vmware/vsphere-client/webclient.propertiesにあります。手順は同じで、編集、保存、サービスの再起動です。簡単ですが、編集前に必ずバックアップしてください。

    それでも問題が解決しない場合、あるいは煩わしい有効期限の警告を消したいだけの場合は、ポリシーを確認し、有効期限の設定が希望どおりになっていることを確認してください。多くの場合、これらの設定はローカルポリシー、ドメインポリシー、vSphere設定が混在しており、管理に支障をきたしたり、面倒な作業になったりする可能性があります。

    これで有効期限切れの通知が減り、パスワード管理の煩わしさが少しでも軽減されることを願っています。もちろん、VMware は時として必要以上に管理を難しくせざるを得ないこともあります。