Imagine you're building an e-commerce application using microservices. Your application has several services, including the Order Service, Payment Service, Inventory Service, and Notification Service. Each service needs credentials to communicate with databases, external APIs, or other infrastructure. For example:
These credentials are called secrets. A secret is any sensitive value that must be protected from unauthorized access, such as a password, API key, private key, or authentication token.
In a monolithic application, managing secrets might involve configuring a few environment variables. But in a microservices architecture, you might have dozens of services running across hundreds of containers. Each service needs access to different secrets, and those secrets must be distributed securely, updated regularly, and protected from accidental exposure.
This is the problem secrets management solves. Secrets management is the process of securely storing, distributing, accessing, rotating, and revoking sensitive credentials throughout their lifecycle.