Как создать, удалить и восстановить секрет в AWS Secrets Manager
Важно: удаление секретов в Secrets Manager — это планируемая операция. AWS сохраняет секреты в течение периода ожидания (минимум 7 дней, максимум 30 дней). Пока секрет запланирован на удаление, его можно отменить.
Что вы узнаете
- Как войти в AWS и открыть консоль Secrets Manager.
- Как создать секрет со значениями key:value и сохранить его.
- Как запланировать удаление секрета и как отменить это удаление.
- Практические рекомендации по безопасности и альтернативные подходы.
Предварительные требования
- Учётная запись AWS (создайте, если ещё нет).
- Права IAM для доступа к Secrets Manager: минимально — awssecretsmanager:CreateSecret, GetSecretValue, DeleteSecret, RestoreSecret, ListSecrets.
Шаг 1 — Вход в AWS
Найдите страницу входа в AWS и войдите под учётной записью с нужными правами. После успешного входа вы увидите основную панель управления AWS.


Шаг 2 — Открыть Secrets Manager и создать секрет
- Нажмите Services в левом верхнем углу консоли и введите “secret manager” в строку поиска.
- Выберите Secret Manager в результатах поиска, чтобы открыть консоль Secrets Manager.

- На панели Secrets Manager нажмите кнопку “Store a new secret” (Создать секрет).

Выберите тип секрета. В примере мы используем “Other type of secrets” и сохраняем пары ключ:значение.
Заполните пары ключ:значение. Можно добавить несколько пар под одним секретом. Выберите ключ шифрования (AWS managed CMK или собственный KMS ключ).

- Нажмите Next и укажите имя секрета, описание, теги и при необходимости resource-based permissions (права доступа на ресурс).

- На шаге конфигурации ротации можно включить или отключить автоматическую ротацию. Для простоты в этом примере выбрана опция “Disable automatic rotation”.

- Вы увидите примеры кода для получения секрета из разных SDK/CLI. Нажмите “Store” чтобы сохранить секрет.

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

Шаг 3 — Получение значения секрета
- Откройте секрет и нажмите “Retrieve secret value” (Получить значение секрета), чтобы увидеть сохранённые пары key:value.

- В консоли также отображается история обращений — когда секреты запрашивались ранее.


Шаг 4 — Удаление секрета (запланированное удаление)
Когда секрет больше не нужен, лучше удалить его, чтобы избежать начисления платы за хранение.
- В консоли секрета нажмите Actions → Delete secret.

- Укажите период ожидания в днях (от 7 до 30) — в течение этого времени секрет сохраняется и может быть восстановлен. После истечения периода секрет окончательно удаляется и восстановление невозможно.

- После планирования удаления вы увидите статус с возможностью отмены.

Примечание: пока секрет запланирован на удаление, доступ к нему через API/SDK обычно недоступен — плановое удаление делает секрет недоступным для большинства операций до восстановления.
Шаг 5 — Отмена удаления секрета (восстановление)
Если удаление было запланировано ошибочно, вы можете отменить его.
- По умолчанию в списке секретов скрыты те, что запланированы на удаление. Нажмите значок настроек (шестерёнку) в консоли Secrets Manager, чтобы показать скрытые.

- В настройках установите флажок “Show secrets scheduled for deletion” и сохраните.

- В списке появятся запланированные к удалению секреты. Откройте нужный секрет и нажмите “Cancel deletion” (Отменить удаление).


После подтверждения секрет будет восстановлен и снова станет доступен для получения значений.

