Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Table of Contents

This page is aimed to consolidate and document all known requirements (both functional and non-functional) applicable to FOLIO secrets management.

Use Use cases

  1. A user (administrator) wants to create/manage secrets through the secret storage directly and allow FOLIO modules to access those secrets (read-only access)

  2. A user (administrator) wants to create/manage secrets through FOLIO. E.g., a module might need to store credentials to some external system (like FTP or SMTP server credentials, API keys etc. UI forms are involved as well for interaction with a user
  3. A module wants to create/manage secrets so that a user is not even in the loop here, and the interaction is only between the module and secret storage. Examples are modules which are creating system/tenant users (like mod-pubsub), or a case with generating and storing signing keys in such a way that all instances of the mod-authtoken container can easily stay aligned.

Secret types

The following secret types are to be supported:

Secret typeFormatWho creates?Who accesses?How does it work now?Additional notescomments
login & passwordString
  • FOLIO resource administrator
  • external system administrator
  • modules working with any resource with logo-pass
different modules use their own storages for that
API keyString
  • administrator
  • system
  • modules working with APIs
different modules use their own storages for that
tokenString
  • system
  • mod-authtoken
  • modules working with tokens


SSL certificatefile
  • administrator
  • modules using certificate for work with Kafka

Cannot be stored in SSM, Vault etc.

Encrypted S3?

...

Secret store mechanismLinksEnvironments or needsEnvironment & Comments
HarshiCorp Vaulthttps://www.vaultproject.io/onOn-premises installations
AWS Systems Manager Parameter Store ( or just AWS SSM)https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-parameter-store.htmlAs an option for AWS cloud hosting
AWS Secrets Managerhttps://aws.amazon.com/secrets-manager/As an option for AWS cloud hosting
properties-file
for For dev / test needs
environment variables(question)

K8S secrets

(question)

...


Standard EC2 machine with all dockers on it (native docker, so Env Var are only available) - IndexData (snapshots, testing)

Kubernetes Secrets


  • K8S Secrets with Env Var is used there to ensure compatibility with native docker deployment
  • Rancher has UI for displaying & configuration

User interface for Secrets management

(question) Home-grown unified web UI vs. store-specific UIs

...

...

A tenant should only access its own secrets

Notes:

  • tenants tenant are FOLIO internal term, so that it seems now that access verification on tenant level cannot be supported on Secret store level
  • tenant ID can be used as a part of secret IDname

(question) Adding new secrets (even for a new tenant) should be available without restart

...