VCF 9.1.1 - Password Managment


Introduction

My favorite topic after certificates is, of course, passwords, and since VCF has always had a habit of forcing you to change your password – and since VCF 9.x does things a bit differently – it’s time to take a closer look at this topic. A little spoiler: it won’t be easy. But all in good time – I’m trying to shed a little light on the password jungle here and show what works, what doesn’t, and what you can do.

Not all passwords are the same.

First, we need to determine which password or type of account we’re talking about. There are, in fact, three different types of accounts.

Account Type Description Notes
Local (OS) accounts Accounts provisioned directly in the operating system of a virtual appliance, primarily used for secure shell (SSH) access. Examples: root, vcf
Application accounts Accounts provisioned for interactive logins with access to the application’s UI and API. Some VCF components also use application accounts, such as administrator@vsphere.local, for inter-component communication.
Service accounts System-managed accounts provisioned for inter-component communication. Passwords are managed through automated mechanisms. Examples: svc-vcf-*, svc-sddcm-*

By the way, this is an official classification by Broadcom. And since we have a hodgepodge of very different products here, all of which were marketed under the VCF umbrella, we naturally don’t have a standardized way to manage the passwords. But to be fair, it has improved with VCF 9.1. Now that we’ve clarified that, we can take a look at the tools VCF provides for reading or changing passwords.

Password Management in SDDC Manager

Yes, the SDDC is still an important component in VCF 9.1.x – they say it’s dead, but it’s still going strong. The SDDC offers us various options. Maybe I’ll start with the simple UI options. Three types of actions are supported: rotate, remediate, and update. Remediate and update are often confused. An update sets a new password; this requires both the old and the new password. Remediate changes the password in the database if a password has been changed outside the SDDC workflow or if a password is marked as “disconnected” for any reason. Manual password rotation via the UI and via the API is supported for the following accounts:

Password Rotation via SDDC Manager UI

VCF Component Managed Accounts
ESXi Hosts root
vCenter Server root
vCenter Single Sign-On (SSO) administrator@vsphere.local
NSX Manager root, admin, audit
NSX Edge Nodes root, admin, audit
SDDC Manager backup

Scheduled Password Rotation via SDDC Manager UI

In addition to manually controlled password rotation, the SDDC also supports automated password rotation.

VCF Component Managed Accounts Supported Rotation Intervals
vCenter Server root 30, 60, or 90 days
NSX Manager root, admin, audit 30, 60, or 90 days
NSX Edge Nodes root, admin, audit 30, 60, or 90 days
SDDC Manager backup 30, 60, or 90 days

Note: Custom intervals are also possible, but not through the UI.

Additional Service Accounts Exposed via SDDC Manager API

In addition to the passwords that can be managed in the UI, there are other service passwords that can only be rotated or updated via the API.

VCF Component Managed Accounts Automatic Rotation Policy
ESXi Hosts svc-vcf-* Not exposed in API response
vCenter Server svc-sddcm-*@vsphere.local Every 30 days
NSX Manager svc-sddcm-* Every 30 days

Just for testing purposes, I’ll show an example of a rotate operation via the API here. Since I’m lazy, I used the graphical tools in the SDDC Manager. To perform the rotate, you need a CredentialsUpdateSpec, which must be included as a JSON body. The API endpoint is PATCH /v1/credentials. An example spec would look like this:

{
  "operationType": "ROTATE",
  "elements": [
    {
      "resourceName": "esx01.lab.sdn-warrior.cloud",
      "resourceType": "ESXI",
      "credentials": [
        {
          "credentialType": "SSH",
          "accountType": "SERVICE",
          "username": "svc-vcf-esx01"
        }
      ]
    }
  ]
}

Using the API endpoint GET /v1/ credentials/d0ccbc71-180c-49af-9e42-816d6bd50547, I check the account’s last modified date, and as you can see in the screenshot, the account was modified on November 3 (that’s the day I started writing this article – to be honest, I don’t know yet if it’ll be published on that day either. You’ll see that for yourselves then; otherwise, you’ll just have to take my word for it that the account changed its password). Of course, you can also use the same method to update and reset a password. I’ve provided the specifications for a root account here.

Update

{
  "operationType": "UPDATE",
  "elements": [
    {
      "resourceName": "esx01.lab.sdn-warrior.cloud",
      "resourceType": "ESXI",
      "credentials": [
        {
          "credentialType": "SSH",
          "accountType": "USER",
          "username": "root",
          "password": "<NEW_ROOT_PASSWORD>"
        }
      ]
    }
  ]
}

Remediate

