6.4 Bulk Onboarding: Password Upload Utility, Bulk Upload REST API & AccountUploader
Key Takeaways
- The Password Upload utility creates accounts from a prepared CSV and can build the Vault environment as it runs, creating Safes, adding the CPM user as a Safe owner, and sharing the Safe with the PVWA.
- The bulk upload of accounts REST API returns an upload ID that is polled for per-account results, and requires Add accounts, Update account content, and Update account properties authorization in at least one Safe.
- Only platformId and safeName are mandatory for each account object submitted to the bulk upload REST API.
- AccountUploader onboards accounts whose secret is an SSH private key file, is supported on Linux, and ships as part of the PSM for SSH installation package rather than with the CPM or Vault.
- SSH keys already stored in the Vault are not rediscovered, so keys added through the PVWA, the Accounts Feed, or AddAccount will not reappear in the Pending Accounts list.
6.4 Bulk Onboarding: Password Upload Utility, Bulk Upload REST API & AccountUploader
Quick Answer: Discovery finds accounts, but large migrations still need a way to create thousands of account objects from a list an organization already holds. CyberArk offers three bulk paths, and the exam expects you to pick the right one. The legacy Password Upload Utility is a command-line tool that reads a prepared CSV and can build the Safe environment as it goes. The modern bulk upload of accounts REST API posts an
accountsListto the PVWA and returns an upload ID you poll for per-account results.AccountUploaderis a separate Linux utility shipped with the PSM for SSH installation package, and it is the one designed to onboard accounts whose secret is an SSH private key file.
Why Bulk Onboarding Exists Alongside Discovery
Sections 6.1 through 6.3 covered the discovery-driven path: the CPM Scanner sweeps the network, populates Pending Accounts, and onboarding rules or an administrator promote those accounts into production Safes. That path is ideal for accounts nobody has inventoried.
Bulk onboarding solves the opposite problem — the organization already knows the accounts, typically because they are being migrated out of a spreadsheet, a retiring password manager, a CMDB export, or a competitor PAM product. Re-discovering them would be slower and would lose the curated metadata (owner, environment, ticket reference) the existing inventory already carries. Bulk upload also covers targets discovery cannot reach at all, such as network appliances on an isolated management VLAN.
Method 1: The Password Upload Utility
The Password Upload utility works with the Password Vault to create accounts from a passwords list and store them in the Vault, making an initial implementation dramatically faster. It is run from a command line whenever an upload is required, reading a pre-prepared file of passwords and their properties.
Its distinguishing capability is that it creates the required Vault environment when necessary. Rather than failing because a destination Safe does not exist, it will:
- Create new Safes named in the file,
- Add the CPM user as a Safe owner so the new accounts become manageable immediately, and
- Share the Safe with the Password Vault Web Access so the accounts are visible in the PVWA.
The input file is a CSV whose first line is the header describing the columns. A representative header and record look like this:
Password_Name,TemplateSafe,CPMUser,Safe,Folder,Password,DeviceType,PolicyID,UserName,Address,CPMDisabled,ResetImmediately
Operating System-UnixSSH-1.1.1.250-Root,ExclusivePasswordsTemplate,PasswordManager,UnixPasswords,Root,asdf,Operating System,UnixSSH,Root,1.1.1.250,,NO_VALUE
Key columns to recognize on sight:
| Column | Meaning |
|---|---|
Password_Name | The object name the account will carry in the Safe. |
TemplateSafe | An existing Safe whose properties and ownership are copied when a new Safe must be created. |
CPMUser | The CPM user (for example PasswordManager) added as Safe owner so rotation can begin. |
Safe / Folder | Destination Safe and folder for the object. |
DeviceType / PolicyID | The device type and platform (for example Operating System / UnixSSH) that bind the account to its rotation policy. |
UserName / Address | The mandatory account properties identifying the target identity and host. |
CPMDisabled | Set to suspend automatic management for the uploaded object. |
ResetImmediately | Forces an immediate change after upload instead of waiting for the expiration period. |
The literal token NO_VALUE is used to explicitly blank a column rather than inherit a default — a detail that trips up candidates who assume an empty cell and NO_VALUE are equivalent.
Method 2: The Bulk Upload of Accounts REST API
Modern deployments prefer the REST path because it is scriptable, idempotent to re-run, and returns structured per-account results. Three endpoints form the workflow:
- Create bulk upload of accounts — posts a payload containing an
accountsListarray. The response contains the ID of the bulk account upload. - Get all bulk account uploads for user — checks the status of every bulk upload a user has performed.
- Get bulk account upload result — returns the summary for a specific upload: which accounts succeeded and which failed, with reasons.
Each object inside accountsList carries the account parameters. Only two are mandatory:
platformId— a valid platform ID such asWinServerLocal.safeName— the destination Safe.
Optional members include username, address, secret (a password or a private SSH key), platformAccountProperties as key-value pairs defined by the platform, secretManagement.automaticManagementEnabled (default true), and remoteMachinesAccess.
Authorization is the exam-relevant constraint: the caller must hold Add accounts, Update account content, and Update account properties authorization in at least one Safe. A service identity that can only add accounts will be rejected before a single object is created.
Because the API is asynchronous, the correct operational pattern is: submit, capture the ID, then poll the result endpoint — not assume success from the HTTP 200 on submission.
Method 3: AccountUploader for SSH Keys
SSH keys can be provisioned in the Vault manually through the PVWA, automatically through the Accounts Feed onboarding wizard, through the AddAccount web service, or with the AccountUploader utility. The utility exists because an SSH key account's secret is a file, not a typed string, and bulk CSV columns do not carry private key material well.
Facts worth memorizing about AccountUploader:
- It is included as part of the PSM for SSH installation package — not the CPM, Vault, or PVWA installer.
- It is supported on Linux, and is run from a local Unix machine.
- Two files are copied to the run directory:
AccountUploaderandicudt42l.dat.
Its usage is:
accountuploader -VaultFile VaultFile -CredFile CredFile -SafeName SafeName \
-KeyFile KeyFile -DeviceType DeviceType -PolicyId PolicyId \
-Address Address -UserName UserName [-SubnetMask SubnetMask] [-ObjectName ObjectName]
-KeyFile points at the private key being onboarded; -VaultFile and -CredFile supply the Vault connection and the credential file identifying the uploading user, exactly as they do for the Vault's other command-line utilities.
One discovery interaction is commonly tested: SSH keys that already exist in the Vault are not rediscovered. Keys added through the PVWA, onboarded via the Accounts Feed, or provisioned with AddAccount will not reappear in Pending Accounts. Re-running the CPM Scanner against keys that are still pending refreshes their details so the Pending Accounts list reflects current state.
Choosing the Right Tool
| Situation | Correct mechanism |
|---|---|
| Migrating thousands of password accounts and the destination Safes do not exist yet | Password Upload Utility (creates Safes, adds the CPM user, shares with PVWA) |
| Automating onboarding from a pipeline or CMDB with structured success/failure reporting | Bulk upload of accounts REST API |
| Onboarding Unix accounts whose secret is a private SSH key file, from a Linux host | AccountUploader |
| Accounts nobody has inventoried yet | CPM Scanner discovery plus onboarding rules (section 6.1) |
An administrator must onboard an account whose secret is a private SSH key file, working from a Linux jump host. Which utility is designed for this task, and where does it come from?
A service identity used by an automation pipeline holds only the Add accounts authorization in the destination Safe. What will happen when it calls the Create bulk upload of accounts REST API?
During a migration, an administrator prepares a CSV for the Password Upload utility that references several Safes which do not exist yet in the Vault. What does the utility do?