Secrets management
Secrets management
In general secrets can be divided into three categories
- Personal secrets
- Secrets shared by a team or group
- Secrets used by software/applications
Of these the first one is generally considered to be outside centralized secrets management, but the latter two should be kept safe.
The current guidelines for the University of Helsinki recommend using Azure Key Vaults for secret management for the latter two categories.
Personal secrets
The recommendation is to use a service that creates crypthographically secure passwords. Examples of this are Keepass and it's variations, and online services. The author of this page recommends a local solution over a cloud solution, but this also means backups fall on the user.
For more info about using keepass, check the helpdesk wiki site on it: https://helpdesk.it.helsinki.fi/ohjeet/tietokone-ja-tulostaminen/tyoasemapalvelu/salasanojen-hallintaohjelma-keepass
Secrets for teams and software
For all of these, secrets for different environments, or at least for prod and non-prod systems should be kept separate.
For secrets that are meant to be shared between humans, some easy solutions are listed below. For all of these, users are responsible for backups, versioning, key rotation, keeping their local copy up-to-date and secure sharing of possible main password. Thus, Azure Key Vault may prove easier to use.
| What | Technoiogies | Where to store | Notes |
|---|---|---|---|
| A shared file with a single secret that opens it. | For example ansible-vault or keepass | git, onedrive, management server | Less secure than other options, but easier to use. The main secret could be stored in Azure Key Vault to make sharing it easier. |
| gpg-encypted pass that can only be opened by a list of people | gpg (or gpg2) and pass | git or management server | Requires technical knowledge, every time a secret is modified (deleted, added, changed) a new commit + encryption is required. Users need a separate way to share their most recent gpg public keys. May lead to git conflicts and issues when keys expire. Better solution when the Secret can only be read by a known subset of identities |
For secrets used by software or machines, a central secrets management solution is preferable.
- Of these, the University officially supports only Azure Key Vault
Since many programming languages support reading secrets directly from Azure Key Vault (and Kubernetes has external tools for this), needing to have the secrets locally should be avoided when possible. The Gitops and Secrets: State of the union talk from ArgoCon Europe 2026 mentions that most programming languages already have support for checking if a file containing the secrets changes, and how everyone should be reloading this file when the change happens so that secret rotation can happen automatically and seamlessly.