Я пытаюсь вызвать функцию Firebase Gen 2 из своего приложения IOS.
Оно работало нормально в течение нескольких месяцев, пока я не перераспределил его сегодня, и теперь внезапно пользователи моего приложения получают Unauthenticated
при попытке его вызвать.
Я предоставил своей функции принципал allUsers
&Cloud Functions Invoker (1)
, но теперь она выдает мне следующее предупреждение:
Указанного принципала roles/run.invoker
нигде не найти.
Мои пользователи не могут получить доступ к этой функции. Google намеренно усложняет ситуацию, чем она должна быть?
В правом верхнем углу сведений о функции Cloud Run второго поколения вы должны увидеть значок «Powered by Cloud Run» и название службы Cloud Run внизу. Запомните название этого сервиса.
Затем откройте Serverless -> Cloud Run в левом меню. Вы увидите список сервисов Cloud Run. Найдите свой сервис Cloud Run и установите флажок рядом с ним. Вверху появится панель с сообщением «Выбрана 1 служба» и такими кнопками, как «Копировать», «Удалить» и «Разрешения».. Нажмите Разрешения. Панель разрешений для этого сервиса Cloud Run появится справа. Здесь вы можете назначить роль Cloud Run Invoker необходимой учетной записи службы.
Я бы также предложил удалить разрешение allUsers из исходной облачной функции, чтобы избежать непредвиденных последствий для безопасности.
@PreemPalver2 Затем вам может потребоваться предоставить роль Cloud Run Invoker другой учетной записи службы. Если ваша функция ранее вызывалась без аутентификации, вам может потребоваться добавить участника allUsers или allAuthenticatedUsers (для соответствующей облачной службы запуска, которая соответствует вашей функции gen2) и назначить роль Cloud Run Invoker, если вас устраивают последствия для безопасности такое решение (поскольку оно позволит любому вызвать вашу функцию Cloud Run Gen 2).
Хотя это отвечает на мой вопрос о том, как добавить принципала «Cloud Run Invoker», мне все еще не удается получить доступ к моей облачной функции из моего приложения Flutter. (Не проверено), но спасибо за эту невероятно полезную информацию!