加密的 AWS PostgreSQL RDS 是如何工作的?

How encrypted AWS PostgreSQL RDS works under the hood?

我读到在创建加密的 AWS Postgres RDS 时,它会加密为其创建的底层 EBS 卷、所有只读副本、备份和快照。

此外,当我查询数据并将其插入数据库时​​,它的工作方式与未加密的数据库相同,并以纯文本形式给出结果。

我有一些关于它到底是如何工作的问题。 他们在这里:

  1. How does search work?

可以通过加密要搜索的内容然后在加密的 RDS 上搜索来执行简单的基于值的搜索。但是我在 PostgreSQL 中的搜索也适用于 JSONB 嵌套对象。这是如何实现的?

  1. How does a partial search work?

我能够对 JSONB 对象内的名称和地址进行部分搜索(like 查询)。如何在加密数据库上进行部分搜索?

  1. How does insertion work?

我的 PostgreSQL 中有一些 JSONB 列,我能够在我的 JSONB 对象上进行部分插入。这是 PostgreSQL 的一个很酷的特性,但是当整个 JSONB 被加密时它是如何实现的呢?

PS:我对数据库在存储和检索数据方面的工作原理有一些了解,但如果所有内容都已加密,我就无法理解。如果我在某些概念上完全错误,请原谅我。

如果有人能阐明这一点,我将不胜感激,因为我无法在 Internet 上找到它。

谢谢

你想多了。从 RDS 服务器上 运行ning 的 PostgreSQL 进程的角度来看,EBS 卷上的数据库文件似乎没有加密。 encryption/decryption 发生在管理程序层,并且对 VM 上的任何软件 运行 都是透明的。您不断询问它们如何工作的所有这些东西,与在未加密的 EBS 卷上的工作方式完全相同,因为当数据库服务从磁盘请求信息时,它会收到未加密的数据。

可以把它想象成进入笔记本电脑的 BIOS 并对磁盘卷启用某种加密。您是否希望这会破坏您在计算机上尝试 运行 的所有数据库引擎?您是否希望所有软件都能以某种方式知道如何处理笔记本电脑的 BIOS 磁盘加密?当你这样做时,你计算机上 运行 的所有软件(如 PostgreSQL)都不需要突然意识到如何解密磁盘上的数据,它对该软件来说是透明的,对 运行ning 软件好像磁盘没有加密。