Я следил за учебными пособиями и курсами, чтобы научиться разрабатывать, и я стараюсь помнить о безопасности.
При использовании NodeJS, MongoDB Atlas + Mongoose следует ли шифровать данные вручную или MongoDB Atlas шифрует их автоматически?
Спасибо, что нашли время прочитать.
Всего хорошего!



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Есть несколько мест, где "данные" могут быть зашифрованы.
Когда данные хранятся на диске в базе данных. Это называется шифрованием в состоянии покоя. См. https://docs.mongodb.com/manual/core/security-encryption-at-rest/ для функции главного сервера, https://docs.atlas.mongodb.com/cluster-config/encryption/ для того, как настроить его в Atlas.
Когда данные выгружаются для подкачки операционной системой на машине, на которой запущен сервер базы данных. Своп тоже нужно зашифровать. Я не знаю, делает ли это Atlas, наверное, лучше всего задать этот вопрос через официальные каналы поддержки.
Когда данные передаются между базой данных и приложением. Это называется шифрованием при передаче и выполняется через TLS. Все развертывания Atlas используют TLS, см. https://docs.atlas.mongodb.com/reference/faq/security/.
Кроме того, даже несмотря на то, что вышеупомянутые механизмы шифруют данные в различные моменты своей жизни, системы, которые работают с данными (то есть сервер базы данных) а также люди, которые управляют этими системами, всегда имеют доступ к незашифрованному тексту. Чтобы сервер и компания MongoDB не могли читать ваш открытый текст, используйте шифрование на стороне клиента (https://docs.mongodb.com/manual/core/security-client-side-encryption/). Это также снижает риск незашифрованного свопа (если это то, что использует Атлас).
Взгляните на docs.atlas.mongodb.com/cluster-config/encryption