Какие разрешения необходимы для отправки сообщений через FCM?
Я пытаюсь настроить служебную учетную запись для FCM с помощью Terraform. Я создал пользовательскую роль на основе разрешений в справочнике по разрешениям Firebase IAM. Я не могу заставить его работать.
Вот моя пользовательская роль (включая права доступа):
resource "google_project_iam_custom_role" "firebase_access" {
project = "${data.google_project.firebase_project.id}"
# https://firebase.google.com/docs/projects/iam/permissions
permissions = [
# Auth
"firebaseauth.configs.get",
"firebaseauth.configs.update",
"firebaseauth.configs.create",
"firebaseauth.users.create",
"firebaseauth.users.createSession",
"firebaseauth.users.delete",
"firebaseauth.users.get",
"firebaseauth.users.sendEmail",
"firebaseauth.users.update",
# Cloud Messaging
"firebasenotifications.messages.create",
"firebasenotifications.messages.delete",
"firebasenotifications.messages.get",
"firebasenotifications.messages.list",
"firebasenotifications.messages.update",
# Firebase required
"firebaseanalytics.resources.googleAnalyticsReadAndAnalyze",
"resourcemanager.projects.get",
"resourcemanager.projects.getIamPolicy",
# "resourcemanager.projects.list", Not required
"servicemanagement.projectSettings.get",
"serviceusage.apiKeys.get",
"serviceusage.apiKeys.getProjectForKey",
"serviceusage.apiKeys.list",
"serviceusage.operations.get",
"serviceusage.operations.list",
"serviceusage.quotas.get",
"serviceusage.services.get",
"serviceusage.services.list",
]
role_id = "[redacted]" # Can't have hyphens
title = "Firebase [redacted] Role"
description = "Provides the minimum permissions necessary for the [redacted] API to use Firebase"
}
Я получаю следующую ошибку:
Ошибка: произошла ошибка при попытке аутентификации на серверах FCM. Убедитесь, что учетные данные, используемые для проверки подлинности этого SDK, имеют соответствующие разрешения. См. https://firebase.google.com/docs/admin/setup для получения инструкций по настройке.
Это абсолютно несчастно. Сообщение об ошибке не помогает вообще. Проверяя учетную запись службы, созданную через Firebase, я вижу, что есть дополнительная роль, Firebase Admin SDK Administrator Service Agent
, Роль нигде не отображается в документации. Мне пришлось проверить HTTP-запрос при добавлении роли, чтобы выяснить ее настоящее имя (roles/firebase.sdkAdminServiceAgent
). Первоначально я думал, что добавление этой роли решило мою проблему, но это было неправильно. Я также добавил Editor
роль, и IAM GCP занимает некоторое время для обновления (-_-).
Сейчас я просто добавлю Editor
роль, но я бы предпочел ограничить разрешения столько, сколько я могу.
Какие минимальные разрешения необходимы для отправки сообщений FCM? Насколько я могу судить, документация не помогает.