Как сделать функцию HTTPS onCall Cloud, развернутую через Firebase частной - PullRequest
0 голосов
/ 16 апреля 2020

Документы Firebase отмечают, что:

> New HTTP and HTTP callable functions deployed with any Firebase CLI
> lower than version 7.7.0 are private by default and throw HTTP 403
> errors when invoked.

Это означает, что новое значение по умолчанию для вызываемых функций Firebase HTTP теперь будет опубликовано c, что подтверждает мое использование (больше не выбрасывает HTTP 403 без учетных данных).

Я предпочитаю, чтобы мои функции HTTP были частными, могу ли я сейчас установить это на старое поведение через Firebase? Я не вижу ничего в документах Firebase, чтобы объяснить это изменение в поведении или как переключаться между частными и общедоступными c функциями HTTP.

I do см. Документы в Google Cloud сторона, чтобы достичь этого, это безопасно просто изменить это сам?

Например. Если я go в Cloud Console и найду эту функцию, я теперь вижу «Разрешить неаутентифицированную» для этой функции:

enter image description here

И если я go В разрешениях я вижу, что члену allUsers была назначена роль Cloud Functions Invoker. Я думаю, что если я удаляю это, оно должно снова сделать его закрытым, но я не уверен, как это повлияет на потоки Firebase при развертывании / запуске этой функции.

enter image description here

1 Ответ

1 голос
/ 16 апреля 2020

Да. Роль Cloud Functions Invoker - это то, к чему вы хотите внести изменения. Вы можете сделать это, следуя инструкциям в документации , за исключением удаления всех пользователей вместо его добавления:

  1. Go в Google Cloud Console

  2. Установите флажок рядом с функцией, для которой вы хотите предоставить доступ.

  3. Нажмите Показать панель информации в В правом верхнем углу отображается вкладка «Разрешения».

  4. Развернуть Облачные функции Invoker

  5. Удалить всех пользователей, используя значок tra sh

  6. Нажмите Сохранить.

Вы даже увидите в консоли эту функцию, прежде чем вносить изменения:

Этот ресурс является общедоступным c и доступ к нему может получить любой пользователь inte rnet. Чтобы удалить доступ publi c, удалите «allUsers» и «allAuthenticatedUsers» из членов ресурса.

Это не должно повлиять на повторное развертывание с помощью Firebase CLI. Интерфейс командной строки не будет изменять разрешения для существующих функций.

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

...