Logga in Gratis för alltid Kom igång

Infrastruktur

Inga hemligheter i konfigurationen. Inga hemligheter i loggar.

Varje plattform, varje orkestrerare, varje CI-runner. Proxyn fungerar med allt som gör HTTP-anrop. CLI fungerar med allt som kan köra skalkommandon. Om ditt system är äldre än din karriär, fungerar det fortfarande.

Proxyn är den universella integrationen.

Om din arbetsbelastning gör HTTPS-anrop injicerar Clavitor-proxyn inloggningsuppgifter på nätverksnivå. Inga kodändringar. Inga SDK:er. Inga hemligheter i miljövariabler, konfigurationsfiler eller loggar. Ställ in HTTPS_PROXY och din befintliga kod fungerar oförändrad – proxyn löser clavitor://-referenser i request-headers innan anropet lämnar maskinen.

$ 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

Containrar

Docker och Kubernetes

Docker Compose

Kör Clavitor-proxyn på värden och peka dina containrar mot den. Inloggningsuppgifter injiceras transparent i utgående anrop – inga hemligheter i miljövariabler, inga hemligheter inbakade i images.

# 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"

Eller använd render för att lösa en konfigurationsmall vid uppstart:

$ clavitor-cli render app.config.template.yml | docker compose -f - up

Kubernetes

Skapa hemligheter från valvet utan att hårdkoda värden i manifest:

$ 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 injektion av inloggningsuppgifter vid runtime, driftsätt proxyn som en sidecar-container i din pod. Applikationscontainrar ställer in HTTPS_PROXY till sidecar. Inloggningsuppgifter löses per anrop, lagras aldrig i etcd.

IaC

Terraform, Ansible, Pulumi

Terraform

Lös inloggningsuppgifter till provider-miljön innan terraform apply. AWS-providern läser sina inloggningsuppgifter från standardmiljövariabler – Clavitor fyller i dem inline, .tf-filen nämner ingen hemlighet.

$ 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

provider "aws" {}-blocket förblir tomt i din kod. Samma mönster fungerar för alla Terraform-providers som stöder env-var-inloggningsuppgifter (vilket de flesta gör).

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

Token skickas via stdin i varje exempel nedan – håller den borta från argv så att den inte visas i /proc/<pid>/cmdline eller byggloggar.

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

Nycklar lagrade i valvet

$ clavitor-cli get "Deploy Key" --field private_key | ssh-add -
$ ssh deploy@production

Privatnyckeln skickas direkt till ssh-add. Den rör aldrig disk, visas aldrig i shell-historiken och rensas från agenten när sessionen avslutas.

Äldre system

Om den gör ett HTTP-anrop fungerar det.

Proxyn bryr sig inte om vilket språk som gjorde anropet. COBOL, FORTRAN, Perl, Visual Basic, ett 30 år gammalt batchjobb – om processen gör en HTTPS-begäran, avlyssnar proxyn den, löser clavitor://-referensen och injicerar de verkliga inloggningsuppgifterna. Inga kodändringar krävs.

För system som inte kan göra HTTP-anrop, använd clavitor-cli render för att lösa en konfigurationsmall innan processen startar. Mallen är säker att lagra var som helst. Den lösta utdatan går till stdin eller en temporär fil med begränsade behörigheter.

# 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

Mönstret är alltid detsamma.

CLI för skript och pipelines. Proxy för HTTP-arbetsbelastningar. Render för konfigurationsfiler. Varje hemlighet löst vid runtime, aldrig lagrad.