swarm-secret-client: hives no longer read swarm/services/*
The hive policy rendered by policy::render granted every hive cert read on secret/data/swarm/services/*, which holds each swarm service's OIDC client secret. No reader of that tree authenticates with a hive cert: grafana, the otel collector and the store forwarder each read with their own leaf, and the bao UI's secret is read by the store's granter. render() now emits two stanzas: swarm/agents/* and the hive's own swarm/hives/<hive>/*. Kind::Service had no other caller and is removed. Docs and comments that described the grant as a decision are rewritten to the current state. Closes #4960
This commit is contained in:
parent
3bfdf0dfe0
commit
2505008b83
13 changed files with 82 additions and 136 deletions
|
|
@ -63,9 +63,8 @@ pub fn agent_queue_path(agent: &str) -> Result<String, Error> {
|
|||
/// The path holding `swarm-controller`'s own OIDC client secret: the identity
|
||||
/// it connects to the queue with, and mints its other bearer tokens from.
|
||||
///
|
||||
/// Under [`Kind::Controller`] because no hive's policy reads that kind. The
|
||||
/// client may read every hive's status, so a copy under `services/`, which
|
||||
/// every hive reads, would hand that reach to every hive.
|
||||
/// Under [`Kind::Controller`] because no hive's policy reads that kind, and
|
||||
/// this client may read every hive's status.
|
||||
///
|
||||
/// The nix half is `swarm-secret-publisher.nix`, which writes it, and
|
||||
/// `swarm-bao.nix`'s `controllerPolicyText`, which grants the read.
|
||||
|
|
|
|||
Loading…
Reference in a new issue