Как мне предоставить разрешения из GCP функциям Firebase для доступа к ресурсам? (как GCE)

#node.js #firebase #express #google-cloud-platform #google-compute-engine

# #node.js #firebase #экспресс #google-облачная платформа #google-compute-engine

Вопрос:

кто-нибудь знает, как мне дать разрешение из моего проекта в GCP на функцию, созданную и развернутую в firebase? Потому что то, что я делаю, заключается в следующем:

  1. С сайта (развернутого также в firebase) y вызов серверной части (функция Firebase)
  2. Сама функция пытается получить ресурсы из моего проекта GCP (в зависимости от того, какие экземпляры запущены в данный момент)
  3. Затем я получаю их и показываю на лицевой стороне.

Шаг 2 вызывает мои проблемы, в настоящее время, когда я пытаюсь его запустить, он выдает мне ошибку: Ошибка: не удалось обработать запрос, и в журнале из функции firebase я получил: GaxiosError: требуется разрешение ‘compute.instances.list’ для ‘projects / ProjectID’, поэтому я знаю конечно, это проблема авторизации.

Весь этот проект работал очень хорошо 2 месяца назад, но срок моей бесплатной пробной версии истек, и мы попытались перейти на другую учетную запись GCP и попытаться завершить этот проект (при этом я знаю, что код работает правильно, проблема наверняка в GCP, потому что также, когда я использую другие КОНЕЧНЫЕ ТОЧКИ API, не связанные с GCPресурсы, они работают просто хорошо).

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

Ответ №1:

Добавьте роль IAM, содержащую требуемое разрешение, в учетную запись службы облачных функций.

Например, роль roles/compute.viewer имеет разрешение compute.instances.list .

Просмотрите эту страницу, чтобы узнать больше о ролях IAM в вычислительном ядре:

Роли и разрешения IAM вычислительного движка

Функции Firebase — это облачные функции. Облачные функции используют App Engine default service account для контроля доступа. Формат имени учетной записи службы: PROJECT_ID@appspot.gserviceaccount.com . Найдите эту учетную запись службы в IAM и добавьте роль, указанную выше.

Управление доступом к облачным функциям

Комментарии:

1. Большое вам спасибо за вашу помощь. Проблема заключалась в том, что Функции были в другом проекте на GCP. Итак, я включил GCE API в этом проекте и создал экземпляр, и он работал корректно. Теперь мой новый вопрос: можно ли использовать функции из проекта «B» для доступа к ресурсам из проекта «A»? Еще раз спасибо за ваш полезный ответ.

2. ДА. В проекте A перейдите в раздел IAM. Добавьте адрес электронной почты учетной записи службы App Engine из проекта B. Назначьте необходимые роли.