PostgreSQL数据库加密静态

K.P*_*Pil 7 encryption postgresql

如何在静态时加密PostgreSQL数据库.

我找不到一个关于如何实现这一目标的好文档?

Fal*_*son 16

我也没有找到关于 EncryptionAtRest for Postgres 的文档。到达这里以了解有关 EncrAtRest 的更多信息的人应该查看提供此功能的 AWS RDS 或 MongoDB Enterprise。

我的回复是对那些遵循“批准”答案的人的警告!说“只使用文件系统加密”忽略了加密静态数据库的目的。当您加密文件系统时,这可以保护您免受复制驱动器备份或窃取物理驱动器的人的侵害。没有其他的。

网络上的攻击者已经获得了对您挂载的文件系统的访问权限,因此它已经被解密,以便操作系统、应用程序等可以访问它。

  • 可以访问您的数据库正在运行的文件系统的攻击者可能已经访问了您的数据库系统本身。你在想什么攻击不会是这种情况? (4认同)

int*_*ika 16

在这种情况下,威胁模型非常重要,因为有效地加密数据库并不是一件容易的事,这可以在 3 个不同的层(客户端应用程序、存储设备、数据库本身)完成,请注意,在所有情况下,如果客户端应用程序被破坏 加密是无用的,自数据库加密解决方案涵盖的威胁最小的模型如下所列。

  • 恶意用户窃取存储设备,直接读取数据库文件。
  • 恶意备份操作员进行备份。
  • 保护静态数据(持久数据)

数据库加密方案一:

系统磁盘加密(cryptsetup / luks)...在这种情况下不需要对 Postgres 设置进行修改。这也使堵塞和文本日志加密(静止)。如果您使用的是谷歌云虚拟机,本指南可能会有用。

数据库加密方案2:

PostgreSQL TDE(透明数据加密)这个 postgres 特性实现了整个数据库的静态数据透明加密。这里展示一个例子。

数据库加密方案3:

Pgcrypto可用于加密数据库的一部分,而不是加密所有内容的解决方案。这里展示一个例子。

  • 对于第二个解决方案,请注意:TDE 针对 PG-14。https://wiki.postgresql.org/wiki/Transparent_Data_Encryption#Scope_for_the_first_release_of_TDE (2认同)

Ric*_*ton 7

如果要加密整个数据库,只需使用文件系统加密.您可能希望加密事务日志和数据库日志,因此只需对这些驻留的文件系统进行加密.

如果您只想加密几列,那么pgcrypto模块是执行此操作的标准方法.