Skip to main content

Client Library for OpenStack Barbican Key Management API

Project description

Latest Version

This is a client for the Barbican Key Management API. There is a Python library for accessing the API (barbicanclient module), and a command-line script (barbican).

Installation

The client is pip installable as follows:

pip install python-barbicanclient

barbicanclient - Python Library

The full api is documented in the official OpenStack documentation site.

Here’s an example of storing a secret in barbican using the python library with keystone authentication:

>>> from keystoneclient.auth import identity
>>> from keystoneauth1 import session
>>> from barbicanclient import client

>>> # We'll use Keystone API v3 for authentication
>>> auth = identity.v3.Password(auth_url='http://localhost:5000/v3',
...                             username='admin_user',
...                             user_domain_name='Default',
...                             password='password',
...                             project_name='demo',
...                             project_domain_name='Default')

>>> # Next we'll create a Keystone session using the auth plugin we just created
>>> sess = session.Session(auth=auth)

>>> # Now we use the session to create a Barbican client
>>> barbican = client.Client(session=sess)

>>> # Let's create a Secret to store some sensitive data
>>> secret = barbican.secrets.create(name='Self destruction sequence',
...                                  payload='the magic words are squeamish ossifrage')

>>> # Now let's store the secret by using its store() method. This will send the secret data
>>> # to Barbican, where it will be encrypted and stored securely in the cloud.
>>> secret.store()
'http://localhost:9311/v1/secrets/85b220fd-f414-483f-94e4-2f422480f655'

>>> # The URI returned by store() uniquely identifies your secret in the Barbican service.
>>> # After a secret is stored, the URI is also available by accessing
>>> # the secret_ref attribute.
>>> print(secret.secret_ref)
http://localhost:9311/v1/secrets/091adb32-4050-4980-8558-90833c531413

>>> # When we need to retrieve our secret at a later time, we can use the secret_ref
>>> retrieved_secret = barbican.secrets.get('http://localhost:9311/v1/secrets/091adb32-4050-4980-8558-90833c531413')
>>> # We can access the secret payload by using the payload attribute.
>>> # Barbican decrypts the secret and sends it back.
>>> print(retrieved_secret.payload)
the magic words are squeamish ossifrage

barbican - Command Line Client

The command line client is self-documenting. Use the –help flag to access the usage options

$ barbican --help
usage: barbican [--version] [-v] [--log-file LOG_FILE] [-q] [-h] [--debug]
                [--no-auth] [--os-identity-api-version <identity-api-version>]
                [--os-auth-url <auth-url>] [--os-username <auth-user-name>]
                [--os-user-id <auth-user-id>] [--os-password <auth-password>]
                [--os-user-domain-id <auth-user-domain-id>]
                [--os-user-domain-name <auth-user-domain-name>]
                [--os-tenant-name <auth-tenant-name>]
                [--os-tenant-id <tenant-id>]
                [--os-project-id <auth-project-id>]
                [--os-project-name <auth-project-name>]
                [--os-project-domain-id <auth-project-domain-id>]
                [--os-project-domain-name <auth-project-domain-name>]
                [--endpoint <barbican-url>] [--insecure]
                [--os-cacert <ca-certificate>] [--os-cert <certificate>]
                [--os-key <key>] [--timeout <seconds>]

Command-line interface to the Barbican API.

