Как обрабатывать ключи и учетные данные при развертывании в Google Cloud Functions?

У меня есть несколько облачных функций (на Python), для которых требуется пакет modulair auth в котором есть подпапка с credentials (содержащий в основном файлы json файлов учетных записей служб Google или конфигураций Firebase).

С точки зрения безопасности, я явно не включил эти файлы в .git добавив папку в .gitignore файл (auth/credentials).

Однако теперь я застрял в том, что делать при развертывании облачной функции Google (.gcloudignore). Если я разверну его с учетными данными, я полагаю, что эти ключи выставлены на сервере? Как я мог это преодолеть?

Я слышал некоторые разговоры о переменных окружения, но не уверен, что это безопаснее, чем простое развертывание?

Как Google это делает?

1 ответ

Решение

Вам доступны два основных решения. Во-первых, облачная функция может работать с идентификатором пользовательской учетной записи службы. Затем эту учетную запись службы можно связать со всеми ролями, необходимыми вашей логике для выполнения поставленной задачи. Ценность этого в том, что вашей логике не требуется явно знать учетные данные. Среда, в которой "неявно" выполняются ваши вызовы, имеет все, что ей нужно.

См.: Идентификатор функции

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

См.: Получение идентификаторов и токенов доступа.

Другие вопросы по тегам