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

Пользователь

Пользователь — это внутренняя учетная запись Valkey для аутентификации в кластере. Пользователи кластера могут работать с данными: выполнять команды и обращаться к ключам и Pub/Sub-каналам. Управление кластером регулируется IAM-ролями.

Первый пользователь кластера создается вместе с кластером. Это системный пользователь default. Он обладает полными правами: может выполнять любые команды и обращаться к любым ключам и Pub/Sub-каналам. Удалить системного пользователя или изменить его права невозможно.

Каждому пользователю кроме системного можно включить или отключить доступ к кластеру. Если доступ отключен, пользователь не сможет пройти аутентификацию и подключиться к кластеру.

Создавать пользователей и управлять ими можно через веб-консоль, через API или с помощью консольной утилиты MWS CLI. Управление пользователями с использованием команд Valkey недоступно.

Права каждого нового пользователя определяются уникальным набором правил ACL (Access Control List) в строке доступа. Правила ACL регулируют:

  • какие команды пользователь может выполнять;
  • к каким ключам есть доступ у пользователя;
  • к каким Pub/Sub-каналам есть доступ у пользователя.

Правила строятся из префиксов и шаблонов:

  • Ключи задаются с префиксом ~ и поддерживают шаблоны (glob patterns).

    Например, правило ~app:* разрешает доступ ко всем ключам, начинающимся с app:.

  • Pub/Sub-каналы задаются с префиксом &.

    Например, &notifications:*.

  • Команды задаются с префиксами + (разрешить) или - (запретить).

    Например, правило +get разрешает выполнять команду get.

  • Команды сгруппированы в категории. Категории команд задаются с префиксами +@ (разрешить) или -@ (запретить).

    Например, правило -@dangerous запрещает выполнять все команды категории dangerous.

Правила применяются последовательно и могут уточнять друг друга. Вы можете разрешить всю категорию команд, но точечно запретить конкретную команду внутри категории. Например, правило +@read -keys разрешает выполнять все команды категории read кроме команды keys.

Доступны следующие категории команд Valkey:

КатегорияОписание
adminАдминистративные команды
bitmapКоманды для работы с битовыми картами
blockingКоманды, блокирующие соединение до разблокировки другой командой
connectionКоманды, влияющие на текущее или другие соединения
dangerousПотенциально опасные команды, требующие осторожности
geoКоманды для работы с геопространственными индексами
hashКоманды для работы с хешами
hyperloglogКоманды для работы с HyperLogLog
fastБыстрые команды O(1). Время выполнения может зависеть от количества переданных аргументов, но не от количества элементов в ключе
keyspaceКоманды для работы с ключами, базами данных или их метаданными независимо от типа данных. Команды, изменяющие пространство ключей, также относятся к категории write. Команды, только читающие пространство ключей, также относятся к категории read
listКоманды для работы со списками
pubsubКоманды Pub/Sub
readКоманды чтения из ключей (значений или метаданных).
Команды, не взаимодействующие с ключами, не относятся ни к категории read, ни к категории write
scriptingКоманды для работы со скриптами
setКоманды для работы с множествами
sortedsetКоманды для работы с сортированными множествами
slowВсе команды, не относящиеся к категории fast
streamКоманды для работы с потоками
stringКоманды для работы со строками
transactionКоманды транзакций
writeКоманды записи в ключи (значения или метаданные)

С полным списком команд Valkey вы можете ознакомиться в официальной документации Valkey. В Managed Valkey некоторые команды Valkey недоступны.

Управление кластером:

  • CLUSTER ADDSLOTS — назначение слотов хэширования узлу кластера;
  • CLUSTER ADDSLOTSRANGE — назначение диапазона слотов узлу кластера;
  • CLUSTER BUMPEPOCH — увеличение номера эпохи конфигурации кластера;
  • CLUSTER DELSLOTS — удаление слотов из узла кластера;
  • CLUSTER DELSLOTSRANGE — удаление диапазона слотов из узла кластера;
  • CLUSTER FAILOVER — принудительное переключение ролей между узлами;
  • CLUSTER FLUSHSLOTS — очистка таблицы слотов узла;
  • CLUSTER FORGET — удаление узла из таблицы кластера;
  • CLUSTER MEET — подключение нового узла к кластеру;
  • CLUSTER REPLICATE — настройка репликации между узлами кластера;
  • CLUSTER RESET — сброс состояния кластера на узле;
  • CLUSTER SAVECONFIG — принудительное сохранение конфигурации кластера на диск;
  • CLUSTER SET-CONFIG-EPOCH — установка номера эпохи конфигурации кластера;
  • CLUSTER SETSLOT — назначение слота узлу или перевод слота в состояние миграции.

Репликация и синхронизация:

  • FAILOVER — повышение роли реплики до Primary;
  • PSYNC — частичная синхронизация данных с узлом с ролью Primary;
  • REPLICAOF — настройка репликации узла;
  • REPLCONF — обмен служебной информацией между узлами репликации;
  • SLAVEOF — устаревший синоним команды REPLICAOF;
  • SYNC — полная синхронизация данных с узлом с ролью Primary.

Конфигурация и жизненный цикл:

  • CONFIG — чтение и изменение конфигурации сервера;
  • MODULE — загрузка и выгрузка динамических модулей;
  • SHUTDOWN — остановка сервера.

Персистентность:

  • BGREWRITEAOF — перезапись файла журнала операций (AOF);
  • BGSAVE — асинхронное сохранение всех данных базы на диск одним файлом;
  • SAVE — синхронное сохранение всех данных базы на диск одним файлом.

Миграция данных:

  • MIGRATE — перенос ключа на другой сервер Valkey;
  • RESTORE-ASKING — внутренняя команда, используемая при миграции слотов в кластере.

Управление подключениями:

  • CLIENT KILL — принудительное закрытие клиентского соединения;
  • CLIENT NO-EVICT — исключение соединения из процесса вытеснения клиентов при нехватке памяти;
  • CLIENT PAUSE — приостановка обработки команд клиентами;
  • CLIENT UNBLOCK — разблокировка заблокированного клиента;
  • CLIENT UNPAUSE — возобновление обработки команд клиентами.

Отладка скриптов:

  • SCRIPT DEBUG — отладка Lua-скриптов.
  • DEBUG — выполнение внутренних отладочных операций сервера;
  • PFDEBUG — внутренняя отладка структур данных HyperLogLog;
  • PFSELFTEST — запуск самодиагностики реализации структур данных HyperLogLog;
  • MONITOR — потоковый вывод всех обрабатываемых команд в реальном времени;
  • SLOWLOG GET — просмотр журнала медленных запросов;
  • SLOWLOG RESET — очистка журнала медленных запросов;
  • XSETID — изменение внутреннего идентификатора потока.
  • ACL DELUSER — удаление ACL-пользователей;
  • ACL DRYRUN — проверка прав без выполнения команды;
  • ACL GETUSER — правила конкретного пользователя;
  • ACL LIST — список всех пользователей;
  • ACL LOAD — перезагрузка ACL из файла;
  • ACL LOG — журнал событий безопасности ACL;
  • ACL SAVE — сохранение ACL в файл;
  • ACL SETUSER — создание и изменение ACL-пользователя;
  • ACL USERS — список имен ACL-пользователей.
  • На ресурс распространяются квоты и лимиты.
  • После удаления восстановить пользователя невозможно.