{
  "operationType": "REMEDIATE",
  "elements": [
    {
      "resourceName": "esx01.lab.sdn-warrior.cloud",
      "resourceType": "ESXI",
      "credentials": [
        {
          "credentialType": "SSH",
          "accountType": "USER",
          "username": "root",
          "password": "<CURRENT_WORKING_ESXI_ROOT_PASSWORD>"
        }
      ]
    }
  ]
}

SDDC local users

The local SDDC users vcf, root, and backup can be modified via the separate API endpoint PATCH /v1/sddc-manager/local-os-user-accounts , provided they have not yet expired. Of course, we need a customized spec here, and only updates are supported.

{
  "username": "root",
  "oldPassword": "<CURRENT_ROOT_PASSWORD>",
  "newPassword": "<NEW_ROOT_PASSWORD>"
}

If you missed the deadline and your local root or vcf user account has already expired, here are the official recovery instructions via the VM console. https://knowledge.broadcom.com/external/article/323984/how-to-reset-sddc-manager-vcf-and-root-u.html

Retrieve a password using SDDC Manager

This topic is certainly not new to you – for all accounts that I can manage via the SDDC Manager, I can, of course, also retrieve the password. This can be done either via the API endpoint GET /v1/credentials/ or via the lookup_passwords function on the SDDC Manager (via ssh) itself, provided you haven’t locked out the VCF user.

What can VCF Operations do for me?

Well, at first glance, to be honest, not much. But on closer look, it’s a little more than I’d thought. In principle, VCF Operations can unfortunately only update passwords. No remediation, no rotation – which I personally find quite unfortunate. But Operations can, for example, update the root or VCF account of the SDDC Manager. So this might save you some API work, provided you still have the old password. In addition, for some service accounts, the password can be rotated via the integration if system-managed accounts are used. This is the default for greenfield deployments, but is generally not the case for brownfield deployments and should be changed.

However, when changing a password via Operations, the password policy is automatically enforced and verified. Operations itself does not store any passwords, and as far as I know, there is no way in version 9.1.1 – not even via the internal API – to have Operations display a password. If you want to automate password management, you’ll have no choice but to use an external secret vault where passwords are stored so that you can change them programmatically via the API. In version 9.1, CyberArk is directly supported via plugin integration in Operations, but since I don’t have CyberArk in my lab, I haven’t been able to test this yet.

Password Policys

VCF 9.1 introduces another feature: password policies. This feature allows a password policy to be applied either fleet-wide or separately across VCF instances and VCF Management (fleet components). The feature can be found under Manage -> Fleet Management -> Passwords -> Password Policy in VCF Operations. You can configure the minimum password length, character limits, account lockout parameters, and password expiration. By the way, this is a very convenient way to avoid having to constantly deal with expired passwords in the lab, especially when it’s not always turned on.

Full Account List for VCF 9.1.x

It’s fun — not!

