Аутентификация и пароли
Для аутентификации пользователей в YTsaurus для пользователя может быть установлен пароль, при помощи которого пользователь получает доступ к системе. Пароль пользователя может быть изменён администратором системы или самим пользователем. Для управления паролем можно использовать страницу изменения пароля или команду set-user-password
в YTsaurus CLI.
После создания пользователя пароль для него не установлен, поэтому первый пароль устанавливает администратор. Рассмотрим пример.
yt create user --attr '{name=oleg}'
yt set-user-password oleg --new-password cone
Администратор создаёт пользователя oleg
и устанавливает ему пароль cone
.
При помощи команды set-user-password
пользователь может сменить пароль на cube
.
yt set-user-password oleg --current-password cone --new-password cube
Важно, что в отличие от администратора пользователю требуется ввести свой текущий пароль для изменения пароля. Администратору же не требуется вводить пароль ни при первой установке пароля ни при последующих его изменениях.
Управление токенами
Для работы с YTsaurus через CLI или через API пользователю необходимо использовать токены. Для управления токенами в CLI поддержаны команды issue-token
, revoke-token
и list-user-tokens
.
Команда issue-token
выпускает новый токен для пользователя. В отличие от пароля, у пользователя может быть несколько активных токенов для плавного процесса замены одного на другой.
yt issue-token oleg --password cone
"2c5956daecdff8dd45d2561a8679acf5"
Пользователю oleg
был выпушен токен 2c5956daecdff8dd45d2561a8679acf5
. Как и в случае команды set-user-password
пользователю обязательно указывать пароль, администратор же пароль пользователя указывать не должен.
При помощи команды list-user-tokens
можно посмотреть список активных токенов пользователя.
yt list-user-tokens oleg --password cone
["87a5d9406ccf6a42cca510d86e43b20e2943aa7ade7e9129f4f4f947e1b02574"]
Важно, что YTsaurus не сохраняет токены пользователей, в частности, команда list-user-tokens
возвращает не токены, а их sha256-хеши. Действительно,
echo -n '2c5956daecdff8dd45d2561a8679acf5' | sha256sum
87a5d9406ccf6a42cca510d86e43b20e2943aa7ade7e9129f4f4f947e1b02574 -
Команда revoke-token
позволяет отозвать токен пользователя. Для отзыва токена можно указать как токен, так и его sha256-хеш, последнее позволяет отозвать все токены пользователя, используя результат list-user-tokens
.
yt revoke-token oleg --token-sha256 87a5d9406ccf6a42cca510d86e43b20e2943aa7ade7e9129f4f4f947e1b02574 --password cube
yt revoke-token oleg --token 2c5956daecdff8dd45d2561a8679acf5 --password cube
yt list-user-tokens oleg --password cube
[]
Несмотря на то, что управление токенами требует пароля пользователя, изменения пароля пользователя не приводит к отзыву его токенов, что позволяет изменять токены постепенно при смене пароля. В случае, если пароль пользователя скомпрометирован, стоит не только изменить пароль, но и отозвать все токены.