I’m currently using non-expiring app roles (secret_id_ttl) for “host/server/application level authentication to vault”. I’d like to move this to a model where the secret ids have a more reasonable expiration, and require that they “renew/cycle" themselves periodically to keep valid.
Since secret id is not a token, there is no ‘renew’ operation, but the thought was that I’d have the approle do a “write” against the auth/approle/role/ROLENAME/secret-id endpoint.
Can I safely allow write against that path from itself? I’m waiting to make certain that I’m not giving it any ability to alter it’s configuration, only to do a secret-id rotation.
Alternatively, is there a better way to accomplish this? I suppose technically I could seed an actual token to the hosts, and use the standard renew functionality with the token.
The missing piece is that the above secret-id has an unlimited TTL. It’s valid forever.
What I’m trying to address is the combined recommendation of “don’t have a forever <secret/token/identity>” and “applications/services should auth with approle if they can’t use environment identity (k8s/instances/etc.)”.
If you create your approle secret-id with a limited ttl - say 30d or even shorter – the goal of this request is “how to renew that to get a new secret id”. If it was a token endpoint, then can just renew, but there is no equivalent operation for the secret id - other than generating a new one.
If I go “central push” model - I can certainly have something regularly go and push a new secret-id out to every location where it’s being used, but that makes that central location super-privileged.