AWS Secrets Manager и Parameter Store

Использование хранилищ данных в AWS

Dunieski Otano

AWS Solutions Architect

Катастрофа из-за хардкода пароля

  • Разработчик хардкодит пароль от базы данных в коде
  • Код публикуется в открытом репозитории GitHub
  • Злоумышленник находит пароль за 12 минут
  • База данных уничтожена, выдвинуто требование выкупа

атака

Использование хранилищ данных в AWS

Почему нельзя хардкодить секреты

  • Типичные ошибки
    • Хардкод в исходном коде
    • Открытый текст в конфигурационных файлах
    • Данные попадают в систему контроля версий
  • Последствия
    • Утечка через публичные репозитории
    • Сложность ротации
    • Отсутствие журнала аудита

нельзя

Использование хранилищ данных в AWS

Обзор AWS Secrets Manager

  • Назначение
    • Хранение и автоматическая ротация учётных данных
  • Что хранить
    • Пароли БД, ключи API, токены OAuth
  • Ключевые возможности
    • Автоматическая ротация, шифрование KMS, журнал аудита

sm

Использование хранилищ данных в AWS

Автоматическая ротация в Secrets Manager

  • Процесс ротации
    • Lambda-функция обновляет учётные данные
  • Окно ротации
    • Настройка расписания (rate или cron)
  • Нулевое время простоя
    • Во время ротации работают оба пароля — старый и новый

ротация

Использование хранилищ данных в AWS

Хранение секретов в формате JSON

  • Структурированные секреты
    • Несколько значений в одном секрете
  • Формат JSON
    • {"username": "admin", "password": "...", "host": "db.example.com"}
  • Получение и разбор
    • Используйте API GetSecretValue

получение

Использование хранилищ данных в AWS

Обзор Parameter Store

  • Входит в состав AWS Systems Manager
  • Назначение
    • Хранение конфигурации и статических секретов
  • Иерархическая организация
    • /app/prod/db/password
    • /app/dev/api-key
  • Бесплатный уровень
    • До 10 000 стандартных параметров (макс. 4 КБ)
    • Расширенные параметры (макс. 8 КБ) — платные

ps

Использование хранилищ данных в AWS

Типы параметров в Parameter Store

  • String
    • Конфигурация в открытом тексте (флаги функций, эндпоинты)
  • StringList
    • Значения через запятую (IP-адреса)
  • SecureString
    • Зашифровано с помощью KMS (пароли, ключи API)

типы

Использование хранилищ данных в AWS

Secrets Manager или Parameter Store: как выбрать

  • Используйте Secrets Manager, если
    • Нужна автоматическая ротация
    • Хранятся учётные данные базы данных
  • Используйте Parameter Store, если
    • Хранятся статические значения конфигурации
    • Важна экономия (бесплатный уровень)
  • Используйте оба вместе
    • Распространённая схема в продакшене

выбор

Использование хранилищ данных в AWS

Давайте потренируемся!

Использование хранилищ данных в AWS

Preparing Video For Download...