Взаимная аутентификация между сервером приложений и ClickHouse
Взаимодействие осуществляется по HTTPS-протоколу.
При подключении к ClickHouse сервер приложения осуществляет аутентификацию ClickHouse по серверному сертификату, который ранее был настроен в docker-контейнере. ClickHouse осуществляет аутентификацию сервера приложения по связке логин + пароль. Пароль хранится во встроенной файловой базе данных в зашифрованном виде.
Логин и пароль передается в Post-запросе.
Пример запроса к БД, полученный посредством программы Wireshark:
Hypertext Transfer Protocol
POST /?extremes=0&database=default&user=writeUser&password=write&compress=1
HTTP/1.1\r\n
[Expert Info (Chat/Sequence): POST /?
extremes=0&database=default&user=writeUser&password=write&compress=1 HTTP/1.1\r\
n]
[POST /?extremes=0&database=default&user=writeUser&password=write&compress=1
HTTP/1.1\r\n]
[Severity level: Chat]
[Group: Sequence]
Request Method: POST
Request URI: /?
extremes=0&database=default&user=writeUser&password=write&compress=1
Request URI Path: /
Request URI Query:
extremes=0&database=default&user=writeUser&password=write&compress=1
Request URI Query Parameter: extremes=0
Request URI Query Parameter: database=default
Request URI Query Parameter: user=writeUser
Request URI Query Parameter: password=write
Request URI Query Parameter: compress=1
Request Version: HTTP/1.1
Content-Length: 62\r\n
Content-Type: text/plain; charset=UTF-8\r\n
Host: 192.168.88.15:8888\r\n
Connection: Keep-Alive\r\n
User-Agent: Apache-HttpClient/4.5.2 (Java/11.0.4)\r\n
\r\n
[Full request URI: http://192.168.88.15:8888/?
extremes=0&database=default&user=writeUser&password=write&compress=1]
File Data: 62 bytes
Line-based text data: text/plain (1 lines)
select currentDatabase() FORMAT TabSeparatedWithNamesAndTypes;
Пользователи в ClickHouse имеют минимальные права и выполняют исключительно SQL-запросы. Применимо ограничение настроек для конкретного пользователя. Невозможно устанавливать настройки ClickHouse посредством SQL-запросов.
Настройки безопасности изменяются только на сервере в файлах «/etc/clickhouse-server/config.xml» и «/etc/clickhouse-server/users.xml».
Если у пользователя нет физического доступа к серверу ClickHouse, то невозможно поменять настройки сервера. Более подробное описание безопасности представлено: https://clickhouse.yandex/docs/ru/operations/settings/.
Была ли статья полезна?