我读到,在创建加密的AWS Postgres RDS时,它会加密为其创建的基础EBS卷,所有只读副本,备份和快照。
当我查询并将数据插入数据库时,它的工作方式与未加密的数据库相同,并以纯文本形式给出结果。
我对它在引擎盖下的工作情况有一些疑问。 他们在这里:
- 搜索如何工作?
可以通过加密要搜索的内容然后在加密的RDS上进行搜索来执行基于值的简单搜索。但是我在PostgreSQL中的搜索也正在处理JSONB嵌套对象。如何实现的?
- 部分搜索如何工作?
我能够对JSONB对象内的名称和地址进行部分搜索(like
查询)。如何在加密的数据库上进行部分搜索?
- 插入如何工作?
我在PostgreSQL中有一些JSONB列,并且能够部分插入JSONB对象。它是PostgreSQL的一个很酷的功能,但是当整个JSONB加密后又如何实现呢?
PS:我对DB如何在存储和检索数据的后台工作有一定的了解,但是如果所有内容都经过加密,我将一头雾水。如果在某些概念上我完全错了,请原谅我。
如果有人可以阐明这一点,我真的很感激,因为我无法在互联网上找到它。
谢谢
答案 0 :(得分:3)
您太想了。从RDS服务器上运行的PostgreSQL进程的角度来看,EBS卷上的DB文件似乎未加密。加密/解密发生在系统管理程序层,并且对于在VM上运行的任何软件都是透明的。您一直询问它们如何工作的所有这些事情,与未加密的EBS卷上的工作完全一样,因为当DB服务从磁盘请求信息时,它将接收未加密的数据。
想起来就像进入笔记本电脑的BIOS并为磁盘卷启用某种加密一样。您是否希望这会破坏您尝试在计算机上运行的所有数据库引擎?您是否希望所有软件都以某种方式知道如何处理笔记本电脑的BIOS磁盘加密?当您这样做时,无需突然使计算机上运行的所有软件(例如PostgreSQL)都知道如何解密磁盘上的数据,它对该软件是透明的,对正在运行的软件来说就像磁盘一样未加密。