optional arguments:
  --version             show program's version number and exit
  -v, --verbose         Increase verbosity of output. Can be repeated.
  --log-file LOG_FILE   Specify a file to log output. Disabled by default.
  -q, --quiet           suppress output except warnings and errors
  -h, --help            show this help message and exit
  --debug               show trace backs on errors
  --no-auth, -N         Do not use authentication.
  --os-identity-api-version <identity-api-version>
                        Specify Identity API version to use. Defaults to
                        env[OS_IDENTITY_API_VERSION] or 3.

  --os-auth-url <auth-url>, -A <auth-url>
                        Defaults to env[OS_AUTH_URL].
  --os-username <auth-user-name>, -U <auth-user-name>
                        Defaults to env[OS_USERNAME].
  --os-user-id <auth-user-id>
                        Defaults to env[OS_USER_ID].
  --os-password <auth-password>, -P <auth-password>
                        Defaults to env[OS_PASSWORD].
  --os-user-domain-id <auth-user-domain-id>
                        Defaults to env[OS_USER_DOMAIN_ID].
  --os-user-domain-name <auth-user-domain-name>
                        Defaults to env[OS_USER_DOMAIN_NAME].
  --os-tenant-name <auth-tenant-name>, -T <auth-tenant-name>
                        Defaults to env[OS_TENANT_NAME].
  --os-tenant-id <tenant-id>, -I <tenant-id>
                        Defaults to env[OS_TENANT_ID].
  --os-project-id <auth-project-id>
                        Another way to specify tenant ID. This option is
                        mutually exclusive with --os-tenant-id. Defaults to
                        env[OS_PROJECT_ID].
  --os-project-name <auth-project-name>
                        Another way to specify tenant name. This option is
                        mutually exclusive with --os-tenant-name. Defaults to
                        env[OS_PROJECT_NAME].
  --os-project-domain-id <auth-project-domain-id>
                        Defaults to env[OS_PROJECT_DOMAIN_ID].
  --os-project-domain-name <auth-project-domain-name>
                        Defaults to env[OS_PROJECT_DOMAIN_NAME].
  --endpoint <barbican-url>, -E <barbican-url>
  --endpoint <barbican-url>, -E <barbican-url>
                        Defaults to env[BARBICAN_ENDPOINT].
  --insecure            Explicitly allow client to perform "insecure" TLS
                        (https) requests. The server's certificate will not be
                        verified against any certificate authorities. This
                        option should be used with caution.
  --os-cacert <ca-certificate>
                        Specify a CA bundle file to use in verifying a TLS
                        (https) server certificate. Defaults to
                        env[OS_CACERT].
  --os-cert <certificate>
                        Defaults to env[OS_CERT].
  --os-key <key>        Defaults to env[OS_KEY].
  --timeout <seconds>   Set request timeout (in seconds).

See "barbican help COMMAND" for help on a specific command.

Commands:
  acl get                  Retrieve ACLs for a secret or container by providing its href.
  acl delete               Delete ACLs for a secret or container as identified by its href.
  acl submit               Submit ACL on a secret or container as identified by its href.
  acl user add             Add ACL users to a secret or container as identified by its href.
  acl user remove          Remove ACL users from a secret or container as identified by its href.
  ca get                   Retrieve a CA by providing its URI.
  ca list                  List CAs.
  complete                 print bash completion command
  secret container create  Store a container in Barbican.
  secret container delete  Delete a container by providing its href.
  secret container get     Retrieve a container by providing its URI.
  secret container list    List containers.
  help                     print detailed help for another command
  secret order create      Create a new order.
  secret order delete      Delete an order by providing its href.
  secret order get         Retrieve an order by providing its URI.
  secret order list        List orders.
  secret delete            Delete an secret by providing its href.
  secret get               Retrieve a secret by providing its URI.
  secret list              List secrets.
  secret store             Store a secret in Barbican
  secret update            Update a secret with no payload in Barbican.

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

python-barbicanclient-7.0.0.tar.gz (128.7 kB view details)

Uploaded Source

Built Distribution

python_barbicanclient-7.0.0-py3-none-any.whl (88.5 kB view details)

Uploaded Python 3

File details

Details for the file python-barbicanclient-7.0.0.tar.gz.

File metadata

  • Download URL: python-barbicanclient-7.0.0.tar.gz
  • Upload date:
  • Size: 128.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.11.9

File hashes

Hashes for python-barbicanclient-7.0.0.tar.gz
Algorithm Hash digest
SHA256 316af38a76d65a4af9135c700a7f3a46e2a5ab0485e93969687f6b62317295c7
MD5 fe8c5ccee65db40ec1262878ce17aafa
BLAKE2b-256 6b13af3408d95dee59b1fc6110ed9c7c75e6374f822994ea9724e22bb5cf63e5

See more details on using hashes here.

File details

Details for the file python_barbicanclient-7.0.0-py3-none-any.whl.

File metadata

File hashes

Hashes for python_barbicanclient-7.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 fea5c9dbcdf3ca2ad2c4abf7472a4cdd36123b5121ee267e09f332c8c1a680e6
MD5 e823e7dadd7236c7444909c3066aa6db
BLAKE2b-256 54342214dda3a531e970df3655f7baa079a93ba7adc1608e12967aac4c4c0bc5

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