Разрешения Секретного менеджера Google Для Локальной Эмуляции функций

# #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 , они также получили разрешение на доступ к Секретному менеджеру.

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