Skip to main content

API library and command-line interface for Banyan Security

Project description

API library and command-line interface for Banyan Security

Build Status codecov PyPI version

Prerequisites

Python 3.6, 3.7, or 3.8 must be installed.

Installation

Installing the easy way

$ pip install pybanyan

Installing the hard way

$ git clone https://github.com/banyansecurity/pybanyan.git
$ cd pybanyan
$ pip install -r requirements.txt
$ pip install setup.py

Usage

This package contains both an API client and a CLI tool. To use either one, you need to generate an API token from the Banyan Command Center.

Banyan 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

Run the command banyan by itself to see the available categories.

$ 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

Each of the commands has multiple subcommands. For example, banyan service allows you to list services, create/delete, enable/disable, etc. Run the command without any subcommand to see the options:

$ banyan service
usage: banyan service [-h]
                      {attach-policy,create,delete,detach-policy,disable,enable,get,list,test,update}
                      ...

optional arguments:
  -h, --help            show this help message and exit

sub-commands:
  {attach-policy,create,delete,detach-policy,disable,enable,get,list,test,update}
    attach-policy       attach a policy to a service
    create              create a new service from a JSON specification
    delete              delete a service
    detach-policy       detach the active policy from a service
    disable             disable a service
    enable              enable a service
    get                 show the definition of a registered service
    list                list registered services
    test                run sanity checks on a service
    update              update an existing service from a JSON specification

To see the full help available for any command, just add the -h or --help option to the end of the command. For example:

$ banyan service attach-policy --help
usage: banyan service attach-policy [-h] [--permissive] [--enforcing]
                                    service_name_or_id policy_name_or_id

positional arguments:
  service_name_or_id  Name or ID of the service to attach a policy to.
  policy_name_or_id   Name or ID of the policy to attach to the service.

optional arguments:
  -h, --help          show this help message and exit
  --permissive        Set the policy to permissive mode (allow all traffic and
                      log any unauthorized access).
  --enforcing         Set the policy to enforcing mode (deny unauthorized
                      access).

Development

This project includes a number of helpers in the Makefile to streamline common development tasks.

Environment Setup

The easiest way to work on the code is to create a local virtualenv. The included Makefile will do that for you:

$ make virtualenv
$ source env/bin/activate

Running tests

Place unit tests in the tests/ folder and run them with make test or pytest:

$ pytest tests/

Releasing to PyPi

Before releasing to PyPi, you must configure your login credentials in ~/.pypirc:

[pypi]
username = YOUR_USERNAME
password = YOUR_PASSWORD

[testpypi]
username = YOUR_USERNAME
password = YOUR_OTHER_PASSWORD

Then use the Makefile to upload to pypi.org or test.pypi.org:

$ make test-upload
$ make dist-upload

Deployments

Docker

Included is a basic Dockerfile for building and distributing Banyan CLI, and can be built with the included make helper:

$ make docker
$ docker run -it banyan --help

Support

This API library and its accompanying CLI utility are provided free of charge and without support. To report issues with the library, please create a new issue in Github.

Contributions

We welcome your contributions in the form of pull requests! Please follow the standard Github pull request workflow.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pybanyan-0.0.1a4.tar.gz (27.4 kB view details)

Uploaded Source

Built Distribution

pybanyan-0.0.1a4-py3-none-any.whl (40.3 kB view details)

Uploaded Python 3

File details

Details for the file pybanyan-0.0.1a4.tar.gz.

File metadata

  • Download URL: pybanyan-0.0.1a4.tar.gz
  • Upload date:
  • Size: 27.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/47.3.1 requests-toolbelt/0.9.1 tqdm/4.48.2 CPython/3.7.1

File hashes

Hashes for pybanyan-0.0.1a4.tar.gz
Algorithm Hash digest
SHA256 dc7e73ece9c3db6e994cd6dcfa71e742a965758b53ca12e214f0895cfc2a341b
MD5 afb60e7b487ca3ff1e4549b1b1792e48
BLAKE2b-256 7b738e6d3c7f1d44ed006f155f54d0a7e0f6aa15887cd04aef8c300b7d0495dd

See more details on using hashes here.

File details

Details for the file pybanyan-0.0.1a4-py3-none-any.whl.

File metadata

  • Download URL: pybanyan-0.0.1a4-py3-none-any.whl
  • Upload date:
  • Size: 40.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/47.3.1 requests-toolbelt/0.9.1 tqdm/4.48.2 CPython/3.7.1

File hashes

Hashes for pybanyan-0.0.1a4-py3-none-any.whl
Algorithm Hash digest
SHA256 2bf982a3489d43b11caa11dd761a3511532eabc37b674025e7a829e2beb5be97
MD5 adc67cd5a313db153b58f50dd4812372
BLAKE2b-256 1d029b27a881c6c80ca1a404c90494088a31863e7104a70789ee32a503b96e3a

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page