Перейти к основному содержимому
Перейти к основному содержимому

Настройка SSL-сертификата пользователя для аутентификации

Not supported in ClickHouse Cloud
примечание

Эта страница не применяется к ClickHouse Cloud. Функция, описанная здесь, недоступна в сервисах ClickHouse Cloud. Смотрите руководство по Cloud Compatibility для получения дополнительной информации.

Этот гайд предоставляет простые и минимальные настройки для настройки аутентификации с SSL-сертификатами пользователей. Учебное пособие основано на руководстве по Настройке SSL-TLS.

примечание

Аутентификация пользователя по SSL поддерживается только при использовании https или нативных интерфейсов. В настоящее время она не используется в gRPC или портах эмуляции PostgreSQL/MySQL.

1. Создание SSL-сертификатов пользователя

примечание

В этом примере используются самоподписанные сертификаты с самоподписанным CA. Для производственных сред создайте CSR и отправьте вашей команде PKI или поставщику сертификатов для получения подходящего сертификата.

  1. Сгенерируйте запрос на подпись сертификата (CSR) и ключ. Основной формат выглядит следующим образом:

    В этом примере мы будем использовать это для домена и пользователя, которые будут использоваться в этой тестовой среде:

    примечание

    CN является произвольным и любая строка может быть использована в качестве идентификатора для сертификата. Он будет использоваться при создании пользователя на следующих шагах.

  2. Сгенерируйте и подпишите новый сертификат пользователя, который будет использоваться для аутентификации. Основной формат выглядит следующим образом:

    В этом примере мы будем использовать это для домена и пользователя, которые будут использоваться в этой тестовой среде:

2. Создание SQL пользователя и предоставление привилегий

примечание

Для получения подробной информации о том, как включить SQL пользователей и установить роли, обратитесь к руководству Определение SQL пользователей и ролей.

  1. Создайте SQL пользователя, определенного для использования аутентификации сертификатом:

  2. Предоставьте привилегии новому пользователю с сертификатом:

    примечание

    Пользователю предоставляются полные привилегии администратора в этом упражнении в демонстрационных целях. Обратитесь к документации ClickHouse по RBAC для настройки разрешений.

    примечание

    Рекомендуется использовать SQL для определения пользователей и ролей. Тем не менее, если вы в настоящее время определяете пользователей и роли в конфигурационных файлах, пользователь будет выглядеть так:

3. Тестирование

  1. Скопируйте сертификат пользователя, ключ пользователя и сертификат CA на удаленный узел.

  2. Настройте OpenSSL в конфигурации клиента ClickHouse с сертификатом и путями.

  3. Запустите clickhouse-client.

    примечание

    Обратите внимание, что пароль, переданный в clickhouse-client, игнорируется, когда сертификат указан в конфигурации.

4. Тестирование HTTP

  1. Скопируйте сертификат пользователя, ключ пользователя и сертификат CA на удаленный узел.

  2. Используйте curl для тестирования пример SQL-команды. Основной формат выглядит следующим образом:

    Например:

    Вывод будет похож на следующий:

    примечание

    Обратите внимание, что пароль не был указан, сертификат используется вместо пароля и именно таким образом ClickHouse будет аутентифицировать пользователя.

Резюме

В этой статье были рассмотрены основы создания и настройки пользователя для аутентификации по SSL-сертификату. Этот метод может быть использован с clickhouse-client или любыми клиентами, которые поддерживают https интерфейс и где могут быть установлены HTTP-заголовки. Сгенерированный сертификат и ключ должны храниться в секрете и иметь ограниченный доступ, так как сертификат используется для аутентификации и авторизации пользователя для операций в базе данных ClickHouse. Обращайтесь с сертификатом и ключом так, как если бы это были пароли.