VCF Component Account Description Managed by
ESX root Local OS account; OS-level access; default expiry: Never; password generated during deployment VCF Operations UI/API: Update; SDDC Manager UI/API: Update, Rotate, Remediate, Password Lookup
vCenter root Local OS account; OS-level and VAMI access; default expiry: 90 days; password generated during deployment VCF Operations UI/API: Update; SDDC Manager UI/API: Update, Rotate, Remediate, Password Lookup, Scheduled Rotation
vCenter administrator@vsphere.local vCenter SSO account; application and API access; default expiry: Never; password generated during deployment; password policy not enforced by default Manual rotation requires an additional VCF Admin account
NSX Global Manager root Local OS account; OS-level access; default expiry: 90 days; password generated during deployment NSX Global Manager UI/API: Manual
NSX Global Manager admin Local appliance account; OS, API, and application access; default expiry: 90 days; password generated during deployment NSX Global Manager UI/API: Manual
NSX Global Manager audit Local appliance account; OS, API, and application access; default expiry: 90 days; password generated during deployment NSX Global Manager UI/API: Manual
NSX Local Manager root Local OS account; OS-level access; default expiry: 90 days; password generated during deployment VCF Operations UI/API: Update; SDDC Manager UI/API: Update, Rotate, Remediate, Password Lookup, Scheduled Rotation
NSX Local Manager admin Local application account; OS, API, and application access; default expiry: 90 days; password generated during deployment VCF Operations UI/API: Update; SDDC Manager UI/API: Update, Rotate, Remediate, Password Lookup, Scheduled Rotation
NSX Local Manager audit Local application account; read-only application access; default expiry: 90 days; password generated during deployment VCF Operations UI/API: Update; SDDC Manager UI/API: Update, Rotate, Remediate, Password Lookup, Scheduled Rotation
NSX Edge root Local OS account; OS-level access; default expiry: 90 days VCF Operations UI/API: Update; SDDC Manager UI/API: Update, Rotate, Remediate, Password Lookup, Scheduled Rotation
NSX Edge admin Local appliance account; OS, API, and application access; default expiry: 90 days VCF Operations UI/API: Update; SDDC Manager UI/API: Update, Rotate, Remediate, Password Lookup, Scheduled Rotation
NSX Edge audit Local appliance account; read-only application access; default expiry: 90 days VCF Operations UI/API: Update; SDDC Manager UI/API: Update, Rotate, Remediate, Password Lookup, Scheduled Rotation
NSX Virtual Network Appliance root Local OS account; OS-level access; default expiry: 90 days VCF Operations UI/API: Update; SDDC Manager UI/API: Update, Rotate, Remediate, Password Lookup, Scheduled Rotation
NSX Virtual Network Appliance admin Local appliance account; OS, API, and application access; default expiry: 90 days VCF Operations UI/API: Update; SDDC Manager UI/API: Update, Rotate, Remediate, Password Lookup, Scheduled Rotation
NSX Virtual Network Appliance audit Local appliance account; OS-level and read-only application access; default expiry: 90 days VCF Operations UI/API: Update; SDDC Manager UI/API: Update, Rotate, Remediate, Password Lookup, Scheduled Rotation
SDDC Manager vcf Local OS account; OS-level access; default expiry: 365 days; password generated during deployment VCF 9.1: Manual via OS; VCF 9.1.1: VCF Operations UI/API
SDDC Manager root Local OS account; OS-level access; default expiry: 365 days; password generated during deployment VCF 9.1: Manual via OS; VCF 9.1.1: VCF Operations UI/API
SDDC Manager backup Local OS account; OS-level access; default expiry: 365 days; password generated during deployment VCF Operations UI/API: Update; SDDC Manager UI/API: Update, Rotate, Remediate, Password Lookup, Scheduled Rotation
SDDC Manager admin@local Application account; API access; default expiry: Never; password generated during deployment VCF 9.1: Manual via SDDC Manager API; VCF 9.1.1: VCF Operations UI/API
VCF Operations root Local OS account; OS-level access; default expiry: 90 days; password generated during deployment VCF Operations UI/API
VCF Operations admin Application account; API and application access; default expiry: Never; password generated during deployment VCF Operations UI/API
Cloud Proxy root Local OS account; OS-level access; default expiry: 90 days; password generated during deployment VCF Operations UI/API
VCF Operations Orchestrator (Standalone) root Local OS account; OS-level access; default expiry: Never Manual via OS
VCF Operations Orchestrator (Standalone) admin Local appliance account; API and application access; default expiry: Never Manual via OS
VCF Operations for Networks root Local OS account; OS-level access; default expiry: Never Manual via OS
VCF Operations for Networks admin@local Application account; API and application access; default expiry: Never VCF Operations UI/API
VCF Operations for Networks support Local OS account; OS-level access; default expiry: Never VCF Operations UI/API
VCF Operations for Networks consoleuser Local appliance account; CLI-level access; default expiry: Never VCF Operations UI/API
VCF Operations for Networks Collector support Local OS account; OS-level access; default expiry: Never VCF 9.1: Manual via OS; VCF 9.1.1: VCF Operations UI/API
VCF Operations for Networks Collector consoleuser Local appliance account; CLI-level access; default expiry: Never VCF 9.1: Manual via OS; VCF 9.1.1: VCF Operations UI/API
VCF Operations HCX root Local OS account; OS-level access; default expiry: Never VCF Operations UI/API; HCX Management Pack required
VCF Operations HCX admin Local appliance account; API and application access; default expiry: Never HCX Management Pack required for VCF Operations password management
VCF Management Services admin@vsp.local Local appliance account; OS and application access; default expiry: 365 days; password identical to vmware-system-user Manual via VCF Management Services
VCF Management Services vmware-system-user Local appliance account; OS and application access; default expiry: 365 days; password generated during deployment Manual via VCF Management Services
VCF Automation admin System organization administrator; default expiry: Never; password generated during deployment VCF Operations UI/API
VCF Automation admin@vsp.local Local appliance account; OS and application access; default expiry: 365 days; password generated during deployment VCF Operations UI/API
VCF Automation vmware-system-user Local appliance account; OS-level access; default expiry: 365 days; password generated during deployment VCF Operations UI/API
vSphere Supervisor vmware-system-user Local appliance account; OS-level access; stored in a control plane namespace secret; default expiry: Never Manual via Kubernetes Secrets
Protection and Recovery root Local OS account; OS-level access; default expiry: Never Manual via OS
Protection and Recovery admin Local appliance account; API and application access; default expiry: Never Manual via VAMI
VMware Avi Load Balancer admin Local appliance account; API and application access; default expiry: Never VCF Operations UI/API
VMware Avi Load Balancer vcfops-admin Local application account; API and application access; default expiry: Never; used for VCF Operations integration VCF Operations UI/API

