Yandex Cloud
Поиск
Связаться с намиПодключиться
  • Истории успеха
  • Документация
  • Блог
  • Все сервисы
  • Статус работы сервисов
    • Популярные
    • Инфраструктура и сеть
    • Платформа данных
    • Контейнеры
    • Инструменты разработчика
    • Бессерверные вычисления
    • Безопасность
    • Мониторинг и управление ресурсами
    • ИИ для бизнеса
    • Бизнес-инструменты
  • Все решения
    • По отраслям
    • По типу задач
    • Экономика платформы
    • Безопасность
    • Техническая поддержка
    • Каталог партнёров
    • Обучение и сертификация
    • Облако для стартапов
    • Облако для крупного бизнеса
    • Центр технологий для общества
    • Облако для интеграторов
    • Поддержка IT-бизнеса
    • Облако для фрилансеров
    • Обучение и сертификация
    • Блог
    • Документация
    • Контент-программа
    • Мероприятия и вебинары
    • Контакты, чаты и сообщества
    • Идеи
    • Калькулятор цен
    • Тарифы
    • Промоакции и free tier
    • Правила тарификации
  • Истории успеха
  • Документация
  • Блог
Проект Яндекса
© 2025 ООО «Яндекс.Облако»
Yandex Managed Service for Valkey™
  • Начало работы
    • Все инструкции
      • Получение информации о пользователях
      • Создание пользователя
      • Изменение настроек пользователя
      • Удаление пользователя
  • Управление доступом
  • Правила тарификации
  • Справочник Terraform
  • Метрики Monitoring
  • Аудитные логи Audit Trails
  • Публичные материалы
  • История изменений
  • Вопросы и ответы
  1. Пошаговые инструкции
  2. Пользователи
  3. Создание пользователя

Создание пользователя

Статья создана
Yandex Cloud
Улучшена
mmerihsesh
Обновлена 14 октября 2025 г.

Yandex Managed Service for Valkey™ позволяет создавать пользователей Valkey™ и настраивать их разрешения на команды, ключи и каналы Pub/Sub кластера с помощью списков контроля доступа Valkey™ ACL.

Valkey™ ACL решает две основные задачи:

  • обеспечивает безопасность, разграничивая доступ к командам и ключам;
  • защищает от случайных ошибок, вызванных действиями пользователя или программным сбоем.

Вместе с кластером создается пользователь по умолчанию default. Он имеет разрешения на все ключи и каналы Pub/Sub кластера, а также может выполнять все команды, кроме административных. Подробные разрешения пользователя можно получить с информацией о пользователе.

Создать пользователяСоздать пользователя

CLI
Terraform
REST API
gRPC API

Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.

По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id.

