Naar de inhoud springen

Zoek in de documentatie

Typ om elke pagina van de documentatie te doorzoeken.

Documentatiemenu
How-toDoelgroep · Beheerders & ontwikkelaars

Secrets met Vault

Waar Agent-Lab zijn secrets bewaart — en hoe het ze ophaalt

Deze pagina is automatisch vanuit het Engels vertaald. Bij verschillen geldt het origineel.Het origineel in het Engels lezen

Hoe Agent-Lab Vault gebruikt

Agent-Lab gebruikt HashiCorp Vault voor veilig beheer van secrets: API-sleutels, database-inloggegevens en andere gevoelige waarden staan in Vault, niet in de database of in omgevingsbestanden. Tijdens het opstarten van de applicatie maakt de actieve ConfigSource verbinding met Vault en laadt de configuratiepayload; Integraties slaan verwijzingen op in de database, terwijl de gevoelige waarden op aanvraag uit Vault worden opgehaald.

Vault inrichten

Voor lokale ontwikkeling bevatten de Compose-stacks een Vault-server met een ontwikkelconfiguratie (UI op http://localhost:8200, inlogtoken dev-only-token). Zie De applicatie uitvoeren.

Richt voor productie de instantie in met de Terraform-module terraform/08_vault-instance/ uit de deploymenthandleiding — inclusief de init + unseal-reeks:

kubectl --namespace vault exec vault-0 -- vault operator init \
    -key-shares=1 \
    -key-threshold=1 \
    -format=json > cluster-keys.json

export VAULT_UNSEAL_KEY=$(jq -r ".unseal_keys_b64[]" cluster-keys.json)
kubectl --namespace vault exec vault-0 -- vault operator unseal $VAULT_UNSEAL_KEY

De secret-payload provisionen

VaultConfigSource leest één KV-v2-secret — mount secret, pad app_secrets — en koppelt het aan de configuratiesleutels van de applicatie. De sleutels van de payload staan in de Configuratiereferentie; schrijf de payload eenmalig weg met de Vault CLI:

vault kv put secret/app_secrets \
  api_base_url="https://<agent_lab_fqdn>" \
  cdp_url="http://<cdp_host>:9222" \
  auth_enabled="true" \
  auth_url="https://<auth_fqdn>" \
  auth_realm="<realm_name>" \
  auth_client_id="<client_name>" \
  auth_client_secret="<client_secret>" \
  broker_url="redis://:<password>@<redis_host>:6379/0" \
  db_url="postgresql://<user>:<pass>@<db_host>:5432/agent_lab" \
  db_vectors="postgresql://<user>:<pass>@<db_host>:5432/agent_lab_vectors" \
  db_checkpoints="postgresql://<user>:<pass>@<db_host>:5432/agent_lab_checkpoints"

Als de app geen statisch VAULT_TOKEN kan (of mag) gebruiken, schakelt de standaardbron automatisch over op KubernetesVaultConfigSource zodra VAULT_K8S_ROLE is ingesteld — die authenticeert met het geprojecteerde ServiceAccount-token van de pod, zodat er geen statisch token hoeft te worden geprovisioned of geroteerd.

Productie

In lijn met onze cloud-native principes raden we de Vault Kubernetes HA-setup aan. De Terraform-module 15_agent-lab-dependencies/ koppelt de runtime-inloggegevens; de app pikt alles op bij het opstarten via het configuratiecontract.