🏗️ Architektura Vault
Architektura logiczna
Section titled “Architektura logiczna”Obiekty w HashiCorp Vault Cluster
Section titled “Obiekty w HashiCorp Vault Cluster”Sekrety używane podczas bootstrap
Section titled “Sekrety używane podczas bootstrap”User SSH keys:
Relacje repozytoriów i zależności
Section titled “Relacje repozytoriów i zależności”ansible/requirements.yml
Section titled “ansible/requirements.yml”Plik gdzie są zdefiniowane zależności Ansible. Zawiera:
9 external roles (pobierane z gitlab.com/dev.rachuna/artifacts/ansible-roles/):
set-timezone,users-management,sudo,set-hostname,ssh-hardening,install-packages,keepalived,haproxy,certificates
2 local roles (zdefiniowane w tym repozytorium):
install-vault— instalacja i konfiguracja HashiCorp Vaultvault-auto-unseal— systemd service do automatycznego unseal’u Vault
iac-vault/main.tf.json + submodules
Section titled “iac-vault/main.tf.json + submodules”Plik główny z modułami OpenTofu. Struktura:
iac-vault/providers.tf
Section titled “iac-vault/providers.tf”Konfiguracja providera Vault:
- Terraform/OpenTofu: Wymagana nowoczesna wersja
- Vault provider: hashicorp/vault
- Default address:
https://vault-1006.rachuna.dev:8200(można zmienić zmiennąvault_address) - TLS verification: Wyłączona w dev (wymaga włączenia w production)
⚠️ Słabe strony
Section titled “⚠️ Słabe strony”Auto-unseal — niesecure w current implementation
Section titled “Auto-unseal — niesecure w current implementation”Rekomendacja: Migracja na Vault Transit Seal (self-hosted) lub AWS KMS/Google Cloud KMS.
📁 Struktura repozytorium
Section titled “📁 Struktura repozytorium”Topologia fizyczna
Section titled “Topologia fizyczna”Stos serwisów na każdym węźle
Section titled “Stos serwisów na każdym węźle”| Serwis | Port | Rola | Config |
|---|---|---|---|
| Keepalived | VRRP | VIP failover (10.3.1.254) | FQDN-based health check na :8200 |
| HAProxy | 443 (HTTPS) | Load balancer, SNI routing | Frontendz: vault DNS names |
| Vault | 8200 (HTTP), 8201 (cluster) | Secrets + PKI engine | Storage: RAFT, TLS enabled |
Routing SNI (HAProxy)
Section titled “Routing SNI (HAProxy)”Parametry Keepalived
Section titled “Parametry Keepalived”- Virtual IP: 10.3.1.254/24 na
eth0 - VRRP instance:
VAULT_VIP, virtual_router_id 254 - Health check: 5s interval, HTTP GET
https://127.0.0.1:8200/v1/sys/health?standbyok=true&sealedcode=503 - Advert interval: 1s
- Failover: prioritety: 200 (MASTER vault-1005) → 120 (MASTER vault-1006) → 110 (BACKUP vault-1007)