manager, а то я не понимаю одного момента. Например, создали мы пароль для подключения к RDS, приложение его прочитало, и пользуется им. Пришло время ротировать пароль, он поменялся, но приложение-то не передепаивалось, например, и откуда оно узнает, что надо перегетать пароль? Я просто не программист, и этот момент меня смущает. Ведь не брать же пароль из secrets manager при каждом подключении к базе.
если конект падает с ошибкой аутентификации - идешь в secret manager за паролем, но я так никогда не делал, так что могу пороть чушь
проще всего брать при каждом подключении, использовать connection pool + хуки более того, и со стороны базы должна быть поддержка, например в постгре ротация через secrets manager запросто ломает доступ к данным
Ломаает - даже если мы при создании секрета с ротацией указываем, на какую базу всё это применятся? То есть этого недостаточно и надо что-то ещё в базе делать?
в общем, в secrets manager есть 2 режима ротации. с одним пользователем - просто меняется пароль на пользователе, если приложение не успело перечитать пароль, оно падает. Тут нужно проверять креды перед каждым коннектом обязательно с двумя пользователями - sm меняет пароль на неактивном пользователе, прописывает его в доступный приложению секрет, но старого не выключает до новой ротации Это бы работало хорошо без поддержки приложения, но в postgres есть такая сущность как владелец таблицы или другого объекта, и при переключении пользователей несоответствие владельца поломает приложению DDL операции. Так что тоже нужно следить
Спасибо огромное, учту
Обсуждают сегодня