Compliance Commands

Keeper Commander compliance reporting commands

About

Requires Compliance Reporting add-on
Compliance reports let account administrators adhere to regulations by providing on-demand visibility to access permissions on records and credentials across the enterprise.
Using Commander, compliance reports can be scheduled and automated, and results can be exported to a CSV file or JSON.
For more information about Compliance Reports, see the Compliance Reports documentation:

The compliance-report command

The compliance-report command allows you to run reports just as you would in the Keeper Admin Console. See record permissions by node, user and title, filter by owned or shared records and output results to a file.

Cache

The compliance-report command relies on a cache in order to improve performance across multiple report queries.
This means that the first call to compliance-report may take several minutes as the system pulls in the required data.
During this time, Commander will display messaging explaining the current step.
Additionally, a manual rebuild of the cache can be performed with the -r flag. Do this to see recent changes in the compliance data.
compliance-report -r
Removing the Cache
The compliance report cache can be removed manually with the --no-cache flag. When run, this completely removes all cached compliance report information from your machine.
compliance-report --no-cache
Alternatively, you can delete the cache file locally on disk from the location where you ran Commander. Delete the file called sox_<ID>.db which contains the encrypted compliance data.

Filters

The compliance report can be filtered by Node, User, Job Title and if the record is shared.
Filter by Node

Format

--node [NODE NAME or ID] or -n [NODE NAME or ID]
Example
compliance-report --node "Chicago Office"

About

Filters the record results to only records that exist in Keeper Vaults in the given Node. By default this uses the root enterprise node and searches all vaults.
Filter by Username

Format

--username [USER EMAIL] or -u [USER EMAIL]
Example
compliance-report --username "[email protected]"

About

Filters the record results to only records that exist in the Keeper Vault of the given username
Filter by Record

Format

--record [UID or TITLE] or -r [UID or TITLE]
Example
compliance-report --record "Twitter Login"

About

Filters the results to the record with the given UID or title
Filter by URL

Format

--url [URL]
Example
compliance-report --url "https://www.twitter.com"

About

Filters the results to records with the given URL value
Filter by Job Title

Format

--job-title [TITLE] or -jt [TITLE]
Example
compliance-report --job-title "Engineers"

About

Filters the record results to only records that exist in Keeper Vaults owned by users with the given title
Filter by Shared Records

Format

--shared
Example
compliance-report --shared

About

Only shows records that have been shared
Filter by Record
Requires Commander version 16.7.5+
Format
--team <TEAM NAME>
Example
compliance-report --team "Engineering"
About
Show only users which are in the given team
Filter by Team
Requires Commander version 16.7.5+
Format
--record <RECORD NAME or UID>
Example
compliance-report --record "Twitter Login"
About
Show report for the given record
Using Multiple Filters Together
The filter flags can be used together to create advanced reports
Example
compliance-report --node "Chicago" --job-title "Managers" --shared
This example shows a report of records that have been shared from Vaults owned by Managers in the Chicago Node.
The same filter can also be used multiple times
compliance-report -u "[email protected]" -u "[email protected]"
This example retrieves records for both users "[email protected]" and "[email protected]"

About

Filters the record results to only records that exist in Keeper Vaults in the given Node

Outputting to a File

Like many Commander reports, the compliance report results can be saved to a file. To do this use the --output and --format options.
Output
--output [FILE PATH]
Tells Commander to write results to a file at the given location. If no file exists it will be created.
Format
--format [csv, json, table]
Tells Commander the format to write the report results as. The default result is in table format, which displays a formatted table of results. The other options are Comma Separated Values (CSV), JavaScript Object Notation (JSON).
If the --format flag is added without the --output flag, the results will be shown in Commander in the the given format
Save results to CSV (Excel)
To save compliance report results as a CSV file viewable in Excel, use the following flags:
--format csv and --output /path/to/file.csv

Example

compliance-report --username "[email protected]" --format csv --output "./craig_compliance.csv"
The results will be saved as a csv formatted file at the given location
Save results to JSON
To save compliance report results as a CSV file to use in code or scripting, use the following flags:
--format json and --output /path/to/file.json

Example

compliance-report --username "[email protected]" --format csv --output "./craig_compliance.json"
The results will be saved as a json formatted file at the given location

The compliance command

In addition to enabling users in generating custom reports, Commander also provides users the ability to generate specific reports with the compliance command. These specific reports can be generated by invoking the compliance command's supported sub-commands.
The compliance command supports the following sub commands:
Refer to the sub command's section for more information.

