Infrastruktur
Keine Geheimnisse in der Konfiguration. Keine Geheimnisse in Logs.
Jede Plattform, jeder Orchestrator, jeder CI-Runner. Der Proxy funktioniert mit allem, was HTTP-Aufrufe tätigt. Die CLI funktioniert mit allem, was Shell-Befehle ausführen kann. Wenn Ihr System älter ist als Ihre Karriere, funktioniert es trotzdem.
Der Proxy ist die universelle Integration.
Wenn Ihre Workload HTTPS-Aufrufe tätigt, injiziert der Clavitor-Proxy Anmeldedaten auf Netzwerkebene. Keine Codeänderungen. Keine SDKs. Keine Geheimnisse in Umgebungsvariablen, Konfigurationsdateien oder Logs. Setzen Sie HTTPS_PROXY und Ihr bestehender Code funktioniert unverändert – der Proxy löst clavitor://-Referenzen in Anforderungsheadern auf, bevor die Anfrage die Maschine verlässt.
$ export HTTPS_PROXY=http://localhost:1983 $ curl -H "Authorization: Bearer clavitor://Stripe API/key" \ https://api.stripe.com/v1/charges # The agent never sees sk_live_... — only clavitor:// appears in logs
Container
Docker und Kubernetes
Docker Compose
Führen Sie den Clavitor-Proxy auf dem Host aus und leiten Sie Ihre Container darauf. Anmeldedaten werden transparent in ausgehende Anfragen injiziert – keine Geheimnisse in Umgebungsvariablen, keine Geheimnisse in Images eingebacken.
# On the Docker host $ clavitor-proxy serve &
# docker-compose.yml — containers route through the host-mode proxy
services:
app:
environment:
- HTTPS_PROXY=http://host.docker.internal:1983
extra_hosts:
- "host.docker.internal:host-gateway"Oder verwenden Sie render, um eine Konfigurationsvorlage beim Start aufzulösen:
$ clavitor-cli render app.config.template.yml | docker compose -f - up
Kubernetes
Erstellen Sie Geheimnisse aus dem Tresor, ohne Werte in Manifesten fest zu codieren:
$ kubectl create secret generic app-secrets \ --from-literal=db-pass="$(clavitor-cli get 'Production DB' --field password)" \ --from-literal=api-key="$(clavitor-cli get 'Stripe API' --field key)"
Für die Laufzeitinjektion von Anmeldedaten stellen Sie den Proxy als Sidecar-Container in Ihrem Pod bereit. Anwendungscontainer setzen HTTPS_PROXY auf den Sidecar. Anmeldedaten werden pro Anfrage aufgelöst, niemals in etcd gespeichert.
IaC
Terraform, Ansible, Pulumi
Terraform
Lösen Sie Anmeldedaten in der Provider-Umgebung auf, bevor terraform apply ausgeführt wird. Der AWS-Provider liest seine Anmeldedaten aus Standard-Umgebungsvariablen – Clavitor füllt diese inline, die .tf-Datei erwähnt kein Geheimnis.
$ export AWS_ACCESS_KEY_ID=$(clavitor-cli get "AWS Root" --field access_key_id) $ export AWS_SECRET_ACCESS_KEY=$(clavitor-cli get "AWS Root" --field secret_key) $ terraform apply
Der provider "aws" {}-Block bleibt in Ihrem Code leer. Dasselbe Muster funktioniert für jeden Terraform-Provider, der Umgebungsvariablen-Anmeldedaten unterstützt (was die meisten tun).
Ansible
- name: Get database password
command: clavitor-cli get "Production DB" --field password
register: db_pass
no_log: true
- name: Configure app
template:
src: app.conf.j2
vars:
db_password: "{{ db_pass.stdout }}"Pulumi
import { execSync } from 'child_process';
const dbPass = execSync('clavitor-cli get "Production DB" --field password').toString().trim();
new aws.rds.Instance("db", { masterPassword: new pulumi.secret(dbPass) });CI/CD
GitHub Actions, GitLab CI, Jenkins
Das Token wird in allen untenstehenden Beispielen über stdin übergeben – es wird aus argv herausgehalten, damit es nicht in /proc/<pid>/cmdline oder Build-Logs erscheint.
GitHub Actions
- name: Deploy
env:
CLAVITOR_TOKEN: ${{ secrets.CLAVITOR_TOKEN }}
run: |
echo "$CLAVITOR_TOKEN" | clavitor-cli init
kubectl create secret generic app-secrets \
--from-literal=api-key="$(clavitor-cli get 'Deploy Token' --field key)" \
--dry-run=client -o yaml | kubectl apply -f -GitLab CI
deploy:
script:
- echo "$CLAVITOR_TOKEN" | clavitor-cli init
- clavitor-cli get "Deploy Key" --field private_key | ssh-add -
- ssh deploy@production "systemctl restart app"Jenkins
pipeline {
stages {
stage('Deploy') {
steps {
sh 'echo "$CLAVITOR_TOKEN" | clavitor-cli init'
sh 'clavitor-cli get "Deploy Key" --field private_key | ssh-add -'
sh 'ssh deploy@production "systemctl restart app"'
}
}
}
}SSH
Im Tresor gespeicherte Schlüssel
$ clavitor-cli get "Deploy Key" --field private_key | ssh-add - $ ssh deploy@production
Der private Schlüssel wird direkt in ssh-add übergeben. Er berührt niemals die Festplatte, erscheint nie im Shell-Verlauf und wird aus dem Agenten gelöscht, wenn die Sitzung endet.
Altsysteme
Wenn es einen HTTP-Aufruf tätigt, funktioniert es.
Dem Proxy ist es egal, welche Sprache die Anfrage gestellt hat. COBOL, FORTRAN, Perl, Visual Basic, ein 30 Jahre alter Batch-Job – wenn der Prozess eine HTTPS-Anfrage stellt, fängt der Proxy sie ab, löst die clavitor://-Referenz auf und injiziert die tatsächlichen Anmeldedaten. Keine Codeänderungen erforderlich.
Für Systeme, die keine HTTP-Aufrufe tätigen können, verwenden Sie clavitor-cli render, um eine Konfigurationsvorlage aufzulösen, bevor der Prozess startet. Die Vorlage kann sicher überall gespeichert werden. Die aufgelöste Ausgabe geht an stdin oder eine temporäre Datei mit eingeschränkten Berechtigungen.
# Resolve credentials before the batch job starts $ clavitor-cli render db-connect.template.cfg > /tmp/db-connect.cfg $ chmod 600 /tmp/db-connect.cfg $ /opt/legacy/batch-job --config /tmp/db-connect.cfg $ rm /tmp/db-connect.cfg
Das Muster ist immer dasselbe.
CLI für Skripte und Pipelines. Proxy für HTTP-Workloads. Render für Konfigurationsdateien. Jedes Geheimnis wird zur Laufzeit aufgelöst, niemals gespeichert.