【问题标题】:Running Heroku Postgres with least privilege以最低权限运行 Heroku Postgres
【发布时间】:2013-03-04 06:26:24
【问题描述】:

我可以通过网络/应用程序连接到 Heroku Postgres 数据库而不会有丢失表的风险吗?

我正在为使用 Heroku Postgres 作为后端的第三方构建 Heroku 应用程序。第三方对安全非常敏感,所以我正在考虑在整个应用程序中应用“分层安全”。例如,在 Web/应用程序层检查 SQL 注入攻击。应用“分层安全”方法我还应该保护数据库,以防错过潜在的 SQL 注入攻击,这可能会删除数据库表。

在我构建的其他系统中,数据库中至少有两个用户。首先是创建/删除表、索引、触发器等的数据库管理员,以及运行权限低于只能插入和更新记录的数据库管理员的应用程序用户。

在 Heroku Postgres 设置中,似乎没有一种方法可以创建另一个具有较少权限的用户(没有“删除表”选项)。因此应用程序必须与默认的 Heroku Postgres 用户连接,因此可能存在“删除表”的风险。

我正在运行 Heroku Postgres Crane 插件。

有没有人反对这个或有任何创造性的工作来解决这个场景?

【问题讨论】:

  • 有人可能会争辩说,如果“第三方非常安全敏感”,那么您根本不应该使用云提供商。 Heroku 或其上游提供商 AWS 有多少人能够访问数据?

标签: postgresql heroku least-privilege


【解决方案1】:

使用 Heroku Postgres,您只需连接一个帐户。这种类型的功能确实存在的一个选项是在 Heroku Postgres 上创建一个追随者。追随者异步保持最新(通常仅落后一秒左右)并且是只读的。这将允许您将访问权限授予需要它的人,而不向他们提供领导者数据库的详细信息。

【讨论】:

  • 感谢@CraigKerstiens,关注者数据库建议在最低权限要求是只读访问的情况下效果很好。不幸的是,在我的场景中,最低权限要求是用户需要对数据库进行读写访问(仅此而已)
  • 这对于监控解决方案也很有用(在这种情况下是只读用户)。 pg-extras 也应该使用这个用户来避免灾难场景(太偏执?)。
  • 需要注意的是,这些用户名和密码与主数据库相同!该帐户由于复制而存在,因此无法更改其凭据。
猜你喜欢
  • 2011-04-17
  • 2015-01-14
  • 2012-01-08
  • 1970-01-01
  • 2014-03-08
  • 1970-01-01
  • 1970-01-01
  • 2012-05-21
  • 2020-12-20
相关资源
最近更新 更多