Ротация паролей MySQL: использование одного пользователя для изменения паролей других пользователей
В настоящее время я работаю над настройкой стратегии ротации паролей для приложения на базе AWS Aurora / MySQL.
Я планировал использовать такую стратегию ...
- Имена пользователей и пароли приложений хранятся в зашифрованных параметрах AWS SSM.
- Серверы приложений имеют доступ для получения только своих учетных данных из SSM. Ограничено окружающей средой (постановка, производство и т. Д.)
- Лямбда настроена на периодический запуск для изменения паролей в MySQL и сохранения новых значений в SSM. Lambda для аутентификации в базе данных с использованием ролей AWS IAM, а не с использованием пароля.
И последнее, в чем я не уверен. Эта конфигурация потребует, чтобы у лямбда-роли / пользователя было разрешение на изменение паролей для всех других пользователей приложения.
Это разумный способ сделать это с точки зрения безопасности? Поскольку пользователь lambda mysql будет использовать роль IAM, а не пароль, это должно ограничить его использование только авторизованными ролями.
Альтернативой было бы не иметь специального пользователя db для лямбда-входа для входа в систему, а, скорее, чтобы лямбда-функция извлекала учетные данные каждого пользователя из SSM, а затем входила в систему как каждый пользователь, чтобы изменить свой пароль.
В любом случае лямбда должен иметь доступ к каждому пользователю.
Предполагая, что я могу аккуратно получить доступ к "lambda_user" в MySQL, есть ли какие-либо другие вопиющие проблемы с предоставлением пользователю полномочий изменять пароли других пользователей?
Кроме того, чтобы уточнить, это пользователи приложения, а не обычные пользователи человеческого типа, которые будут использовать эти учетные данные.
Ответы
Это лучший способ сделать это именно по указанным вами причинам. Если Lambda использует роль для аутентификации вместо учетных данных, вы минимизируете количество хранимых секретов, что определенно хорошо. Стоит отметить только 2 вещи:
Теперь вы можете использовать CloudFormation для автоматизации подготовки и развертывания специальной лямбда-функции только для этого. В результате вы можете сделать это относительно легко. Я лично не большой поклонник CloudFormation, но я все равно использовал бы его здесь.
Переключение на конечные точки метаданных V2 может обеспечить некоторую дополнительную защиту от SSRF, обнаруженного в вашей инфраструктуре, а также другие формы взлома, хотя в данном случае это не будет иметь большого значения.