Чтобы создать пользователя Valkey™:

  1. Посмотрите описание команды CLI для создания пользователя:

    yc managed-redis user create --help
    
  2. Создайте пользователя, выполнив команду (приведены не все флаги):

    yc managed-redis user create <имя_пользователя> \
      --cluster-id=<идентификатор_кластера> \
      --password="<пароль_пользователя>" \
      --disabled \
      --raw="<разрешения>" \
      --categories="<разрешения_на_категории_команд>" \
      --commands="<разрешения_на_команды>" \
      --patterns="<разрешения_на_шаблоны_ключей>" \
      --pub-sub-channels="<разрешения_на_каналы>" \
      --sanitize-payload=<очистка_данных>
    

    Где:

    • --cluster-id — идентификатор кластера.

      Идентификатор кластера можно получить со списком кластеров в каталоге.

    • --password — пароль пользователя. Длина пароля — от 8 до 128 символов.

    • --disabled — отключает пользователя. По умолчанию — false.

    • --raw — разрешения, в строку через пробел. Также строка должна включать настройку статуса пользователя:

      • on — пользователь включен;
      • off — пользователь отключен.

      Пример: on ~data:* &* +@set +@hash +get +set.

      Примечание

      Флаг --raw не используется с флагами отдельных разрешений и с --disabled.

    • --categories — разрешения на категории команд, в строку через пробел.

    • --commands — разрешения на команды, в строку через пробел.

    • --patterns — разрешения на шаблоны ключей, в строку через пробел.

    • --pub-sub-channels — разрешения на каналы Pub/Sub, в строку через пробел.

    • --sanitize-payload — очистка данных. Возможные значения:

      • sanitize-payload (по умолчанию) — очистка данных включена;
      • skip-sanitize-payload — очистка данных отключена.

    Примечание

    Пользователю не могут быть выданы разрешения на категорию административных команд +@admin и некоторые команды.

    Подробнее о списках контроля доступа читайте в документации Valkey™ ACL.

  1. Откройте актуальный конфигурационный файл Terraform с планом инфраструктуры.

    О том, как создать такой файл, см. в разделе Создание кластера.

  2. Чтобы создать пользователя, добавьте ресурс yandex_mdb_redis_user:

    resource "yandex_mdb_redis_user" "<локальное_имя_ресурса>" {
      cluster_id = <идентификатор_кластера>
      name       = "<имя_пользователя>"
      passwords  = ["<пароль_пользователя>"]
      enabled    = <статус_пользователя>
      
      permissions = {
        categories       = "<разрешения_на_категории_команд>"
        commands         = "<разрешения_на_команды>"
        patterns         = "<разрешения_на_шаблоны_ключей>"
        pub_sub_channels = "<разрешения_на_каналы>"
        sanitize_payload = "<очистка_данных>"
      }
    }
    

    Где:

    • cluster_id — идентификатор кластера.

    • name — имя пользователя.

    • passwords — пароль пользователя. Длина пароля — от 8 до 128 символов.

      Можно указать только один пароль.

    • enabled — статус пользователя. Возможные значения:

      • true — пользователь включен;
      • false — пользователь отключен.
    • permissions — настройки разрешений пользователя:

      • categories — разрешения на категории команд, в строку через пробел.

      • commands — разрешения на команды, в строку через пробел.

      • patterns — разрешения на шаблоны ключей, в строку через пробел.

      • pub_sub_channels — разрешения на каналы Pub/Sub, в строку через пробел.

      • sanitize_payload — очистка данных. Возможные значения:

        • sanitize-payload (по умолчанию) — очистка данных включена;
        • skip-sanitize-payload — очистка данных отключена.

      Примечание

      Пользователю не могут быть выданы разрешения на категорию административных команд +@admin и некоторые команды.

      Подробнее о списках контроля доступа читайте в документации Valkey™ ACL.

  3. Проверьте корректность настроек.

    1. В командной строке перейдите в каталог, в котором расположены актуальные конфигурационные файлы Terraform с планом инфраструктуры.

    2. Выполните команду:

      terraform validate
      

      Если в файлах конфигурации есть ошибки, Terraform на них укажет.

  4. Подтвердите изменение ресурсов.

    1. Выполните команду для просмотра планируемых изменений:

      terraform plan
      

      Если конфигурации ресурсов описаны верно, в терминале отобразится список изменяемых ресурсов и их параметров. Это проверочный этап: ресурсы не будут изменены.

    2. Если вас устраивают планируемые изменения, внесите их:

      1. Выполните команду:

        terraform apply
        
      2. Подтвердите изменение ресурсов.

      3. Дождитесь завершения операции.

  5. Убедитесь, что пользователь создан, выполнив команду CLI:

    yc managed-redis user get <имя_пользователя> \
      --cluster-id=<идентификатор_кластера>
    

    Подробнее о том, как получить информацию о пользователе.

Ограничения по времени

Провайдер Terraform ограничивает время на выполнение операций с кластером Yandex Managed Service for Valkey™:

  • создание, в т. ч. путем восстановления из резервной копии, — 15 минут;
  • изменение — 60 минут;
  • удаление — 15 минут.

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

Как изменить эти ограничения?

Добавьте к описанию кластера блок timeouts, например:

