Введение
Панель поддержки кеширует заявку и результат её обработки в Redis. Вы сохраните этот процесс и создадите учётную запись с доступом только к собственным данным.
Redis хранит значения под именами, называемыми ключами. Ключ кеша — имя данных, а не пароль. Здесь используются синтетические заявки и настоящий Redis в изолированной учебной сети. Достаточно базового владения терминалом; опыт Redis и программирования не нужен. Вкладки Client и Cache Server открывают разные контейнеры с общим ядром экземпляра. Dashboard показывает реальные запросы, а не оценку безопасности.
Обработать заявку поддержки
На этом шаге вы установите нормальное поведение приложения. Redis — сервер: хранит именованные значения и отвечает на запросы. Панель — клиент: запрашивает заявку, обрабатывает её и записывает результат. Кеш — удобное хранилище приложения; учебные значения синтетические. Вход хранится в support:ticket, а обработанный выход — в support:result.
Чтобы начать этот шаг, выберите вкладку Dashboard в интерфейсе лабораторной работы.
Перейдите на вкладку Dashboard. Страница показывает input и result. Изначально вход — Ticket 104: password reset, результат пуст. Нажмите Process ticket один раз. Результат станет Processed: Ticket 104: password reset. Обновление страницы снова читает сохранённое значение. Это настоящее чтение с последующей записью.

Также показано username: default. Имя пользователя обозначает запись Redis, отдельно от ключа кеша. Сейчас приложение использует автоматически доступную запись по умолчанию без пароля. Правильный бизнес-результат подтверждает доступность, но не показывает, какие ещё данные доступны этой записи.
При ошибке соединения перезагрузите страницу один раз. Страница ошибки не означает отказ по правам. Оставьте обе вкладки терминала открытыми и различайте место работы по их именам.
Сравнить необходимый и избыточный доступ
На этом шаге вы прочитаете и запишете временное значение, затем увидите чрезмерную широту доступа по умолчанию. Перейдите на вкладку Client. Подготовленный терминал находится внутри контейнера приложения. redis-cli — клиент командной строки Redis. -h cache-server выбирает сервер по имени в частной сети; localhost здесь означал бы сам клиентский контейнер.
Чтобы начать этот шаг, выберите вкладку Client в интерфейсе лабораторной работы.
GET читает ключ. Прочитайте вход панели:
Перед выполнением следующей команды перейдите на вкладку Client.
redis-cli -h cache-server GET support:ticket
Ответ содержит Ticket 104: password reset. Двоеточие — часть имени ключа. Префикс support: объединяет данные приложения.
SET записывает значение. Используйте одноразовый учебный ключ demo:note, оставив бизнес-вход неизменным:
redis-cli -h cache-server SET demo:note practice
OK означает успешную запись. Прочитайте её:
redis-cli -h cache-server GET demo:note
Ответ — practice. Теперь прочитайте постороннее синтетическое финансовое значение:
redis-cli -h cache-server GET finance:payroll
Вы получите Private payroll: synthetic. Панели поддержки не нужны зарплатные данные. Аутентификация определяет, кто подключается; авторизация — разрешённые команды и ключи. Запись по умолчанию сейчас допускает это постороннее чтение и ненужные административные команды.
Создать ограниченную запись приложения
На этом шаге вы дадите именованному аккаунту только необходимые операции и семейство ключей. Перейдите на вкладку Cache Server. cache-admin — подготовленная вспомогательная команда, запускающая настоящий redis-cli через отдельный аккаунт обслуживания. Она предназначена для администрирования, а не конфигурации приложения.
Чтобы начать этот шаг, выберите вкладку Cache Server в интерфейсе лабораторной работы.
Список контроля доступа (ACL) задаёт правила команд и ключей каждой записи. Панели нужны GET и SET для support:*. Звёздочка означает любой суффикс после support:; это простой префиксный шаблон, не регулярное выражение.
ACL SETUSER создаёт или меняет запись. reset очищает старые правила, on включает аутентификацию, >... задаёт пароль, ~... — шаблон ключей, а +get +set разрешает только эти команды. Одинарные кавычки защищают > и * от оболочки, которая иначе могла бы перенаправить вывод или раскрыть имена файлов. Выполните:
Перед выполнением следующей команды перейдите на вкладку Cache Server.
cache-admin ACL SETUSER dashboard reset on '>Dash-Lab-42' '~support:*' +get +set
Ожидайте OK. Пароль Dash-Lab-42 аутентифицирует запись и не является ключом данных Redis. Учебные реквизиты — локальные примеры, не производственные секреты.
Перейдите на вкладку Client. --user выбирает именованный аккаунт, --askpass запрашивает пароль, не помещая его в командную строку. В каждом запросе пароля вводите Dash-Lab-42 (символы могут быть скрыты):
Перед выполнением следующей команды перейдите на вкладку Client.
redis-cli -h cache-server --user dashboard --askpass GET support:ticket
Заявка по-прежнему читается. Проверьте посторонний ключ через новое соединение:
redis-cli -h cache-server --user dashboard --askpass GET finance:payroll
Ожидайте NOPERM: аутентификация успешна, но ключ запрещён. WRONGPASS означает неверное имя или пароль; исправьте и повторите. Ошибка соединения означает недоступность сервиса и не является успешным ограничением. Если в ACL допущена опечатка, перейдите на вкладку Cache Server и повторите полную команду reset с правильными значениями.
Сохранить активный ACL
На этом шаге вы сохраните аккаунт, чтобы права пережили будущий запуск сервиса. Изменение ACL в памяти действует сразу, но не обновляет настроенный файл автоматически. Перейдите на вкладку Cache Server:
Чтобы начать этот шаг, выберите вкладку Cache Server в интерфейсе лабораторной работы.
Перед выполнением следующей команды перейдите на вкладку Cache Server.
cache-admin ACL SAVE
Ожидайте OK. Redis записывает активных пользователей в /data/users.acl — файл ACL, используемый сервером. cat показывает файл; изучите сохранённые правила:
cat /data/users.acl
Строка dashboard содержит ~support:*, -@all, +get и +set; порядок может отличаться. -@all изначально запрещает все категории команд. Значение с # — хеш пароля Redis, а не исходный пароль.
Сравните активную запись:
cache-admin ACL GETUSER dashboard
Найдите то же семейство ключей и разрешения. Изменение неиспользуемого файла не изменило бы работающую запись. ACL SAVE сохраняет реально активные правила.
Стандартный вход в этой лабораторной остаётся включённым. Создание более подходящей записи не переключает существующие приложения и не закрывает старый путь. Следующая лабораторная начинается с независимого снимка и учит оставшимся изменениям. Никогда не помещайте реквизиты обслуживания в приложение.
Резюме
Вы обработали настоящую заявку, различили ключи данных и пароли, сравнили необходимый и избыточный доступ, создали и сохранили именованную запись с GET/SET только для support:*. Старый стандартный путь нужно закрыть после переключения приложения.



