На вопрос сложно ответить.Однако, здесь есть некоторые идеи.
Предпочтительный способ - иметь серверный бэкэнд, Стандарт AppEngine , Работа в облаке или Функция облака для выполненияэто.Пользователь выполняет свою аутентификацию и затем обменивается токеном безопасности между внешним интерфейсом и внутренним интерфейсом.Когда пользователь хочет получить доступ к ресурсу GCP, он запрашивает сервер, который запрашивает запрос, благодаря своей учетной записи службы.
Кстати, пользовательский запрос легко отследить и обслуживать только ресурсысвязано с этим.И у вас есть только одна служебная учетная запись для бэкэнда
. Если вы предоставляете пользователю доступ к корзине, он может загрузить все файлы (но, может быть, для каждого пользователя есть одна корзина?).Если вы решили ограничить доступ к объектам с помощью ACL, управление будет сложным.
Вам не нужно иметь учетную запись службы на пользователя (и в любом случае у вас есть квота на 100 учетных записей службы).для каждого проекта ) вы можете использовать Cloud Identity Platform (CIP) вместо базы данных MongoDB для аутентификации (CIP не выполняет авторизацию, вы должны использовать MongoDB для авторизации и другие материалы, связанные с аутентифицированным пользователем). CIP переименован в Firebase Auth