Методы автоматической аутентификации. AppRole
Метод approle считывает идентификатор роли и секретный идентификатор из файлов и отправляет значения в метод AppRole Auth.
Метод кэширует значения, и можно смело удалять файлы с идентификатором роли/секретным идентификатором после их считывания. На самом деле, по умолчанию после считывания секретного идентификатора агент удаляет файл. Новые файлы или значения, записанные в ожидаемых местах, будут использоваться при следующей аутентификации, а новые значения будут кэшироваться.
1. Конфигурация
-
role_id_file_path(string: required)- путь к файлу с идентификатором роли. -
secret_id_file_path(string: optional)- путь к файлу с секретным идентификатором. Если не задано, будет использоваться толькоrole-id. В этом случае для AppRole должно быть установлено значениеbind_secret_idравноеfalse, иначе StarVault Agent не сможет войти в систему. -
remove_secret_id_file_after_reading(bool: optional, defaults to true)- это значение может быть установлено в ``falseм, чтобы отключить стандартное поведение удаления файла секретного идентификатора после его чтения. -
secret_id_response_wrapping_path(string: optional)- если установлено, значение вsecret_id_file_pathбудет ожидаться как Response-Wrapping Token, содержащий вывод конечной точки получения секретного идентификатора для роли(например, auth/approle/role/webservers/secret-id), а путь создания response-wrapping token должен соответствовать значению, установленному здесь.
2. Пример конфигурации
Ниже приведен пример конфигурации с использованием approle для включения автоматической проверки подлинности и создания как текстового приемника токенов, так и файла приемника токенов в оболочке ответа:
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
}