# #firebase #google-cloud-platform #google-cloud-functions #google-secret-manager
Вопрос:
Я предоставил учетной записи службы для функций необходимые разрешения («Секретный менеджер секретного доступа»), и при развертывании функции firebase могут получить доступ к секретам без каких-либо проблем.
Однако при использовании firebase serve
или firebase emulators:start --only functions
в локальной разработке я получаю следующую ошибку
Необработанная ошибка Ошибка: 7 РАЗРЕШЕНИЕ_ДАНО: Разрешение «secretmanager.версии.доступ» отказано в доступе к ресурсу
Я нашел в документации, что настройки export GOOGLE_APPLICATION_CREDENTIALS=pathtoserviceaccount.json
необходимо вводить в терминале, хотя это также не сработало для меня.
Я был бы благодарен за все указания. Ваше здоровье.
Ответ №1:
Я сам нашел ответ: когда функции эмулируются локально, они не запускаются App Engine default service account
по умолчанию, это также должно быть включено. Поэтому мне пришлось следовать этому уроку https://firebase.google.com/docs/functions/local-shell
App Engine default service account
Нужен ключ, который можно создать в настройках учетных записей службы в облаке Google, а затем мне пришлось ввести
export GOOGLE_APPLICATION_CREDENTIALS="path/to/key.json"
в терминале. Запустив его firebase emulators:start
, они также получили разрешение на доступ к Секретному менеджеру.
Поэтому, пока я был на правильном пути, я экспортировал неправильный ключ учетной записи Службы, а не тот, который был разрешен для запуска доступа к Секретному менеджеру.