Вам нужно увеличить таймаут в вашем соединении. Если вы не можете или не хотите делать это по какой-либо причине, вы можете попробовать позвонить:
data = db.query(sql).store_result()
Это приведет к немедленному отображению всех результатов, тогда ваше соединение не будет выходить за полпути через итерации по ним.
Ответ на ваш вопрос ... если случится так, что неавторизованный пользователь получит копию вашего идентификатора главного ключа и вашего зашифрованного ключа данных, он не сможет использовать этот главный ключ, если у него нет доступа. на ваши учетные данные пользователя AWS с соответствующими правами на использование этого мастер-ключа.