granter role unit: no-op when the granter login works, delete the token after success
This commit is contained in:
parent
0c6e8fc5a2
commit
3db835fb57
1 changed files with 42 additions and 3 deletions
|
|
@ -3182,6 +3182,17 @@ in
|
|||
# revoked, or minted without that policy.
|
||||
if ! mounted="$(bao auth list -format=json 2>"$err")"; then
|
||||
if ${baoStoreUp}; then
|
||||
# A dead token beside a working granter is the steady state of
|
||||
# a host that finished bootstrap and kept the file. The
|
||||
# granter's own login is the proof. A fresh token still takes
|
||||
# the full path below, since the granter cannot read back its
|
||||
# own policy to compare it.
|
||||
if BAO_CLIENT_CERT=${lib.escapeShellArg baoDeploy.granterClientCertFile} \
|
||||
BAO_CLIENT_KEY=${lib.escapeShellArg baoDeploy.granterClientKeyFile} \
|
||||
bao login -method=cert -token-only >/dev/null 2>&1; then
|
||||
echo "granter role already in place; bootstrap token not needed"
|
||||
exit 0
|
||||
fi
|
||||
echo ${lib.escapeShellArg "the store is unsealed but refused the bootstrap token in ${baoDeploy.bootstrapTokenFile}: it has expired, been revoked, or does not carry the bao-bootstrap policy."} >&2
|
||||
echo "one-time step, as root on this host (docs/getting-started/setup.md):" >&2
|
||||
${lib.concatMapStringsSep "\n" (l: "echo ${lib.escapeShellArg " ${l}"} >&2") granterSetupSteps}
|
||||
|
|
@ -3224,6 +3235,9 @@ in
|
|||
display_name=${lib.escapeShellArg granterCn} \
|
||||
token_ttl=15m \
|
||||
token_max_ttl=15m
|
||||
|
||||
# Single-use by design; the setup procedure's last step.
|
||||
rm -f ${lib.escapeShellArg baoDeploy.bootstrapTokenFile}
|
||||
'';
|
||||
};
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue