Skip to main content

Overview

The Key Manager (Barbican) secret store backend determines how secret payloads are encrypted and where ciphertext is stored. Xloud Key Manager supports five backend types — from a software-only AES plugin for development, to hardware HSMs, external KMIP servers, HashiCorp Vault, and Dogtag KRA for enterprise deployments. Configuration is managed through XDeploy; changing the backend after secrets exist requires a migration operation.
Administrator Access Required — This operation requires the admin role. Contact your Xloud administrator if you do not have sufficient permissions.

Supported Backends

BackendPlugin NameExternal SystemBest For
Simple Cryptosimple_cryptoNone — DB-stored encrypted blobsDevelopment, non-HSM deployments
PKCS#11 HSMp11_cryptoHardware Security Module (Thales, nCipher, Utimaco, ATOS)FIPS 140-2 / production HSM
KMIPkmip_pluginAny OASIS KMIP server (Thales, SafeNet, Vormetric, IBM)Enterprise KMS integration
HashiCorp Vaultvault_pluginHashiCorp Vault (self-hosted or HCP)Cloud-native secrets management
Dogtag KRAdogtag_pluginRed Hat Certificate System / FreeIPASoftware-HSM without hardware

View Current Backend

The active backend is visible in the XDeploy configuration panel under Key Manager → Secret Store. Verify the API is operational:
Verify Key Manager API
openstack secret list --limit 1

Backend Configuration Reference

Software-based AES-256 encryption. The Key Encryption Key (KEK) is base64-encoded and stored in barbican.conf. Secrets are encrypted at rest in the Barbican database.
barbican.conf
[secretstore]
enabled_secretstore_plugins = store_crypto
enabled_crypto_plugins = simple_crypto

[simple_crypto_plugin]
# 32-byte base64-encoded key encryption key
kek = dGhpcnR5X3R3b19ieXRlX2tleWtleWtleWtleWs=
ParameterDescription
kek32-byte AES key, base64-encoded — protects all project KEKs
The kek value is stored in plaintext in barbican.conf. Any host compromise exposes all secrets. This backend is suitable only for development and testing environments. Use PKCS#11, KMIP, or Vault for production.

Multi-Backend Deployments

Deploy multiple backends simultaneously — e.g., KMIP as the global default with Vault available for specific projects.
barbican.conf — multi-backend example
[secretstore]
enable_multiple_secret_stores = True
stores_lookup_suffix = software, kmip, vault

[secretstore:software]
secret_store_plugin = store_crypto
crypto_plugin = simple_crypto

[secretstore:kmip]
secret_store_plugin = kmip_plugin
global_default = True

[secretstore:vault]
secret_store_plugin = vault_plugin
RuleDescription
enable_multiple_secret_stores = TrueActivates multi-backend mode
stores_lookup_suffixComma-separated list — each maps to a [secretstore:SUFFIX] section
global_default = TrueExactly one backend must have this — handles secrets with no project preference
enabled_secretstore_pluginsIgnored when multi-backend mode is active
When switching from single-backend to multi-backend, keep the existing backend configuration as the global_default to maintain access to existing secrets.

Apply Backend Configuration

Deploy Key Manager configuration via XDeploy
xavs-ansible deploy -t barbican
Verify the service is healthy after deployment
openstack secret list --limit 1

Next Steps

Secret Stores

Configure multiple backends and assign preferred stores to projects

Security

Protect master keys, audit secret access, and certificate management

Architecture

Understand Key Manager service topology and secret lifecycle

Admin Troubleshooting

Diagnose backend connectivity and startup failures