Безопасно ли кэшировать незашифрованные ключи API в облачных функциях Google? - PullRequest
0 голосов
/ 26 сентября 2018

Наша облачная функция Google имеет доступ к зашифрованному ключу API, который можно расшифровать с помощью внешней службы.После того, как ключ API не зашифрован, безопасно ли кешировать ключ API как глобальную переменную, чтобы в случаях, когда облачная функция Google использовалась повторно, вместо обращения к службе дешифрования можно было использовать незашифрованную переменную?

РЕДАКТИРОВАТЬ:

Мы думаем, что функция будет использовать незашифрованную версию ключа API при запуске (т.е. сохранить его в своей памяти для использования) и что это кэш, я считаю,находится в памяти и для каждой функции, что, насколько мне известно, сделает не менее безопасным кэширование незашифрованного ключа API для каждой функции, чем получение и дешифрование его при каждом вызове функции?

«Безопасный» былплохой выбор слова - не существует такой вещи, как безопасность, все в некоторой степени является уравновешивающим действием.

1 Ответ

0 голосов
/ 27 сентября 2018

По статистике, чем дольше вы храните конфиденциальную информацию в памяти, тем легче плохому актеру овладеть ею.Но вы никогда не сможете полностью исключить вероятность этого.Вопрос в том, как этот плохой актер попадает в Облачные Функции.В тот момент, когда это становится возможным, у вас есть проблема.Это может произойти, если вы доверяете сторонний код в своем развертывании, или кто-то завладеет учетными данными администратора вашего проекта или ошибкой в ​​безопасности в Google.

Но если вы предполагаете, что нет возможности ввода плохого актераВ системе не имеет значения, сколько времени вы держите что-то в памяти, поскольку вы доверяете каждому коду, который может получить к нему доступ (и, конечно, Google предоставляет эту память).

Память нене проводится строго "за функцию".Это будет проводиться "за функцию за экземпляр".В зависимости от нагрузки у вас может быть много экземпляров сервера, все расшифровывающих и хранящих конфиденциальную информацию.Но код, выполняющийся на экземпляре, будет запускаться только из одной функции, а не из других.

Кэширование ключей API в памяти таким способом действительно делает изменение ключей API более сложным, если вам нужно было быстро их изменить, т.е.из-за утечки - и наоборот, можно сохранить временную метку в глобальной переменной и сделать недействительным ключ по истечении x промежутков времени или перезапустить все функции, чтобы очистить кэш памяти и обновить версии ключей API.извлекаются, что произойдет, если вы добавите новую версию функции в Google Cloud Functions

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...