Практическое руководство: короткий SOP для управления секретами
- Создание: используйте осмысленные имена (например, app-name/env/credential-type) и теги для поиска.
- Права: применяйте принцип наименьших привилегий (least privilege) через IAM и resource-based policies.
- Ротация: задайте автоматическую ротацию для продовых секретов; для короткоживущих токенов используйте механизм выдачи токенов и не храните их долго.
- Мониторинг: включите CloudTrail и оповещения при неудачных попытках доступа.
- Удаление: используйте минимум 7 дней ожидания; для критичных секретов — 30 дней.
Роль-ориентированный чеклист перед удалением
- DevOps/Инфраструктура:
- Убедился, что секрет не используется сервисами (проверить конфигурацию и переменные окружения).
- Проверил зависимости в CI/CD пайплайнах.
- Разработчик:
- Обновил конфигурацию приложений на новые ключи.
- Провёл тесты интеграции в staging.
- Безопасность/Compliance:
- Подтвердил, что резервные копии и журналы соответствуют регуляторным требованиям.
Альтернативные подходы и когда их выбирать
- AWS Systems Manager Parameter Store — хорош для простых конфигураций и менее чувствительных значений; бесплатен для стандартных параметров и поддерживает KMS.
- HashiCorp Vault — выбрать, если требуется централизованный контроль политик ротации, динамические секреты и мультиоблачность.
- Хранение в зашифрованных файлах/секретах CI (например, GitHub Secrets) — удобно для конкретных CI/CD workflows, но не заменяет централизованное хранилище секретов для продакшна.
Когда Secrets Manager может не подойти:
- Если нужна мультиоблачная синхронизация «из коробки» — лучше рассмотреть Vault.
- Если стоимость хранений критична и секретов много — для менее чувствительных значений Parameter Store может быть дешевле.
Ментальные модели и эвристики
- Модель «хранилище как сейф»: секреты находятся под управлением KMS (ключи), IAM — кто имеет доступ к сейфу, сервисы получают временный доступ.
- Эвристика ротации: если секрет доступен многим сервисам — повышенный приоритет для автоматической ротации и чётких change-out процессов.
Риски и меры смягчения
- Риск: случайное удаление секретов, приводящее к простою.
- Смягчение: использовать период ожидания 30 дней для критичных секретов; иметь процесс восстановления; тестировать восстановление.
- Риск: широкие IAM политики, дающие доступ большому кругу пользователей.
- Смягчение: аудиты IAM, применяйте роль на основе задач, используйте условия (conditions) по IP/VPC/Time.
- Риск: утечка через логи или метаданные.
- Смягчение: следите, чтобы секреты не писались в логи; используйте маскирование и review logging policies.
Минимальная жёсткая рекомендация по безопасности
- Всегда шифруйте секреты с помощью KMS; используйте собственный CMK для изоляции.
- Включите CloudTrail для аудита операций с секретами.
- Настройте оповещения на аномалии доступа и частые запросы.
Набор тестов и критерии приёмки
- Тесты создания: секрет можно создать со значениями key:value и получить их через консоль и CLI.
- Тесты удаления: при планировании удаления секрет становится недоступен для чтения; статус показывает дату окончательной очистки.
- Тесты восстановления: отмена удаления возвращает секрет и позволяет прочитать значения.
- Критерии приёмки: секреты создаются и читаются корректно; права доступа соответствуют принципу наименьших привилегий; процесс восстановления работает в заданный период.
Короткий словарь (1 строка на термин)
- Secret — защищённый набор конфиденциальных данных (например, ключ API, пароль).
- KMS — сервис AWS для управления ключами шифрования.
- Ротация — автоматическая или ручная замена значения секрета.
- Отложенное удаление — механизм, при котором секрет помечается на удаление и хранится в течение периода ожидания.
Итог
В статье показано, как шаг за шагом создать секрет в AWS Secrets Manager, сохранить пары key:value, запланировать удаление и, при необходимости, отменить удаление. Дополнительно приведены рекомендации по безопасности, альтернативные инструменты и практические чеклисты для команд.
Ключевые рекомендации:
- Применяйте принцип наименьших привилегий.
- Используйте KMS и включите аудиторские логи.
- Настройте тестируемую ротацию и процесс восстановления.
Спасибо за внимание. Если нужно — могу подготовить краткое SOP в формате таблицы или шаблон IAM-политики для доступа к секретам.
Похожие материалы
Как запланировать сообщение в Telegram
Запланировать тёмную тему в Chrome и Firefox
Как получить бесплатный SSL для сайта
Качество видео на Disney+: настроить и понять
Composables в Vue — как заменить миксины