pybanyan - Banyan Python Library and CLI tool
Overview
pybanyan is a Python API client and Command Line Interface (CLI) tool. You can use the commands and subcommands in pybanyan to interact with the Banyan API.
Pre-requisites
- [Python 3.7+] must be installed
- API Key for programmatic access to the Banyan Command Center REST APIs
Installation
Install pybanyan using the pip
package installer.
pip install pybanyan
Usage
The pybanyan package contains both an API client and a CLI tool.
CLI Tool
Before you use the CLI, create a file called ~/.banyan.conf
in your home directory and paste in your API token:
[banyan]
api_url = https://net.banyanops.com
refresh_token = MY_API_TOKEN
The CLI is invoked with the banyan
tool. It contains a number of commands and sub-commands to help you work with policies, roles, services, users, and other objects in Banyan. Run the banyan
tool by itself to see the available commands.
$ banyan
usage: banyan [options] <command> <subcommand> [<subcommand> ...] [parameters]
API library and command-line interface for Banyan Security
optional arguments:
-h, --help show this help message and exit
-d, --debug full application debug mode
-q, --quiet suppress all console output
-v, --version show program's version number and exit
--api-url API_URL URL for the Banyan API server. Can also be configured
via the BANYAN_API_URL environment variable.
--refresh-token REFRESH_TOKEN
API token used for the initial authentication to the
Banyan API server. Can also be configured via the
BANYAN_REFRESH_TOKEN environment variable.
--output-format {table,json,yaml}, -o {table,json,yaml}
desired output format (table, json, yaml)
Commands:
{event,admin,device,user,netagent,shield,policy,role,service}
event report on security and audit events
admin manage administrator accounts
device manage devices
user manage user accounts
netagent manage netagents (AccessTiers and HostAgents)
shield manage Banyan Shield clusters
policy manage authorization policies for users and workloads
role manage user and workload roles
service manage web and TCP services and workloads
API library
Here’s a sample script that uses the library to print the names of every service registered in Banyan:
from banyan.api import BanyanApiClient
c = BanyanApiClient()
for service in c.services.list():
print(service.name)
Run it:
$ python examples/list_services.py
jira
jupyter
kube
mysql
rds-mysql
rds-pgsql
The BanyanApiClient
class accepts optional arguments to specify the API server and refresh token. If not provided, it gets them from environment variables named BANYAN_API_URL and BANYAN_REFRESH_TOKEN.
Get Started
To get started with the Banyan Python Library and CLI tool, review the source code or customize the tool, please refer to our open-source Github repo.