173 lines
5.4 KiB
Markdown
173 lines
5.4 KiB
Markdown
---
|
|
title: OpenBao
|
|
created: 2026-06-06
|
|
updated: 2026-06-06
|
|
type: app
|
|
tags: [catalogue, password-manager, secrets, certificates, enterprise, go]
|
|
confidence: high
|
|
contested: false
|
|
sources: [https://selfh.st/apps/?tag=Password+Manager, https://openbao.org/]
|
|
---
|
|
# 🔑 OpenBao
|
|
|
|
> **Fork open-source d'HashiCorp Vault** (suite au changement de licence BSL). Stockage de secrets, certificats, et clés pour les entreprises.
|
|
|
|
## 📋 Informations Générales
|
|
|
|
| Champ | Valeur |
|
|
| :--- | :--- |
|
|
| **Site web** | [openbao.org](https://openbao.org/) |
|
|
| **GitHub** | [openbao/openbao](https://github.com/openbao/openbao) |
|
|
| **License** | MPL-2.0 (Mozilla Public License) |
|
|
| **Langage** | Go |
|
|
| **Étoiles GitHub** | 6k ⭐ |
|
|
| **Dernière MAJ** | 2026-06-05 |
|
|
| **Catégorie** | [[cat-password-manager|Password Manager]] |
|
|
|
|
## 📝 Description
|
|
|
|
**OpenBao** est un **fork communautaire d'HashiCorp Vault**, créé en 2024 suite au changement de licence de Vault (de MPL vers BSL). OpenBao garde la **même API et les mêmes features** que Vault, mais reste **100% open source** :
|
|
|
|
- ✅ **Stockage de secrets** : clés API, tokens, mots de passe
|
|
- ✅ **PKI / Certificats** : génération de certificats X.509
|
|
- ✅ **Transit** : chiffrement/ déchiffrement à la volée (encryption-as-a-service)
|
|
- ✅ **Storage backends** : Consul, S3, PostgreSQL, File, etc.
|
|
- ✅ **Auth methods** : tokens, Kubernetes, AWS, GitHub, LDAP, OIDC
|
|
- ✅ **Audit log** : tous les accès loggés
|
|
- ✅ **Policies** en HCL : contrôle d'accès fin
|
|
- ✅ **UI web** : pour la gestion
|
|
- ✅ **Auto-unseal** : avec AWS KMS, GCP CKMS, Azure Key Vault
|
|
|
|
**Public cible** : **entreprises** qui ont besoin d'une infrastructure de secrets **critique**, avec **HA, performance, et compliance**.
|
|
|
|
## 🚀 Installation
|
|
|
|
### Option 1 : Docker Compose (mode dev)
|
|
|
|
```yaml
|
|
# docker-compose.yml
|
|
version: '3.8'
|
|
services:
|
|
openbao:
|
|
image: openbao/openbao:latest
|
|
container_name: openbao
|
|
restart: unless-stopped
|
|
ports:
|
|
- "8200:8200"
|
|
environment:
|
|
- VAULT_DEV_ROOT_TOKEN_ID=root
|
|
- VAULT_DEV_LISTEN_ADDRESS=0.0.0.0:8200
|
|
cap_add:
|
|
- IPC_LOCK
|
|
labels:
|
|
- "traefik.enable=true"
|
|
- "traefik.http.routers.openbao.rule=Host(`bao.example.com`)"
|
|
- "traefik.http.routers.openbao.entrypoints=websecure"
|
|
- "traefik.http.routers.openbao.tls.certresolver=letsencrypt"
|
|
```
|
|
|
|
> ⚠️ **Mode dev uniquement**. En production, utiliser un backend de stockage externe et configurer auto-unseal.
|
|
|
|
### Option 2 : Production (Linux natif)
|
|
|
|
```bash
|
|
# Ajouter le repo OpenBao
|
|
wget -O- https://packages.openbao.org/openbao/openbao-key.gpg | gpg --dearmor | sudo tee /usr/share/keyrings/openbao-key.gpg
|
|
echo "deb [signed-by=/usr/share/keyrings/openbao-key.gpg] https://packages.openbao.org/deb/ stable main" | sudo tee /etc/apt/sources.list.d/openbao.list
|
|
sudo apt update
|
|
sudo apt install openbao
|
|
|
|
# Démarrer
|
|
sudo systemctl enable openbao
|
|
sudo systemctl start openbao
|
|
|
|
# Initialiser
|
|
bao operator init
|
|
bao operator unseal
|
|
```
|
|
|
|
## ⚙️ Configuration Initiale
|
|
|
|
1. **Init** : `bao operator init` (génère les unseal keys + root token)
|
|
2. **Unseal** : fournir 3 des 5 unseal keys (configurable)
|
|
3. **Login** : `bao login <root_token>`
|
|
4. **Activer un auth method** : `bao auth enable kubernetes/`
|
|
5. **Activer un secret engine** : `bao secrets enable -path=kv kv-v2`
|
|
6. **Écrire des policies** : en HCL
|
|
7. **Connecter vos apps** : via token, K8s service account, etc.
|
|
|
|
### Exemple : secret KV v2
|
|
|
|
```bash
|
|
# Écrire un secret
|
|
bao kv put -mount=secret db/password value=supersecret
|
|
|
|
# Lire
|
|
bao kv get -mount=secret db/password
|
|
```
|
|
|
|
### Exemple : PKI
|
|
|
|
```bash
|
|
# Activer PKI
|
|
bao secrets enable pki
|
|
|
|
# Créer la CA root
|
|
bao pki/root/generate/internal common_name=example.com ttl=87600h
|
|
|
|
# Créer un rôle
|
|
bao pki/roles/example-dot-com allowed_domains=example.com ttl=1h
|
|
|
|
# Délivrer un cert
|
|
bao pki/issue/example-dot-com common_name=app.example.com
|
|
```
|
|
|
|
## 🔄 Alternatives
|
|
|
|
### Open Source
|
|
- [[app-infisical]] — Plus simple à prendre en main
|
|
- **HashiCorp Vault** — Le standard (mais BSL depuis 2024)
|
|
- **Bitnami Sealed Secrets** — Pour K8s uniquement
|
|
- **SOPS** (Mozilla) — File-based encryption
|
|
|
|
### Comparaison OpenBao vs Vault
|
|
|
|
| Critère | OpenBao | HashiCorp Vault |
|
|
| :--- | :--- | :--- |
|
|
| License | MPL-2.0 | BSL (restrictive) |
|
|
| API | Identique à Vault | Identique |
|
|
| Features | Toutes | Toutes |
|
|
| Enterprise | Non | Oui (payant) |
|
|
| Communauté | Petite mais grandissante | Énorme |
|
|
| Documentation | Plus jeune | Très mature |
|
|
|
|
**Verdict** : OpenBao pour rester **100% open source** et éviter la BSL. Vault si vous avez besoin du **support enterprise HashiCorp**.
|
|
|
|
### Propriétaires (ce qu'OpenBao remplace)
|
|
- **HashiCorp Vault Enterprise** (cher)
|
|
- **AWS Secrets Manager** (cher à l'usage)
|
|
- **CyberArk** (très cher, enterprise)
|
|
- **Azure Key Vault** (cher)
|
|
|
|
## 🔐 Sécurité
|
|
|
|
- **Chiffrement AES-256-GCM** au repos
|
|
- **Shamir's Secret Sharing** pour l'unseal
|
|
- **mTLS** pour la communication
|
|
- **Audit log** : fichier, syslog, socket
|
|
- **Policies** : contrôle d'accès fin
|
|
- **HCP** (HashiCorp Boundary) pour SSH/certificats
|
|
|
|
## 📚 Ressources
|
|
|
|
- [Site officiel](https://openbao.org/)
|
|
- [Documentation](https://openbao.org/docs/)
|
|
- [GitHub openbao/openbao](https://github.com/openbao/openbao)
|
|
- [Migration guide depuis Vault](https://openbao.org/docs/migration/)
|
|
|
|
## Pages Liées
|
|
- [[cat-password-manager]] — Catégorie
|
|
- [[app-infisical]] — Plus simple
|
|
- [[secret-management]] — Concepts
|
|
- [[tls-https]] — PKI et certificats
|