Vault
Auto-auth method: application roles (AppRole)
The approle
method reads in a role ID and a secret ID from files and sends
the values to the AppRole Auth
method.
The method caches values and it is safe to delete the role ID/secret ID files after they have been read. In fact, by default, after reading the secret ID, the agent will delete the file. New files or values written at the expected locations will be used on next authentication and the new values will be cached.
Configuration
role_id_file_path
(string: required)
- The path to the file with role IDsecret_id_file_path
(string: optional)
- The path to the file with secret ID. If not set, only therole-id
will be used. In that case, the AppRole should havebind_secret_id
set tofalse
otherwise Vault Agent wouldn't be able to login.remove_secret_id_file_after_reading
(bool: optional, defaults to true)
- This can be set tofalse
to disable the default behavior of removing the secret ID file after it's been read.secret_id_response_wrapping_path
(string: optional)
- If set, the value atsecret_id_file_path
will be expected to be a Response-Wrapping Token containing the output of the secret ID retrieval endpoint for the role (e.g.auth/approle/role/webservers/secret-id
) and the creation path for the response-wrapping token must match the value set here.
Example configuration
An example configuration, using approle to enable auto-auth and creating both a plaintext token sink and a response-wrapped token sink file, follows:
pid_file = "./pidfile"
vault {
address = "https://127.0.0.1:8200"
}
auto_auth {
method {
type = "approle"
config = {
role_id_file_path = "roleid"
secret_id_file_path = "secretid"
remove_secret_id_file_after_reading = false
}
}
sink {
type = "file"
wrap_ttl = "30m"
config = {
path = "sink_file_wrapped_1.txt"
}
}
sink {
type = "file"
config = {
path = "sink_file_unwrapped_2.txt"
}
}
}
api_proxy {
use_auto_auth_token = true
}
listener "tcp" {
address = "127.0.0.1:8100"
tls_disable = true
}
template {
source = "/etc/vault/server.key.ctmpl"
destination = "/etc/vault/server.key"
}
template {
source = "/etc/vault/server.crt.ctmpl"
destination = "/etc/vault/server.crt"
}