resource "yandex_mdb_redis_cluster" "<имя_кластера>" {
  ...
  timeouts {
    create = "1h30m" # Полтора часа
    update = "2h"    # 2 часа
    delete = "30m"   # 30 минут
  }
}
  1. Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:

    export IAM_TOKEN="<IAM-токен>"
    
  2. Создайте файл body.json и добавьте в него следующее содержимое:

    {
      "userSpec": {
        "name": "<имя_пользователя>",
        "passwords": [
          "<пароль_пользователя>"
        ],
        "permissions": {
          "patterns": "<разрешения_на_шаблоны_ключей>",
          "pubSubChannels": "<разрешения_на_каналы>",
          "categories": "<разрешения_на_категории_команд>",
          "commands": "<разрешения_на_команды>",
          "sanitizePayload": "<очистка_данных>"
        },
        "enabled": <статус_пользователя>
      }
    }
    

    Где userSpec — настройки пользователя:

    • name — имя пользователя.

    • passwords — пароль пользователя. Длина пароля — от 8 до 128 символов.

      Можно указать только один пароль.

    • permissions — настройки разрешений пользователя:

      • patterns — разрешения на шаблоны ключей, в строку через пробел.

      • pubSubChannels — разрешения на каналы Pub/Sub, в строку через пробел.

      • categories — разрешения на категории команд, в строку через пробел.

      • commands — разрешения на команды, в строку через пробел.

      • sanitizePayload — очистка данных. Возможные значения:

        • sanitize-payload (по умолчанию) — очистка данных включена;
        • skip-sanitize-payload — очистка данных отключена.

      Примечание

      Пользователю не могут быть выданы разрешения на категорию административных команд +@admin и некоторые команды.

      Подробнее о списках контроля доступа читайте в документации Valkey™ ACL.

    • enabled — статус пользователя. Возможные значения:

      • true — пользователь включен;
      • false — пользователь отключен.
  3. Воспользуйтесь методом User.Create и выполните запрос, например с помощью cURL:

    curl \
      --request POST \
      --header "Authorization: Bearer $IAM_TOKEN" \
      --header "Content-Type: application/json" \
      --url 'https://mdb.api.cloud.yandex.net/managed-redis/v1/clusters/<идентификатор_кластера>/users' \
      --data "@body.json"
    

    Идентификатор кластера можно получить со списком кластеров в каталоге.

  4. Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.

  1. Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:

    export IAM_TOKEN="<IAM-токен>"
    
  2. Клонируйте репозиторий cloudapi:

    cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapi
    

    Далее предполагается, что содержимое репозитория находится в директории ~/cloudapi/.

  3. Создайте файл body.json и добавьте в него следующее содержимое:

    {
      "cluster_id": "<идентификатор_кластера>",
      "user_spec": {
        "name": "<имя_пользователя>",
        "passwords": [
          "<пароль_пользователя>"
        ],
        "permissions": {
          "patterns": "<разрешения_на_шаблоны_ключей>",
          "pub_sub_channels": "<разрешения_на_каналы>",
          "categories": "<разрешения_на_категории_команд>",
          "commands": "<разрешения_на_команды>",
          "sanitize_payload": "<очистка_данных>"
        },
        "enabled": <статус_пользователя>
      }
    }
    

    Где:

    • cluster_id — идентификатор кластера.

      Идентификатор кластера можно получить со списком кластеров в каталоге.

    • user_spec — настройки пользователя:

      • name — имя пользователя.

      • passwords — пароль пользователя. Длина пароля — от 8 до 128 символов.

        Можно указать только один пароль.

      • permissions — настройки разрешений пользователя:

        • patterns — разрешения на шаблоны ключей, в строку через пробел.

        • pub_sub_channels — разрешения на каналы Pub/Sub, в строку через пробел.

        • categories — разрешения на категории команд, в строку через пробел.

        • commands — разрешения на команды, в строку через пробел.

        • sanitize_payload — очистка данных. Возможные значения:

          • sanitize-payload (по умолчанию) — очистка данных включена;
          • skip-sanitize-payload — очистка данных отключена.

        Примечание

        Пользователю не могут быть выданы разрешения на категорию административных команд +@admin и некоторые команды.

        Подробнее о списках контроля доступа читайте в документации Valkey™ ACL.

      • enabled — статус пользователя. Возможные значения:

        • true — пользователь включен;
        • false — пользователь отключен.
  4. Воспользуйтесь вызовом UserService.Create и выполните запрос, например с помощью gRPCurl:

    grpcurl \
      -format json \
      -import-path ~/cloudapi/ \
      -import-path ~/cloudapi/third_party/googleapis/ \
      -proto ~/cloudapi/yandex/cloud/mdb/redis/v1/user_service.proto \
      -rpc-header "Authorization: Bearer $IAM_TOKEN" \
      -d @ \
      mdb.api.cloud.yandex.net:443 \
      yandex.cloud.mdb.redis.v1.UserService.Create \
      < body.json
    
  5. Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.

Была ли статья полезна?

Предыдущая
Получение информации о пользователях
Следующая
Изменение настроек пользователя
Проект Яндекса
© 2025 ООО «Яндекс.Облако»