isle/tasks/secrets/propagation
2024-12-29 20:59:15 +01:00
..
polling.md More work on task planning and organization 2024-12-29 20:59:15 +01:00
putting.md More work on task planning and organization 2024-12-29 20:59:15 +01:00
README.md Spec out some new tasks, re-organize old ones 2024-12-24 09:39:01 +01:00

Secret Propagation

Secrets are pieces of data which are not (necessarily) shared amongst all hosts in a network. There are three clases of secrets:

  • Secrets which are particular to a single host, and will never leave that host. These values are not managed using the secrets manager, but rather are kept in the bootstrap.

  • Secrets which only a subset of hosts have. These secrets may be propagated to other hosts, either automatically or by request of a user.

  • Secrets which all hosts have. These are not really "secrets" from the network's perspective, but are convenient to manage as such.

Secret propagation is related to the second two cases. Secrets to be propagated are placed in a known sub-directory in the global bucket, destined either for a single host or all hosts. When destined for a single host they are encrypted using that host's public encryption key.

The known sub-directory is /secrets.

Secrets destined for all hosts are placed within that directory as-is, named for the ID, in plaintext. These are never deleted, even though new hosts will be given them as part of their initial bootstrap.

Secrets destined for a particular host are placed under /secrets/<hostname>, named after the ID, encrypted using the destination host's public encryption key. Once the destination host grabs a secret it will be deleted.