<vault>
The line sets the token the node uses to authenticate with the vault. The token is created manually in Vault itself; PowerMTA neither requests nor renews it.
Almost everything that works through the vault needs it: reading signing keys, the receiving certificate and its password, checking a submission password via LDAP.
And it sits in the configuration in plain text. That is the essence of the trade-off: instead of a dozen secrets in the node’s files, one remains — but it gives access to all the others.
The value is the token string. What to provide for along with it:
| What | Why |
|---|---|
| limited token rights in Vault | the node needs to read specific paths, not the whole vault |
| expiration and renewal | an expired token = the node cannot read secrets, and so does not start |
| permissions on the configuration file | the token is in it in plain text |
| a separate token per node | otherwise revocation hits the whole fleet at once |
# the token sits in the configuration in the clear — it is the only secret left <vault> server-url https://myvault:4500 access-token akhdfasdhf786282684734kjsdhf</vault>
what people get wrong and how it ends2 mistakes▶
our experience
our experience
2 relations
curl -s -H 'X-Vault-Token: TOKEN' https://myvault:4500/v1/sys/health
3 articles
◇Secrets in an external vaultSigning keys can be kept in HashiCorp Vault: the configuration keeps a path, and the engine fetches the key over HTTP and keeps it in memory without writing it to disk.◇Who is allowed to submit mail and for whom to accept itOut of the box, the node accepts submission only from the machine itself; two different questions — “who can send through us” and “for whose addresses we accept mail” — are answered by different directives.◇The group that grants management rightsMembership in the pmta group gives an unprivileged user the right to call the node’s commands and use submission.