Использование AWS Systems Manager Parameter Store для безопасного хранения конфигурации

Parameter Store (в составе AWS Systems Manager) позволяет отделять секреты и конфигурационные данные от кода. Параметры можно группировать по иерархиям и тегам, шифровать с помощью AWS KMS и централизованно ссылаться на них в скриптах, командах и документах SSM.
Короткое определение: Parameter Store — управляемое хранилище ключей/значений в AWS с поддержкой шифрования и версий.
Что важно знать в начале
- Поддерживаемые типы: String, StringList, SecureString (шифруется с KMS).
- Уровни: Standard (без доп. платы) и Advanced (плата $0.05 за 10,000 API-вызовов для Advanced — проверьте актуальное ценообразование на сайте AWS).
- SecureString требует CMK (Customer Master Key) из KMS — можно использовать ключ из текущего аккаунта или из другого аккаунта при правильных политиках.
Важно: контроль доступа к параметрам осуществляется через IAM-политику и политики ключей KMS. Без надлежащих прав вы не сможете прочитать или расшифровать значение.
Предварительные требования
- Учётная запись AWS и права на Systems Manager и KMS (создание и использование CMK, права на ssm:GetParameter, ssm:PutParameter и т.д.).
Что мы сделаем
- Войдём в AWS Console.
- Создадим параметр типа SecureString и сохраним конфигурационные данные.
- Отредактируем параметр и посмотрим историю версий.
- Удалим параметр.
Вход в AWS
Перейдите в консоль AWS и выполните вход с учётными данными вашего аккаунта.

После успешного входа откроется главная панель управления AWS.

Создание параметра для хранения конфигурации
- В консоли выберите Services → Systems Manager.
- В левой панели откройте Parameter Store (раздел Application Management).

- Если параметров ещё нет, список будет пуст. Нажмите Create parameter.

- Задайте имя параметра. Выберите tier: Standard (если не требуется Advanced). В поле Type выберите SecureString.

- Укажите KMS Key ID (ключ текущего аккаунта или внешний ключ при настроенной доверенности). В поле Value введите конфигурационные данные, которые хотите сохранить. При необходимости добавьте теги.

- Нажмите Create parameter. Параметр появится в списке.

- Откройте страницу параметра, чтобы посмотреть детали. Кнопка Show под Value отобразит сохранённое значение (если у вас есть права на расшифровку).

Редактирование параметра и история версий
- Перейдите на вкладку History — там отображаются ревизии параметра. При первом создании будет одна версия.

- Нажмите Edit, измените значение или метаданные параметра и сохраните. Каждое сохранение создаёт новую версию.

- После изменения вы увидите несколько ревизий в истории.

- Чтобы расшифровать все сохранённые значения в истории, отметьте Decrypt all.

Совет: история полезна для отката конфигураций и аудита. Однако учтите, что все ревизии, содержащие чувствительные данные, остаются доступными пользователям с правами на чтение истории и KMS.
Удаление параметра
Если параметр больше не нужен, можно удалить его:
- Выберите параметр в списке и нажмите Delete.

- Подтвердите удаление.

После удаления параметр будет удалён из списка и перестанет быть доступен в запросах API.
Рекомендации по именованию и иерархиям
Используйте читаемые имена с разделителями, чтобы управлять параметрами по средам и приложениям. Пример структуры:
- /prod/app1/db/password
- /staging/app1/api/key
- /shared/logging/level
Правило: имена начинаются со слэша, затем — уровень окружения, приложение и ключ.
Мини-SOP: Быстрое руководство действий
- Создать KMS-ключ (если ещё нет).
- Назначить IAM-политику, разрешающую ssm:PutParameter и ssm:GetParameter для нужных ролей.
- Создать параметр SecureString с выбранным ключом KMS.
- Проверить чтение через роль приложения.
- Настроить мониторинг доступа и CloudTrail для аудита.
Критерии приёмки
- Параметр создан и виден в консоли.
- Значение зашифровано (SecureString) и связано с CMK KMS.
- История версий показывает созданную и изменённые версии.
- Пользователь/роле с нужными правами доступно читать значение, остальные — нет.
- Параметр удаляется корректно и исчезает из списка.
Роли и чек-листы
DevOps:
- Убедиться, что есть CMK и права на его использование.
- Создать параметр и настроить теги/имя по стандарту.
- Настроить CI/CD для безопасного чтения параметров.
Разработчик:
- Проверить, что приложение использует роль с правами ssm:GetParameter.
- Не хранить секреты в коде — читать при запуске.
Инженер безопасности:
- Проверить IAM-политики и политики KMS.
- Включить аудит CloudTrail на операции ssm и kms.
Модель принятия решений: какой тип параметра выбрать
flowchart TD
A[Нужно хранить секреты?] -->|Да| B{Защищённое хранение}
A -->|Нет| C[String или StringList]
B --> D{Нужны ли расширенные возможности\n'производительность, размер, политики'?}
D -->|Да| E[Advanced + SecureString]
D -->|Нет| F[Standard + SecureString]
C --> G[String для одиночных значений]
C --> H[StringList для списков значений]Когда Parameter Store не подходит (противоправные примеры)
- Если у вас миллионы запросов в секунду — лучше смотреть в сторону специализированных решений и кеширования.
- Для динамических секретов с автоматической ротацией (например, IAM креденшелы) можно рассмотреть AWS Secrets Manager, который предоставляет встроенную ротацию и интеграцию с базами данных.
Безопасность и соответствие (GDPR/конфиденциальность)
- Если параметры содержат персональные данные (PII), ограничьте доступ и минимизируйте хранение.
- Логи доступа к параметрам следует сохранять в CloudTrail для аудита.
- Настройте ротацию CMK и, при необходимости, ротацию самих секретов (ручную или через Secrets Manager).
Тестовые сценарии и приёмка
- Попытка чтения параметра без прав должна завершаться AccessDenied.
- Чтение значения с правами должно возвращать расшифрованный текст.
- При изменении значения должна появляться новая версия в истории.
- Удаление должно удалить параметр и запретить дальнейшее чтение.
Краткий словарь
- Parameter Store — управляемое хранилище параметров AWS.
- SecureString — тип параметра, шифруемый KMS.
- CMK/KMS — Customer Master Key в AWS Key Management Service.
Итог
Parameter Store — простой и безопасный способ хранить конфигурации и секреты рядом с инфраструктурой AWS. Он хорошо подходит для централизованного управления небольших и средних объёмов секретов, обеспечивает версионирование и интеграцию с KMS. Для сценариев с автоматической ротацией секретов и расширенным управлением секретами стоит рассмотреть AWS Secrets Manager.
Важно: всегда применяйте принцип наименьших привилегий, контролируйте доступ через IAM и KMS и включайте аудит операций.
Summary:
- Создали SecureString-параметр, посмотрели историю версий и удалили параметр.
- Показали рекомендации по именованию, политике доступа и безопасности.
- Привели чек-листы для ролей и тестовые сценарии для приёмки.
Похожие материалы
RDP: полный гид по настройке и безопасности
Android как клавиатура и трекпад для Windows
Советы и приёмы для работы с PDF
Calibration в Lightroom Classic: как и когда использовать
Отключить Siri Suggestions на iPhone