仅允许服务帐户访问 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,然后将只允许您的规则为其设置的访问权限。
我需要在远程服务器上有一些代码 运行,只能访问我的 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,然后将只允许您的规则为其设置的访问权限。