Безопасность в облачном хранилище Firestore, понимание базовых настроек

#ios #google-cloud-firestore #firebase-security

#iOS #google-cloud-firestore #firebase-безопасность

Вопрос:

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

То, чего я хочу достичь, довольно просто. Я хочу, чтобы любой, кто использует мое приложение для iOS, мог читать мою базу данных (и только эти люди). Я действительно не хочу, чтобы им приходилось входить в систему с именем пользователя и паролем или OAuth, если это не является необходимым. Я не совсем понимаю, нужна ли в этом случае анонимная аутентификация.

Я хочу, чтобы только внутренние пользователи-администраторы могли выполнять запись в базу данных, например, через какое-либо приложение (собственное или веб-) Я создам позже.

Какие настройки безопасности подходят?

Ответ №1:

Если вы хотите, чтобы каждый пользователь, проходящий через мобильное приложение, мог безоговорочно читать все в вашей базе данных, это единственное правило, которое вам нужно:

 service cloud.firestore {
  match /databases/{database}/documents {
    match /{document=**} {
      allow read: if true;
    }
  }
}
  

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

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

1. Хорошо, спасибо. Означает ли это, что доступ на чтение есть только у пользователей мобильных приложений? Доступ на чтение будет невозможен через (например) REST API?

2. REST API работает точно так же, как мобильные SDK с точки зрения аутентификации. Вы можете рассматривать это как еще один способ для всего мира получить доступ к вашим данным, не являясь привилегированной учетной записью службы. Если для вас это звучит как брешь в системе безопасности, подумайте о том факте, что вполне возможно, что кто-то удалит ваше приложение, получит конфигурацию вашего приложения и использует это для создания нового приложения, которое делает с вашим Firestore все, что захочет, с той же конфигурацией.

3. Хорошо, я ценю, что вы объяснили