2019-08-05 17:09:10 +02:00
|
|
|
========================
|
2016-11-25 18:09:39 +01:00
|
|
|
Team and repository tags
|
|
|
|
========================
|
|
|
|
|
|
|
|
|
2019-08-05 17:09:10 +02:00
|
|
|
.. image:: https://governance.openstack.org/tc/badges/barbican.svg
|
|
|
|
:target: https://governance.openstack.org/tc/reference/tags/index.html
|
|
|
|
|
|
|
|
.. Change things from this point on
|
2016-11-25 18:09:39 +01:00
|
|
|
|
2019-08-05 17:09:10 +02:00
|
|
|
Barbican
|
|
|
|
========
|
2013-04-01 18:26:03 -05:00
|
|
|
|
2015-03-17 01:50:12 -05:00
|
|
|
Barbican is a REST API designed for the secure storage, provisioning and
|
2013-11-21 10:48:47 -06:00
|
|
|
management of secrets. It is aimed at being useful for all environments,
|
2015-03-17 01:50:12 -05:00
|
|
|
including large ephemeral Clouds.
|
2013-04-01 18:26:03 -05:00
|
|
|
|
2019-08-05 17:09:10 +02:00
|
|
|
Barbican is an OpenStack project developed by the `Barbican Project Team
|
|
|
|
<https://wiki.openstack.org/wiki/Barbican>`_ with support from
|
|
|
|
`Rackspace Hosting <http://www.rackspace.com/`>_, EMC, Ericsson,
|
2015-03-17 01:50:12 -05:00
|
|
|
Johns Hopkins University, HP, Red Hat, Cisco Systems, and many more.
|
|
|
|
|
2019-08-05 17:09:10 +02:00
|
|
|
The full documentation can be found on the `Barbican Developer Documentation
|
|
|
|
Site <https://docs.openstack.org/barbican/latest/>`_.
|
2015-03-17 01:50:12 -05:00
|
|
|
|
2019-08-05 17:09:10 +02:00
|
|
|
If you have a technical question, you can ask it at `Ask OpenStack
|
|
|
|
<https://ask.openstack.org/en/questions/>`_ with the `barbican` tag.
|
2015-03-17 01:50:12 -05:00
|
|
|
|
2019-08-05 17:09:10 +02:00
|
|
|
To file a bug, use our bug tracker on `OpenStack Storyboard
|
|
|
|
<https://storyboard.openstack.org/#!/project/980>`_.
|
2015-03-17 01:50:12 -05:00
|
|
|
|
2019-08-05 17:09:10 +02:00
|
|
|
Release notes for the project can be found at
|
|
|
|
https://docs.openstack.org/releasenotes/barbican.
|
2018-06-20 13:19:52 +08:00
|
|
|
|
2019-08-05 17:09:10 +02:00
|
|
|
For development questions or discussion, use the `OpenStack-discuss
|
|
|
|
mailing list <http://lists.openstack.org/pipermail/openstack-discuss/>`_
|
|
|
|
at `openstack-discuss@lists.openstack.org` and let us know what you
|
|
|
|
think, just add
|
2015-03-17 01:50:12 -05:00
|
|
|
`[barbican]` to the subject. You can also join our IRC channel
|
|
|
|
`#openstack-barbican` on Freenode.
|
|
|
|
|
|
|
|
Barbican began as part of a set of applications that make up the CloudKeep
|
|
|
|
ecosystem. The other systems are:
|
2013-04-01 18:26:03 -05:00
|
|
|
|
2019-08-05 17:09:10 +02:00
|
|
|
* `Postern <https://github.com/cloudkeep/postern>_` - Go based agent that
|
2013-11-21 10:48:47 -06:00
|
|
|
provides access to secrets from the Barbican API.
|
2019-08-05 17:09:10 +02:00
|
|
|
* `Palisade <https://github.com/cloudkeep/palisade>`_ - AngularJS based web ui
|
2013-11-21 10:48:47 -06:00
|
|
|
for the Barbican API.
|
2019-08-05 17:09:10 +02:00
|
|
|
* `Python-barbicanclient
|
|
|
|
<https://github.com/openstack/python-barbicanclient>`_ -
|
2013-11-21 10:48:47 -06:00
|
|
|
A convenient Python-based library to interact with the Barbican API.
|
2013-04-01 18:26:03 -05:00
|
|
|
|
2019-08-05 17:09:10 +02:00
|
|
|
Getting Started
|
|
|
|
---------------
|
2013-04-01 18:26:03 -05:00
|
|
|
|
2019-08-05 17:09:10 +02:00
|
|
|
Please visit our `Users, Developers and Operators documentation
|
|
|
|
<https://docs.openstack.org/barbican/latest/>`_ for details.
|
2013-04-01 18:26:03 -05:00
|
|
|
|
2019-08-05 17:09:10 +02:00
|
|
|
Why Should You Use Barbican?
|
|
|
|
----------------------------
|
2013-04-01 18:26:03 -05:00
|
|
|
|
2013-11-21 10:48:47 -06:00
|
|
|
The current state of key management is atrocious. While Windows does have some
|
|
|
|
decent options through the use of the Data Protection API (DPAPI) and Active
|
|
|
|
Directory, Linux lacks a cohesive story around how to manage keys for
|
|
|
|
application use.
|
|
|
|
|
|
|
|
Barbican was designed to solve this problem. The system was motivated by
|
|
|
|
internal Rackspace needs, requirements from
|
2019-08-05 17:09:10 +02:00
|
|
|
`OpenStack <http://www.openstack.org/>`_ and a realization that the
|
|
|
|
current state
|
2013-11-21 10:48:47 -06:00
|
|
|
of the art could use some help.
|
2013-04-01 18:26:03 -05:00
|
|
|
|
|
|
|
Barbican will handle many types of secrets, including:
|
|
|
|
|
2013-11-21 10:48:47 -06:00
|
|
|
* **Symmetric Keys** - Used to perform reversible encryption of data at rest,
|
|
|
|
typically using the AES algorithm set. This type of key is required to enable
|
2019-08-05 17:09:10 +02:00
|
|
|
features like `encrypted Swift containers and Cinder
|
|
|
|
volumes <http://www.openstack.org/software/openstack-storage/>`_, `encrypted
|
|
|
|
Cloud Backups <http://www.rackspace.com/cloud/backup/>`_, etc.
|
|
|
|
* **Asymmetric Keys** - Asymmetric key pairs (sometimes referred to as
|
|
|
|
`public / private keys
|
|
|
|
<http://en.wikipedia.org/wiki/Public-key_cryptography>`_) are used in
|
|
|
|
many scenarios where communication between untrusted parties is
|
|
|
|
desired. The most common case is with SSL/TLS certificates, but also
|
|
|
|
is used in solutions like SSH keys, S/MIME (mail) encryption and
|
|
|
|
digital signatures.
|
2013-11-21 10:48:47 -06:00
|
|
|
* **Raw Secrets** - Barbican stores secrets as a base64 encoded block of data
|
|
|
|
(encrypted, naturally). Clients can use the API to store any secrets in any
|
2019-08-05 17:09:10 +02:00
|
|
|
format they desire. The `Postern
|
|
|
|
<https://github.com/cloudkeep/postern>`_ agent
|
2013-11-21 10:48:47 -06:00
|
|
|
is capable of presenting these secrets in various formats to ease
|
|
|
|
integration.
|
2013-04-01 18:26:03 -05:00
|
|
|
|
2014-04-24 14:15:07 -05:00
|
|
|
For the symmetric and asymmetric key types, Barbican supports full life cycle
|
2013-11-21 10:48:47 -06:00
|
|
|
management including provisioning, expiration, reporting, etc. A plugin system
|
|
|
|
allows for multiple certificate authority support (including public and private
|
|
|
|
CAs).
|
2013-04-01 18:26:03 -05:00
|
|
|
|
2019-08-05 17:09:10 +02:00
|
|
|
Design Goals
|
|
|
|
------------
|
2013-04-01 18:26:03 -05:00
|
|
|
|
2013-11-21 10:48:47 -06:00
|
|
|
1. Provide a central secret-store capable of distributing secret / keying
|
|
|
|
material to all types of deployments including ephemeral Cloud instances.
|
2013-04-01 18:26:03 -05:00
|
|
|
2. Support reasonable compliance regimes through reporting and auditability.
|
|
|
|
3. Application adoption costs should be minimal or non-existent.
|
|
|
|
4. Build a community and ecosystem by being open-source and extensible.
|
2019-08-05 17:09:10 +02:00
|
|
|
5. Improve security through sane defaults and centralized management
|
|
|
|
of `policies for all secrets
|
|
|
|
<https://github.com/cloudkeep/barbican/wiki/Policies>`_.
|
2017-02-22 16:38:58 -05:00
|
|
|
6. Provide an out of band communication mechanism to notify and protect sensitive
|
2016-01-18 14:06:21 -06:00
|
|
|
assets.
|