Как обрабатывать ключи и учетные данные при развертывании в Google Cloud Functions?
У меня есть несколько облачных функций (на Python), для которых требуется пакет modulair auth
в котором есть подпапка с credentials
(содержащий в основном файлы json файлов учетных записей служб Google или конфигураций Firebase).
С точки зрения безопасности, я явно не включил эти файлы в .git
добавив папку в .gitignore
файл (auth/credentials
).
Однако теперь я застрял в том, что делать при развертывании облачной функции Google (.gcloudignore
). Если я разверну его с учетными данными, я полагаю, что эти ключи выставлены на сервере? Как я мог это преодолеть?
Я слышал некоторые разговоры о переменных окружения, но не уверен, что это безопаснее, чем простое развертывание?
Как Google это делает?
1 ответ
Вам доступны два основных решения. Во-первых, облачная функция может работать с идентификатором пользовательской учетной записи службы. Затем эту учетную запись службы можно связать со всеми ролями, необходимыми вашей логике для выполнения поставленной задачи. Ценность этого в том, что вашей логике не требуется явно знать учетные данные. Среда, в которой "неявно" выполняются ваши вызовы, имеет все, что ей нужно.
Второй механизм, который больше соответствует тому, что вы делаете в настоящее время, использует концепцию сервера вычислительных метаданных. Эти метаданные могут быть настроены с помощью токенов, необходимых для внутренних звонков. Метаданные настраиваются отдельно от логики вашей облачной функции, которая просто извлекает данные по мере необходимости.