
Cloud & DevOps: от локального приложения до надёжного сервиса Урок 17 из 24
Секреты, конфигурация и среды без утечки
Разделяем открытую конфигурацию и секреты, ограничиваем область токена и предотвращаем вывод значения в журнал.
Текст переведён с помощью ИИ.
Этот урок начинается с нуля. Незнакомое слово здесь не считается вашим пробелом: мы сначала создадим образ, затем дадим точное значение и только потом применим его.
Где мы находимся
Полётное повторение. В прошлом уроке была опора test once → build once → sign/scan → push digest → promote same digest. Не подглядывая, назовите её четыре звена и только затем сравните с записью.
Результат урока
Разделяем открытую конфигурацию и секреты, ограничиваем область токена и предотвращаем вывод значения в журнал. Не переходите дальше, пока не можете объяснить, что проверяет каждая команда и какой отказ она обнаруживает.
Сначала знакомый образ
Адрес офиса можно напечатать на визитке, ключ от сейфа — нельзя. Оба нужны работе, но обращаются с ними по-разному. Обычная конфигурация описывает среду, секрет даёт полномочия. Секрет не кладут в образ, журнал или историю Git.
Аналогия помогает начать рассуждение, но не заменяет устройство технологии. Ниже мы уточним каждое слово.
Опорный сигнал урока
config можно показать | secret нужно ограничить | оба вводятся извне image
Прочитайте цепочку слева направо. Она отвечает не на вопрос «какую команду запомнить», а на вопрос «почему следующий шаг следует из предыдущего».
Новые слова простыми словами
- Configuration — Несекретные параметры поведения приложения.
- Secret — Значение, раскрытие которого даёт доступ или причиняет ущерб.
- Environment variable — Один из каналов передачи настройки процессу при запуске.
- Rotation — Замена секрета и отзыв старого значения по плану.
Разбираем без спешки
Секрет — не просто переменная окружения, а значение с владельцем, областью, сроком и процедурой ротации. Маскирование журнала помогает, но не отменяет риск передачи секрета процессу или стороннему action. Сначала уменьшайте полномочия и время жизни.
Сейчас не нужно запоминать формулировку дословно. Найдите в ней причинную связь и привяжите её к опорному сигналу выше.
Сначала предскажите результат
До запуска ответьте на бумаге: что должно измениться, что должно остаться прежним и какой вывод команды подтвердит ваш прогноз? Даже неверный прогноз полезен, если после опыта вы можете объяснить расхождение.
Опыт маленькими шагами
Выполните команды из корня course/cloud-devops-lab. Команды рассчитаны на учебную среду. Перед командой, меняющей сервер или данные, прочитайте её целиком и проверьте текущий каталог. Запускайте блок по одной смысловой группе. После каждой остановитесь и сопоставьте результат со своим прогнозом.
test -f .gitignore
git grep -n -E '(BEGIN (RSA|OPENSSH) PRIVATE KEY|token=|password=)' -- ':!tools/course/generate_cloud_devops.py' || true
printf '%s\n' '.env must stay untracked'
git check-ignore .env || true
Что именно делает этот опыт
Упражнение использует только фиктивное значение, проверяет .gitignore и ищет подозрительные строки. Затем процесс получает секрет во время запуска. Не печатайте значение даже ради демонстрации: доказывайте только факт наличия.
Что должно получиться
- Реальные значения не выводятся.
- Команда завершается предсказуемым кодом.
- Результат можно повторить на чистой среде.
Соберите целое по опорной схеме
Проведите пальцем или карандашом по четырём блокам и расскажите весь урок одним связным объяснением.
Воспроизведите без подсказки
- Закройте схему и нарисуйте четыре блока по памяти.
- Объясните каждый переход словами «потому что».
- Дайте определение одному новому термину, не повторяя текст дословно.
- Назовите один сигнал, который доказывает результат.
Найдите и исправьте ошибку
Ошибка: «Удалить секрет из последнего commit достаточно». Исправление: он остаётся в истории и мог быть скопирован; значение нужно отозвать и заменить.
Задание
Теперь соберите тот же смысл самостоятельно. Можно смотреть на опорную схему; цель — не экзамен на память, а воспроизводимый результат.
Обязательное. Напишите POSIX sh-скрипт, который требует DEPLOY_TOKEN, никогда его не печатает, проверяет непустое значение и очищает переменную перед завершением. Отправьте только команды или скрипт POSIX sh без реальных ключей и токенов.
Критерии готовности
- Вы понимаете каждую запускаемую строку.
- Повторный запуск даёт ожидаемый результат или безопасно объяснённое отличие.
- В выводе нет настоящих ключей, токенов и паролей.
- Вы можете показать факт, который подтверждает успех.
Если проверка не прошла, зафиксируйте ожидаемое и фактическое, вернитесь к одному разорванному звену опоры и повторите. Ошибка не отнимает у вас право продолжать обучение.
По желанию. Запишите один возможный отказ и сигнал, по которому вы его заметите.
Открытая перспектива
Следующий урок добавит новую опору: Развёртывание, smoke test и проверенный rollback.
Если вы нашли ошибку или опечатку в тексте статьи, то сообщите нам об этом
Комментарии (0)
Войдите, чтобы оставить комментарий →
Пока нет комментариев. Будьте первым.