All Projects → hootsuite → vault-ctrl-tool

hootsuite / vault-ctrl-tool

Licence: Apache-2.0 license
Simple tool for managing authentication, secrets, and leases for services.

Programming Languages

go
31211 projects - #10 most used programming language
Makefile
30231 projects

Projects that are alternatives of or similar to vault-ctrl-tool

vault-consul-kubernetes
vault + consul on kubernetes
Stars: ✭ 60 (+160.87%)
Mutual labels:  vault, hashicorp
teller
Cloud native secrets management for developers - never leave your command line for secrets.
Stars: ✭ 998 (+4239.13%)
Mutual labels:  vault, hashicorp
hashicorp-labs
Deploy locally on VM an Hashicorp cluster formed by Vault, Consul and Nomad. Ready for deploying and testing your apps.
Stars: ✭ 32 (+39.13%)
Mutual labels:  vault, hashicorp
Kubernetes External Secrets
Integrate external secret management systems with Kubernetes
Stars: ✭ 2,412 (+10386.96%)
Mutual labels:  vault, hashicorp
vault-consul-docker
Vault + Consul + Docker
Stars: ✭ 75 (+226.09%)
Mutual labels:  vault, hashicorp
Hashi Helper
Disaster Recovery and Configuration Management for Consul and Vault
Stars: ✭ 155 (+573.91%)
Mutual labels:  vault, hashicorp
vaultrs
An asynchronous Rust client library for the Hashicorp Vault API
Stars: ✭ 63 (+173.91%)
Mutual labels:  vault, hashicorp
Vault.net
.NET API client for vault
Stars: ✭ 74 (+221.74%)
Mutual labels:  vault, hashicorp
vaulter
No description or website provided.
Stars: ✭ 23 (+0%)
Mutual labels:  vault, hashicorp
hookpick
A tool to manage some operational concepts of Hashicorp Vault
Stars: ✭ 83 (+260.87%)
Mutual labels:  vault, hashicorp
Hashi Up
bootstrap HashiCorp Consul, Nomad, or Vault over SSH < 1 minute
Stars: ✭ 113 (+391.3%)
Mutual labels:  vault, hashicorp
vault-consul-swarm
Deploy Vault and Consul with Docker Swarm
Stars: ✭ 20 (-13.04%)
Mutual labels:  vault, hashicorp
Vaultron
🤖 Vault clusters Terraformed onto Docker for great fun and learning!
Stars: ✭ 96 (+317.39%)
Mutual labels:  vault, hashicorp
Ansible Vault
🔑 Ansible role for Hashicorp Vault
Stars: ✭ 189 (+721.74%)
Mutual labels:  vault, hashicorp
Vault Ui
Vault-UI — A beautiful UI to manage your Vault, written in React
Stars: ✭ 1,296 (+5534.78%)
Mutual labels:  vault, hashicorp
vault-plugin-secrets-wireguard
Vault's plugin for managing server and dynamic client configurations
Stars: ✭ 41 (+78.26%)
Mutual labels:  vault, hashicorp
Hvac
🔒 Python 2.7/3.X client for HashiCorp Vault
Stars: ✭ 839 (+3547.83%)
Mutual labels:  vault, hashicorp
Vaulted
nodejs based wrapper for HashiCorp's Vault HTTP API
Stars: ✭ 47 (+104.35%)
Mutual labels:  vault, hashicorp
vauth
VMware vSphere VM Identity Platform
Stars: ✭ 32 (+39.13%)
Mutual labels:  vault, hashicorp
nomad-box
Nomad Box - Simple Terraform-powered setup to Azure of clustered Consul, Nomad and Traefik Load Balancer that runs Docker/GoLang/Java workloads. NOTE: Only suitable in dev environments at the moment until I learn more Terraform, Consul, Nomad, Vault :P
Stars: ✭ 18 (-21.74%)
Mutual labels:  vault, hashicorp

Go Report Card

Welcome

Hi! Thanks for taking a look at vault-ctrl-tool. This is a little tool that manages, authentication, applying secrets, and refreshing leases for services. It knows how to authenticate using Kubernetes (ServiceAccounts), EC2 (registered AMIs and IAM roles), as well as existing Vault tokens for other integration purposes.

Version

This is version 2 of the Vault Control Tool -- the previous version is on a v1 branch.

It is a refactoring, replacing the logging library, and simplifying the main code logic. It also now supports secrets whose lifetime is scoped to the token being used, and has a defined failure mode. Lastly, it does away with the "file scrubber".

Its configuration file is backwards compatible, as are all the command line arguments.

Upgrading

Confusing, this version of Vault Control Tool supports version: 3 in your vault-config files. To upgrade your configuration file, you will need to add a correct lifetime to your secrets and templates. If the secrets you're fetching from Vault are token-scoped (ie, credentials created dynamically, such as from a database backend), then set lifetime: token. Otherwise if your secrets are "static", then specify lifetime: static. Templates follow a similar pattern. If your template is using token-scoped secrets, specify lifetime: token, otherwise lifetime: static.

Failure Mode

Vault Control Tool will now re-authenticate if the token it is using ceases to work (hits a tuned backend limit, cannot reach the server to renew it for too long, etc). The tool now understands that some secrets will be invalid with the new token and will fetch new values and rewrite files as needed - these values are called said to have a "token-scoped lifetime". Note that files with "static" lifetimes are never rewritten.

Failure is most likely caused by a Vault outage. For consumers, Vault outages have two forms: pre-revocation and post-revocation. Outages in pre-revocation mean token-lifetime secrets managed by Vault (database credentials, etc) will remain valid during the outage. Services can continue to happily use these until Vault restarts. This is the case if Vault is hard-down.

Outages in post-revocation mean secrets have been removed by Vault, but Vault Control Tool is unable to perform operations to obtain fresh secrets (database management is unavailable, networking issues, configuration problems, etc). In these situations the service is unable to function.

Lastly, in both situations, when a service has credentials that are externally managed (SSH certificates, AWS STS sessions), they naturally become invalid which will also cause a service to be unable to function.

Kubernetes services unable to dynamically re-read secrets are encouraged to run with a restartPolicy: Always, and delete token-scoped files after they are consumed. Services should also fail-fast if they're unable to continue to use the credentials (ie, authentication calls to remote services return errors). Kubernetes will restart the service. This will put the service into a crashloopbackoff until the Vault Control Tool is able to fetch fresh secrets.

Other Documents

If you're curious on how to build this in your environment, see BUILDING.md.

If you're integrating with Kubernetes, see KUBERNETES.md.

If you're integrating with EC2, see EC2.md.

To understand how the configuration file works, see CONFIGURATION.md.

To play with a few examples, see examples.

Authentication

Backend Supported
Kubernetes Service Account Tokens Yes
Passed in Vault tokens Yes
EC2 Metadata Yes
EC2 IAM Yes

Secrets

Backend Supported
KV Yes
KV v2 Yes
SSH (certificates) Yes
AWS Yes
Token-scoped Secrets Yes
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].