Compliance Team Report

Shared folders can be shared to Keeper Teams as well as individuals. The compliance report can display a report of the access that each team has to these shared folders.
To run the Compliance Team Report, use the following command in Commander:
compliance team-report
This report uses the compliance report cache described above.
The report shows each team that has access to a shared folder, and what access it has to that shared folder.
My Vault> compliance team-report
Team Name Team UID Shared Folder Name Shared Folder UID Permissions Records
----------- ---------------------- ------------------ ---------------------- ------------------- ---------
Engineering qLoY4YptKEs30VK_D8px1A Devops Secrets YZaagndh8CQToqlhuvv95Q Read Only 1
Marketing XWLBkyN_HnwJKA4BYWrByw Website Logins -IcFcSgrFPEW9aP1-noiWw Can Share, Can Edit 2
If you would like to include team-membership information (i.e., which users belong to each team) in the report, you can include the optional flag --show-team-users/-tu in your command call, as illustrated in the following example:
compliance team-report -tu
Please note that, as a result of the additional flag in the above command call, a column titled "Team Users" (in which the usernames of all members of each relevant team can be found) will be added to the generated report.

Compliance Record-Access Report

The compliance record-access-report displays a list of all records in the enterprise to which any given user has had access, along with other relevant information (e.g., app used, IP address, event timestamp, etc.)
To run the Compliance Record-Access Report, run the following command in Commander:
compliance record-access-report [email protected]
where [email protected] is the user whose record-access activity we'd like to audit, with the resulting output being something like the following:
My Vault> compliance record-access-report [email protected]
Record UID Record Title Record Owner IP Address Device Last Access
---------------------- ------------------------------ ------------------ ------------ ------------------ --------------------
LDUw6M6jNcUmEkuArp4LXQ User1-Login [email protected] 172.158.8.18 Web App 16.10.2 2023-05-30 17:04:23
5U4DK0MmJ5ZVui-o6JcDQw User2-Login [email protected] 172.158.8.18 Web App 16.10.2 2023-05-30 17:04:18
MMhu6YQ5gKtYbgPiVD41UQ User3-Login [email protected] 172.158.8.18 Web App 16.10.2 2023-05-24 14:35:23

Compliance Summary Report

The compliance summary report displays aggregate information about records within the enterprise (grouped by record-owner by default for now, but support for grouping by other entities may be added to this feature later)
To run the Compliance Summary Report, run the following command in Commander:
compliance summary-report
or
compliance stats
with the resulting output being something like the following:
My Vault> compliance summary-report
Email Records
--------------------------------- ---------
alan.turing@keeperdemo... 29
TOTAL 231

Compliance Shared-Folder Report

Similar to compliance team-report, this command outputs a report detailing the access that all entities (teams as well as individual users) have to all shared folders within the enterprise.
To run the Compliance Shared-Folder Report, run the following command in Commander:
compliance shared-folder-report
or
compliance sfr
with the corresponding output:
My Vault> compliance sfr
Loading record information....
Loading compliance data....:
Shared Folder UID Team UID Team Name Record UID Email
---------------------- ---------------------- ------------ ---------------------- ------------------------------
y01GmuTipqHGLdd0NkM4qw PG7MELDIOaNMQkDiw--JoQ [email protected]
1JDuc5ZcJDpt8SbhYnD0HA [email protected]
YZaagndh8CQToqlhuvv95Q qLoY4YptKEs30VK_D8px1A Engineering IOYb8jAmDsaIGtTwZB5Biw [email protected]
-IcFcSgrFPEW9aP1-noiWw XWLBkyN_HnwJKA4BYWrByw Marketing O69TWFDnPCG_dpg9wpABqg [email protected]
qLoY4YptKEs30VK_D8px1A Engineering f46BWlqg5SoWraVlEFFSDA
0qpDTAWuznWrInnednG3Xw XWLBkyN_HnwJKA4BYWrByw Marketing EnqP808xakJA9hOpjhYb9A [email protected]
Similar to the compliance team-report command described above, this command also accepts an optional --show-team-users/-tu flag indicating that team-membership data be included (where appropriate) in the resulting report. Here is an example of its usage:
compliance sfr -tu
Please note that, in contrast to the output of compliance team-report -tu, the resulting report generated by the above command will include the appropriate additional team-membership data in the existing column named "Email" and each username associated with a team will by preceded by "(TU)" to denote it as such.
See the Reporting Documentation for other reports available in Commander