Vault Key Ceremony CLI

High-assurance secrets operations should not be tribal shell scripts.

At Swisscom, Vault rekey and generate-root ceremonies depended on PowerShell and Bash scripts that differed by operating system, were hard to version, and were easy to get wrong under pressure.

I designed and implemented a Go CLI that turns those flows into a maintained product:

  • Interactive UX with Vault health checks (/sys/health) and token validation.
  • Rekey and generate-root flows with human gates on PIN, passphrase and quit — GPG and YubiKey (keytocard).
  • One binary for macOS, Linux and Windows; embedded version; publish to the internal artifact store plus a container image; reject if the artifact is not the compiled binary.
  • GitLab CI SSDLC: SAST, secret detection, dependency and container scanning, golangci-lint, cross-compile, coverage gate ~95%.
  • Tests with JSON fixtures, fake Vault HTTP, and isolated GPG homes.

Stack

Go · Vault Enterprise API · GPG/YubiKey · GitLab CI · Make · Docker · SemVer.

Why it matters

Less human error and less tribal knowledge on the few workflows that must never be casual. Same idea as the rest of my work: turn a security process into a platform other people can operate.

Internal Swisscom tooling — no public repository.