仅允许服务帐户访问 Firetime 实时数据库的一个子集

Allow service account access only to a subset of a Firetime Realtime Database

我需要在远程服务器上有一些代码 运行,只能访问我的 Firebase 实时数据库的一个子集。

我想我将能够创建一个可以访问数据库的服务帐户,并使用安全规则管理更详细的 read/write 权限。好像不是这样的。

我不希望此服务帐户拥有对我的 Firebase 项目的任何其他访问权限。

这是我认为我的安全规则大致如下所示的示例:

{
  "rules": {
    "my_restricted_data": {
      "X": {
        ".read": "auth.my_service_account_id === 'X'",
        ".write": "auth.my_service_account_id === 'X'"
      }
    }
  }
}

查看 Google 云平台角色和权限,我似乎无法将 Firebase 实时数据库访问权限与我不想授予此服务的其他重要权限区分开来。

我有什么方法可以让它工作吗?

我正在使用 ruby firebase https://github.com/oscardelben/firebase-ruby

谢谢!

您使用的库包装了 Firebase REST API,它本身可用于作为管理超级用户和常规身份验证用户访问数据库。不幸的是,库提供的两个 ways to authenticate 都提供了对数据库的管理访问权限,但无法指定您自己的 UID。这意味着没有办法限制您的代码可以做什么。

我建议在 repo 上提交功能请求(或 PR)以添加 signing in a regular user through the REST API,然后将只允许您的规则为其设置的访问权限。