tl;dr: The authentication token is a huge entrance into infrastructure managed by Salt. Treat it with the utmost care.
Storage
SpiroFS does not authenticate or encrypt its storage.
Authentication & Authorization
SpiroFS uses macaroons as the basis of its authentication. While the tooling to utilize the more advanced features, it does mean that limitations of a token are cryptographically baked-in to the token.
Macaroon Details
SpiroFS does not use third-party caveats. Its first-party caveats are a JSON-formatted object, where the keys are limiter names and the values are arguments to those limiters.
Supported is:
not_before
: int or float, disallows if the current Unix timestamp is less than the argumentnot_after
: int or float, disallows if the current Unix timestamp is greater than the argumentproject_allow
: list of strings, disallows if the current project is not in the argumentproject_deny
: list of string, disallows if the current project is in the argument
Secret Generation
Part of macaroons is a master secret. This is generated automatically on first
use. It is generated via a cryptographically-suitable source for the system
(via Python's os.urandom()
). It is stored next to the Salt Master's private
key.