Как зашифрованный AWS PostgreSQL RDS работает под капотом? - PullRequest
0 голосов
/ 30 июня 2018

Я прочитал, что при создании зашифрованного AWS Postgres RDS он зашифровывает базовый том EBS, созданный для него, а также все реплики чтения, резервные копии и снимки.

Кроме того, когда я запрашивал и вставлял данные в БД, они работали так же, как незашифрованная БД, и давали результаты в виде простого текста.

У меня есть несколько вопросов относительно того, как именно это работает под капотом. Вот они:

  1. Как работает поиск?

Простой поиск по значению можно выполнить, зашифровав, что искать, а затем выполнить поиск по зашифрованному RDS. Но мой поиск в PostgreSQL также работал над вложенными объектами JSONB. Как это достигается?

  1. Как работает частичный поиск?

Мне удалось выполнить частичный поиск (like запрос) по имени и адресу внутри объекта JSONB. Как выполнить частичный поиск в зашифрованной БД?

  1. Как работает вставка?

У меня есть несколько столбцов JSONB в моем PostgreSQL, и я смог частично вставить их в мои объекты JSONB. Это отличная особенность PostgreSQL, но как это было достигнуто, когда весь JSONB был зашифрован?

PS: у меня есть некоторые знания о том, как DB работает под капотом для хранения и извлечения данных, но я не могу разобраться, если все зашифровано. Извините, если я ошибаюсь в некоторых понятиях.

Буду очень признателен, если кто-нибудь сможет пролить свет на это, поскольку я не смог найти его в Интернете.

Спасибо

1 Ответ

0 голосов
/ 30 июня 2018

Вы думаете об этом. Файлы DB на томе EBS не зашифрованы с точки зрения процесса PostgreSQL, который выполняется на сервере RDS. Шифрование / дешифрование происходит на уровне гипервизора и прозрачно для любого программного обеспечения, работающего на виртуальной машине. Все те вещи, которые вы постоянно спрашиваете, как они работают, работают точно так же, как и на незашифрованных томах EBS, потому что, когда служба БД запрашивает информацию с диска, она получает незашифрованные данные.

Думайте об этом, как о том, чтобы зайти в BIOS на своем ноутбуке и включить какое-то шифрование томов диска. Вы ожидаете, что это сломает все движки баз данных, которые вы пытались запустить на своем компьютере? Ожидаете ли вы, что все программное обеспечение каким-то образом знает, как бороться с шифрованием дисков BIOS вашего ноутбука? Когда вы делаете это, все программное обеспечение, которое вы запускаете на своем компьютере (например, PostgreSQL), не должно внезапно становиться осведомленным о том, как расшифровывать данные на вашем диске, оно становится прозрачным для этого программного обеспечения и отображается для работающего программного обеспечения, как если бы диск не шифруется.

...