Note: The following services are included under VCF Management Services:

  • VCF Services Runtime
  • Fleet Lifecycle
  • SDDC Lifecycle
  • Salt RAAS
  • Salt Master
  • Telemetry
  • Log Management
  • Identity Broker
  • License Server

VCF Operations Orchestrator

The root and admin accounts listed for VCF Operations Orchestrator apply only to standalone instances manually deployed using the appliance OVA. In a default VCF deployment, Orchestrator runs as an embedded component of VCF Automation. These standalone accounts do not apply to embedded deployments.

VCF Operations HCX

Password management for HCX local accounts through VCF Operations requires the VCF Operations Management Pack for HCX.

Service Accounts

VCF Component Account Description Managed by
ESX svc-vcf-ESX-hostname SDDC Manager → ESX host SDDC Manager UI/API
SDDC Manager svc-sddc-manager-hostname-hcx-hostname-uuid VCF Operations HCX → SDDC Manager; default expiry: Never System managed
SDDC Manager svc-vcf-sddc-lcm-SDDC_MANAGER-uuid SDDC Lifecycle → SDDC Manager; Administrator role; default auto-rotation: 30 days; default expiry: 90 days; initially named svc-sddclcm-sddcm-uuid, renamed after first auto-rotation System managed
vCenter svc-sddc-manager-hostname-vcenter-hostname@vsphere.local SDDC Manager → vCenter; Administrator role; default auto-rotation: 30 days; default expiry: 90 days System managed; SDDC Manager UI/API; scheduled rotation supported
vCenter svc-nsx-manager-hostname-vcenter-hostname@vsphere.local NSX Manager → vCenter; Administrator role; default auto-rotation: 30 days; default expiry: 90 days System managed
vCenter svc-fleet-management-hostname-vcenter-hostname@vsphere.local VCF Operations Fleet Management → vCenter; Administrator role; default auto-rotation: 30 days System managed
vCenter svc-ops-vc-ops-cluster-uid@vsphere.local VCF Operations Fleet Management → vCenter; Administrator role; default auto-rotation: 30 days System managed
vCenter svc-vcfa_uid@vsphere.local VCF Operations → vCenter; Administrator role; default auto-rotation: 30 days System managed
vCenter svc-vcfsp-vc-uid@vsphere.local VCF Services Platform → vCenter; VCF Services Runtime role; default auto-rotation: 30 days System managed
vCenter svc-vcfsp-vc-admin-uid@vsphere.loca VCF Services Platform → vCenter; VCF Services Platform Admin role; default auto-rotation: 30 days System managed
vCenter svc-hcx-hostname-vc-hostname-hcx-uuid VCF Operations HCX → vCenter; Administrator role System managed
NSX Local Manager svc-sddc-manager-hostname-nsx-vip-hostname-uid SDDC Manager → NSX; Enterprise Admin role; default auto-rotation: 30 days; default expiry: 90 days System managed
NSX Local Manager svc-ops-nsx-uid VCF Operations → NSX; Enterprise Admin role System managed
NSX Local Manager svc-ni-nsx-uid VCF Operations for Networks → NSX System managed
NSX Local Manager svc-vcfa_uid VCF Automation → NSX System managed
VCF Operations svc-salt-ops-uid Salt RaaS → VCF Operations System managed
VCF Operations svc-ops-li-ops-uid Log Management → VCF Operations System managed
VCF Operations svc-ops-ni-ops-uid VCF Operations for Networks → VCF Operations System managed
Log Management svc-ops-ops-li-uid VCF Operations → Log Management System managed
VCF Operations for Networks svc-ops-ops-ni-uid VCF Operations → VCF Operations for Networks System managed
Salt RaaS svc-ops-salt-uid VCF Operations → Salt RaaS System managed

Personal Thoughts

As someone who’s once again dealing more frequently with operational issues, I have to say that I don’t think the password management solution is well-designed. It’s still very clear here that VCF 9 needs to be more tightly integrated. The fact that there’s no way to perform a password rotation via the Operations UI or API is also very frustrating.

On the other hand, I really like the password policy, although I’d like to see a bit more granularity so that the policy could perhaps be broken down to the cluster level. It’s clear that in 2026, passwords are still no fun, and the flood of accounts within VCF doesn’t make things any easier.

If anyone knows a way to retrieve the passwords through Operations, please send me a message. Cheers!

Enjoyed my work? [ BUY ME A COFFEE ]
End graphic