Секрет облачной функции Firebase в файле env

В документах сказано:

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

Почему это считается небезопасным?

Секрет в моем случае - это сторонний ключ API. Если я не передам секрет в систему управления версиями и заставлю облачную функцию прочитать секрет из переменных env, к которым есть доступ только у меня, сочтете ли вы это достаточно безопасным? Я чувствую, что использование Secret Manager в моем случае может быть излишним, и я хочу узнать, что вы, ребята, думаете.

Интеграция Angular - Firebase Analytics
Интеграция Angular - Firebase Analytics
Узнайте, как настроить Firebase Analytics и отслеживать поведение пользователей в вашем приложении Angular.
1
0
72
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Полный абзац в документации таков, акцент мой:

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

Таким образом, основной проблемой здесь, с точки зрения авторов этой документации, является раскрытие секретов в системе контроля версий.

Если вы не поместите свой .env в систему управления версиями, кто-то, имеющий доступ к вашему проекту Firebase/GCP (это означает, что вы предоставили его учетной записи Google доступ для просмотра консоли с использованием разрешений IAM), все еще может получить файл .env, который вы развернуты с вашей функцией. Команды разработчиков очень часто делятся доступом к такому проекту, и вы можете не захотеть, чтобы каждый из них мог видеть эти секретные данные.

Причина, по которой в документации предлагается Secret Manager, заключается в том, что вы можете использовать его, чтобы дать определенным лицам возможность читать и записывать секретные значения, чтобы вы могли безопасно делиться некоторыми аспектами проекта со своей командой, не отказываясь от доступа к секретам. Это помогает реализовать «Принцип наименьших привилегий», который просто причудливый способ сказать, что каждый человек должен иметь доступ только к тем конкретным вещам, которые ему абсолютно необходимы, и ничего более. И это важная причина, по которой существует Google Cloud IAM.

Но если вы единственный, кто когда-либо имел доступ к какой-либо части вашего проекта в консоли, вам не нужно об этом беспокоиться. Просто хорошо иметь в виду, что безопасность — это сложный вопрос, и легко получить утечку данных, не полностью понимая, как люди могут на самом деле получить доступ к вашим данным.

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