Я думаю, что ваш план звучит как приличный. Да, вы можете улучшить безопасность, обернув свой закрытый ключ с Cloud KMS; затем вы можете поместить завернутый ключ в исходный код или в файлы конфигурации вашего приложения, а затем при запуске развернуть, чтобы получить закрытый ключ. Это позволит вам снизить риск наличия ключа, который может расшифровать базу данных, обрабатываемую вашими разработчиками.
Другой подход заключается в том, чтобы не использовать локальное шифрование: вместо этого вы можете вызывать KMS для шифрования и дешифрования данных каждый раз при записи или извлечении строки. Это может дать вам некоторые преимущества (ключ даже не известен вашему бинарному файлу; вы получаете ротацию и т. Д. Как часть решения KMS; вы можете получать журналы каждого использования ключа), но это будет сопряжено с некоторыми расходами ( Теперь вы зависите от службы KMS для каждого запроса, задержка запросов KMS может снизить производительность, запрос на доступ стоит больше денег, чем просто развертывание при запуске, и вы полагаетесь на шифрование канала для защиты пользовательских данных при их отправке на ваш сервер. службы, поскольку теперь вы будете шифровать служебную часть).
KMS теперь также имеет асимметричную криптографическую поддержку ( документы здесь ), так что вы можете комбинировать их: выполнить шифрование с открытым ключом на стороне клиента, а затем использовать асимметричный ключ KMS для расшифровки каждого запроса. Плюсы и минусы аналогичны приведенным выше, за исключением того, что вы можете сохранить тот же уровень обработки данных и шифрование на стороне клиента, что и в настоящее время.
Я согласен с другим ответом, что преимущества безопасности при выполнении шифрования на стороне клиента здесь не совсем ясны, поскольку служба имеет право дешифровать; не ясно, что шифрование также приведет к увеличению риска. Но использование открытого ключа, как вы описываете, явно не ведет к увеличению риска (при условии, что вы делаете это правильно и правильно, а не тривиальный вопрос).
Спасибо за ваш вопрос и за использование Cloud KMS; Пожалуйста, дайте нам знать, если у вас есть дополнительные вопросы, с которыми мы можем помочь!