Skip to main content

Vault-Storage

A Vault is an encrypted filesystem, used to store and manage secrets.

Each Vault contains a shared, singleton reference to the EFS, and apply their reads and writes to a specific directory on the EFS (matching the vault's ID).

┌──────────────────────────────────────────────┐
│ │
│ VaultManager │
│ │
│ ┌──────────────────────────────────────────┐ │
│ │ VaultMap │ │
│ │ (VaultId -> VaultData) │ │
│ └─────────────────────┬────────────────────┘ │
│ │ │
│ ┌──────────────┼──────────────┐ │
│ │ │ │ │
│ ┌──────▼─────┐ ┌──────▼─────┐ ┌──────▼─────┐ │
│ │ Vault Foo │ │ Vault Bar │ │ Vault Baz │ │
│ │ /123sdf984 │ │ /34891zxf! │ │ /a!?@#8911 │ │
│ └──────┬─────┘ └──────┬─────┘ └──────┬─────┘ │
│ │ │ │ │
│ │ │ │ │
│ ┌─────▼──────────────▼──────────────▼─────┐ │
│ │ EncryptedFS │ │
│ └─────────────────────────────────────────┘ │
│ │
└──────────────────────────────────────────────┘

However, the root of the vaults filesystem is contained inside a contents folder specific for that vault, meaning that a vault cannot access file outside of its containing directory. The git metadata is stored inside the vault directory, but outside of the contents directory so as to not interfere with any secrets.

/vaults
/aiwr84y3f83f
/.git
/contents
secret-1
secret-2