diff options
| -rw-r--r-- | .gitignore | 1 | ||||
| -rw-r--r-- | python-pybanyan.spec | 685 | ||||
| -rw-r--r-- | sources | 1 |
3 files changed, 687 insertions, 0 deletions
@@ -0,0 +1 @@ +/pybanyan-0.29.4.tar.gz diff --git a/python-pybanyan.spec b/python-pybanyan.spec new file mode 100644 index 0000000..cd27991 --- /dev/null +++ b/python-pybanyan.spec @@ -0,0 +1,685 @@ +%global _empty_manifest_terminate_build 0 +Name: python-pybanyan +Version: 0.29.4 +Release: 1 +Summary: API library and command-line interface for Banyan Security +License: apache +URL: https://github.com/banyansecurity/pybanyan/ +Source0: https://mirrors.nju.edu.cn/pypi/web/packages/42/28/8abc9c5a0e083ca04cdf68ea4420f69167fb5382e636085ebd3cfeb669de/pybanyan-0.29.4.tar.gz +BuildArch: noarch + +Requires: python3-dnspython +Requires: python3-marshmallow +Requires: python3-marshmallow-dataclass +Requires: python3-dateutil +Requires: python3-cement +Requires: python3-jinja2 +Requires: python3-pyyaml +Requires: python3-colorlog +Requires: python3-semver +Requires: python3-jwt +Requires: python3-iso8601 +Requires: python3-tabulate +Requires: python3-pyOpenSSL +Requires: python3-requests +Requires: python3-aenum +Requires: python3-colorama +Requires: python3-cryptography +Requires: python3-boto3 +Requires: python3-ec2-metadata +Requires: python3-azure-identity +Requires: python3-msgraph-core +Requires: python3-azure-identity +Requires: python3-azure-mgmt-resource +Requires: python3-azure-mgmt-compute +Requires: python3-azure-mgmt-network +Requires: python3-google-api-python-client +Requires: python3-okta +Requires: python3-oci + +%description +# API library and command-line interface for Banyan Security +[](https://travis-ci.org/banyansecurity/pybanyan) +[](https://codecov.io/gh/banyansecurity/pybanyan) +[](https://badge.fury.io/py/pybanyan) + + +## Prerequisites +Python 3.7+ must be installed. + +## Installation +### Installing the easy way + +```console +$ pip install pybanyan +``` + +### Installing the hard way + +```console +$ git clone https://github.com/banyansecurity/pybanyan.git +$ cd pybanyan +$ pip install -r requirements.txt +$ python setup.py install --user +``` + +## Usage + +This package contains both an API client and a CLI tool. +To use either one, you need to [generate][docs] an API credential from the Banyan Command Center. + +### API library + +Here's a sample script that uses the library to print the names of every hosted website service registered in Banyan: + +```python +from banyan.api import BanyanApiClient + +c = BanyanApiClient() +for service in c.services_web.list(): + print(service.name) +``` + +Output: +```console +$ 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 API credential. If not provided, +it gets them from environment variables named `BANYAN_API_URL` and `BANYAN_API_KEY` (you can also use a personal refresh token as your API credential. + +Full API documentation is available in the [docs]. + +### Banyan CLI tool + +Before you use the CLI, create a file called `~/.banyan.conf` in your home directory and paste in your API credential in the `api_key` field (you can also use a personal refresh token as your API credential): + +```ini +[banyan] +api_url = https://net.banyanops.com +api_key = MY_API_KEY +``` + +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. + +```console +$ banyan +usage: banyan [options] <command> <subcommand> [<subcommand> ...] [parameters] + +API library and command-line interface for Banyan Security + +options: + -h, --help show this help message and exit + -d, --debug full application debug mode + -q, --quiet suppress all console output + --version, -v 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. + --api-key API_KEY API credential used for the authentication to the Banyan API server. Can also be configured via the BANYAN_API_KEY environment + variable. + --insecure-tls, -k Allow connections to API servers with invalid TLS certificates. + --output-format {table,json,yaml}, -o {table,json,yaml} + desired output format (table, json, yaml) + +Commands: + {netagent,service,shield,access-tier,api-key,audit,cloud-resource,connector,device,event,export,policy,role,service-infra,service-tunnel,service-web,user} + netagent (deprecated: use access-tier) manage netagents + service (deprecated: use service-web or service-infra) manage web and TCP services and workloads + shield (deprecated) manage shield clusters + access-tier manage access tiers + api-key manage API keys + audit retrieve audit logs + cloud-resource manage cloud resources discovered from IaaS + connector manage connectors + device manage devices + event report on security events + export export all objects from an organization + policy manage authorization policies for users and workloads + role manage user and workload roles + service-infra manage infrastructure services + service-tunnel manage service tunnels + service-web manage hosted website services + user manage users +``` + +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: + +```console +$ banyan service-web +usage: banyan service-web [-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: + +```console +$ banyan service-web attach-policy --help +usage: banyan service-web 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). +``` + +## Integrations + +You can automate different types of workflows by integrating with external APIs. We provide pre-built integrations for 2 types of workflows: + +### 1. Synchronize cloud resources from your IaaS provider + +You can discover and synchronize your IaaS (Infrastructure As A Service) resources into Banyan's inventory, so you can later publish some or all of them as Banyan services. Read our [overview on how Banyan synchronizes IaaS resources](docs/iaas/README.md), and then check out instructions to set up for your specific IaaS provider: + +- [AWS](docs/iaas/aws.md) +- [Azure Cloud](docs/iaas/azure_cloud.md) +- [GCP](docs/iaas/gcp.md) +- [Oracle Cloud](docs/iaas/oracle_cloud.md) + +### 2. Bookmark Banyan services into your SSO catalog + +You can publish Banyan services as bookmark applications in your SSO (Single Sign On) portal, so your end-user can access them via their SSO catalog. Check out the provider-specific link for setup instructions. + +- [Okta](docs/idp/okta.md) +- [AzureAD](docs/idp/azure_ad.md) + + +## Development + +To work on the pybanyan code, follow the instructions in the [documentation][devel]. + +## 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][github-issue]. + +## Contributions + +We welcome your contributions in the form of pull requests! Please follow the standard [Github pull request +workflow][github-pr]. + +[docs]: https://docs.banyansecurity.io/docs/api-guide/introduction/ +[github-pr]: https://gist.github.com/Chaser324/ce0505fbed06b947d962 +[github-issue]: https://github.com/banyansecurity/pybanyan/issues/new +[devel]: https://pybanyan.readthedocs.io/development.html + + +%package -n python3-pybanyan +Summary: API library and command-line interface for Banyan Security +Provides: python-pybanyan +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +%description -n python3-pybanyan +# API library and command-line interface for Banyan Security +[](https://travis-ci.org/banyansecurity/pybanyan) +[](https://codecov.io/gh/banyansecurity/pybanyan) +[](https://badge.fury.io/py/pybanyan) + + +## Prerequisites +Python 3.7+ must be installed. + +## Installation +### Installing the easy way + +```console +$ pip install pybanyan +``` + +### Installing the hard way + +```console +$ git clone https://github.com/banyansecurity/pybanyan.git +$ cd pybanyan +$ pip install -r requirements.txt +$ python setup.py install --user +``` + +## Usage + +This package contains both an API client and a CLI tool. +To use either one, you need to [generate][docs] an API credential from the Banyan Command Center. + +### API library + +Here's a sample script that uses the library to print the names of every hosted website service registered in Banyan: + +```python +from banyan.api import BanyanApiClient + +c = BanyanApiClient() +for service in c.services_web.list(): + print(service.name) +``` + +Output: +```console +$ 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 API credential. If not provided, +it gets them from environment variables named `BANYAN_API_URL` and `BANYAN_API_KEY` (you can also use a personal refresh token as your API credential. + +Full API documentation is available in the [docs]. + +### Banyan CLI tool + +Before you use the CLI, create a file called `~/.banyan.conf` in your home directory and paste in your API credential in the `api_key` field (you can also use a personal refresh token as your API credential): + +```ini +[banyan] +api_url = https://net.banyanops.com +api_key = MY_API_KEY +``` + +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. + +```console +$ banyan +usage: banyan [options] <command> <subcommand> [<subcommand> ...] [parameters] + +API library and command-line interface for Banyan Security + +options: + -h, --help show this help message and exit + -d, --debug full application debug mode + -q, --quiet suppress all console output + --version, -v 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. + --api-key API_KEY API credential used for the authentication to the Banyan API server. Can also be configured via the BANYAN_API_KEY environment + variable. + --insecure-tls, -k Allow connections to API servers with invalid TLS certificates. + --output-format {table,json,yaml}, -o {table,json,yaml} + desired output format (table, json, yaml) + +Commands: + {netagent,service,shield,access-tier,api-key,audit,cloud-resource,connector,device,event,export,policy,role,service-infra,service-tunnel,service-web,user} + netagent (deprecated: use access-tier) manage netagents + service (deprecated: use service-web or service-infra) manage web and TCP services and workloads + shield (deprecated) manage shield clusters + access-tier manage access tiers + api-key manage API keys + audit retrieve audit logs + cloud-resource manage cloud resources discovered from IaaS + connector manage connectors + device manage devices + event report on security events + export export all objects from an organization + policy manage authorization policies for users and workloads + role manage user and workload roles + service-infra manage infrastructure services + service-tunnel manage service tunnels + service-web manage hosted website services + user manage users +``` + +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: + +```console +$ banyan service-web +usage: banyan service-web [-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: + +```console +$ banyan service-web attach-policy --help +usage: banyan service-web 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). +``` + +## Integrations + +You can automate different types of workflows by integrating with external APIs. We provide pre-built integrations for 2 types of workflows: + +### 1. Synchronize cloud resources from your IaaS provider + +You can discover and synchronize your IaaS (Infrastructure As A Service) resources into Banyan's inventory, so you can later publish some or all of them as Banyan services. Read our [overview on how Banyan synchronizes IaaS resources](docs/iaas/README.md), and then check out instructions to set up for your specific IaaS provider: + +- [AWS](docs/iaas/aws.md) +- [Azure Cloud](docs/iaas/azure_cloud.md) +- [GCP](docs/iaas/gcp.md) +- [Oracle Cloud](docs/iaas/oracle_cloud.md) + +### 2. Bookmark Banyan services into your SSO catalog + +You can publish Banyan services as bookmark applications in your SSO (Single Sign On) portal, so your end-user can access them via their SSO catalog. Check out the provider-specific link for setup instructions. + +- [Okta](docs/idp/okta.md) +- [AzureAD](docs/idp/azure_ad.md) + + +## Development + +To work on the pybanyan code, follow the instructions in the [documentation][devel]. + +## 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][github-issue]. + +## Contributions + +We welcome your contributions in the form of pull requests! Please follow the standard [Github pull request +workflow][github-pr]. + +[docs]: https://docs.banyansecurity.io/docs/api-guide/introduction/ +[github-pr]: https://gist.github.com/Chaser324/ce0505fbed06b947d962 +[github-issue]: https://github.com/banyansecurity/pybanyan/issues/new +[devel]: https://pybanyan.readthedocs.io/development.html + + +%package help +Summary: Development documents and examples for pybanyan +Provides: python3-pybanyan-doc +%description help +# API library and command-line interface for Banyan Security +[](https://travis-ci.org/banyansecurity/pybanyan) +[](https://codecov.io/gh/banyansecurity/pybanyan) +[](https://badge.fury.io/py/pybanyan) + + +## Prerequisites +Python 3.7+ must be installed. + +## Installation +### Installing the easy way + +```console +$ pip install pybanyan +``` + +### Installing the hard way + +```console +$ git clone https://github.com/banyansecurity/pybanyan.git +$ cd pybanyan +$ pip install -r requirements.txt +$ python setup.py install --user +``` + +## Usage + +This package contains both an API client and a CLI tool. +To use either one, you need to [generate][docs] an API credential from the Banyan Command Center. + +### API library + +Here's a sample script that uses the library to print the names of every hosted website service registered in Banyan: + +```python +from banyan.api import BanyanApiClient + +c = BanyanApiClient() +for service in c.services_web.list(): + print(service.name) +``` + +Output: +```console +$ 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 API credential. If not provided, +it gets them from environment variables named `BANYAN_API_URL` and `BANYAN_API_KEY` (you can also use a personal refresh token as your API credential. + +Full API documentation is available in the [docs]. + +### Banyan CLI tool + +Before you use the CLI, create a file called `~/.banyan.conf` in your home directory and paste in your API credential in the `api_key` field (you can also use a personal refresh token as your API credential): + +```ini +[banyan] +api_url = https://net.banyanops.com +api_key = MY_API_KEY +``` + +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. + +```console +$ banyan +usage: banyan [options] <command> <subcommand> [<subcommand> ...] [parameters] + +API library and command-line interface for Banyan Security + +options: + -h, --help show this help message and exit + -d, --debug full application debug mode + -q, --quiet suppress all console output + --version, -v 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. + --api-key API_KEY API credential used for the authentication to the Banyan API server. Can also be configured via the BANYAN_API_KEY environment + variable. + --insecure-tls, -k Allow connections to API servers with invalid TLS certificates. + --output-format {table,json,yaml}, -o {table,json,yaml} + desired output format (table, json, yaml) + +Commands: + {netagent,service,shield,access-tier,api-key,audit,cloud-resource,connector,device,event,export,policy,role,service-infra,service-tunnel,service-web,user} + netagent (deprecated: use access-tier) manage netagents + service (deprecated: use service-web or service-infra) manage web and TCP services and workloads + shield (deprecated) manage shield clusters + access-tier manage access tiers + api-key manage API keys + audit retrieve audit logs + cloud-resource manage cloud resources discovered from IaaS + connector manage connectors + device manage devices + event report on security events + export export all objects from an organization + policy manage authorization policies for users and workloads + role manage user and workload roles + service-infra manage infrastructure services + service-tunnel manage service tunnels + service-web manage hosted website services + user manage users +``` + +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: + +```console +$ banyan service-web +usage: banyan service-web [-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: + +```console +$ banyan service-web attach-policy --help +usage: banyan service-web 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). +``` + +## Integrations + +You can automate different types of workflows by integrating with external APIs. We provide pre-built integrations for 2 types of workflows: + +### 1. Synchronize cloud resources from your IaaS provider + +You can discover and synchronize your IaaS (Infrastructure As A Service) resources into Banyan's inventory, so you can later publish some or all of them as Banyan services. Read our [overview on how Banyan synchronizes IaaS resources](docs/iaas/README.md), and then check out instructions to set up for your specific IaaS provider: + +- [AWS](docs/iaas/aws.md) +- [Azure Cloud](docs/iaas/azure_cloud.md) +- [GCP](docs/iaas/gcp.md) +- [Oracle Cloud](docs/iaas/oracle_cloud.md) + +### 2. Bookmark Banyan services into your SSO catalog + +You can publish Banyan services as bookmark applications in your SSO (Single Sign On) portal, so your end-user can access them via their SSO catalog. Check out the provider-specific link for setup instructions. + +- [Okta](docs/idp/okta.md) +- [AzureAD](docs/idp/azure_ad.md) + + +## Development + +To work on the pybanyan code, follow the instructions in the [documentation][devel]. + +## 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][github-issue]. + +## Contributions + +We welcome your contributions in the form of pull requests! Please follow the standard [Github pull request +workflow][github-pr]. + +[docs]: https://docs.banyansecurity.io/docs/api-guide/introduction/ +[github-pr]: https://gist.github.com/Chaser324/ce0505fbed06b947d962 +[github-issue]: https://github.com/banyansecurity/pybanyan/issues/new +[devel]: https://pybanyan.readthedocs.io/development.html + + +%prep +%autosetup -n pybanyan-0.29.4 + +%build +%py3_build + +%install +%py3_install +install -d -m755 %{buildroot}/%{_pkgdocdir} +if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi +if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi +if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi +if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi +pushd %{buildroot} +if [ -d usr/lib ]; then + find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/lib64 ]; then + find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/bin ]; then + find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/sbin ]; then + find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst +fi +touch doclist.lst +if [ -d usr/share/man ]; then + find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst +fi +popd +mv %{buildroot}/filelist.lst . +mv %{buildroot}/doclist.lst . + +%files -n python3-pybanyan -f filelist.lst +%dir %{python3_sitelib}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Mon May 29 2023 Python_Bot <Python_Bot@openeuler.org> - 0.29.4-1 +- Package Spec generated @@ -0,0 +1 @@ +0058ca88206db1871a17add80af1d171 pybanyan-0.29.4.tar.gz |
