MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

Mẹo quản lý MongoDB từ xa

Làm việc từ xa do đại dịch Covid-19 có nghĩa là tầm quan trọng của các cơ sở hạ tầng biệt lập ngày càng gia tăng; cụ thể hơn là những hệ thống chỉ có thể được truy cập thông qua mạng nội bộ nhưng theo cách mà những người được ủy quyền từ thế giới bên ngoài có thể truy cập vào hệ thống bất cứ lúc nào hoặc bất cứ nơi đâu.

Trong bài viết này, chúng tôi sẽ chia sẻ một số bước cơ bản mà bạn phải thực hiện với MongoDB để đảm bảo truy cập an toàn trong khi quản trị cơ sở dữ liệu.

Bảo mật MongoDB

Trước khi truy cập cơ sở dữ liệu MongoDB từ xa, bạn phải thực hiện "làm cứng" môi trường. Đặt những điều sau ở phía cơ sở hạ tầng:

Bật Xác thực MongoDB

Tính năng này là bắt buộc để bật, bất kể chúng ta muốn truy cập cơ sở dữ liệu MongoDB từ mạng nội bộ hay từ mạng bên ngoài. Trước khi bật ủy quyền, trước tiên bạn phải tạo người dùng quản trị trong MongoDB. Bạn có thể chạy lệnh dưới đây để tạo người dùng quản trị trong một trong các máy chủ mongoDB của bạn:

$ mongo

> use admin

> db.createUser(

      {

          user: "admin",

          pwd: "youdontknowmyp4ssw0rd",

          roles: [ "root" ]

      }

  );

Lệnh trên sẽ tạo một người dùng mới có tên là admin với các đặc quyền root. Bạn có thể bật tính năng MongoDB Auth bằng cách mở tệp /etc/mongod.conf rồi thêm dòng sau:

  security:

   authorization: 'enabled'

Đừng quên khởi động lại dịch vụ mongoDB của bạn để áp dụng các thay đổi. Lệnh trên sẽ hạn chế quyền truy cập vào cơ sở dữ liệu, chỉ người có thông tin đăng nhập mới đủ điều kiện đăng nhập.

Thiết lập Vai trò và Đặc quyền

Để ngăn chặn việc lạm dụng quyền truy cập vào MongoDB, chúng tôi có thể triển khai quyền truy cập dựa trên vai trò bằng cách tạo một số vai trò và các đặc quyền của nó.

Đảm bảo bạn có danh sách những người dùng cần truy cập cơ sở dữ liệu và hiểu nhu cầu cũng như trách nhiệm của mỗi cá nhân. Tạo các vai trò và gán các đặc quyền cho các vai trò đã tạo này. Sau đó, bạn có thể chỉ định người dùng của mình cho một vai trò dựa trên trách nhiệm.

Cách tiếp cận này giúp chúng tôi giảm thiểu việc lạm dụng quyền hạn và xác định vai trò cũng như người dùng ngay lập tức khi có điều gì đó không mong muốn xảy ra.

Định cấu hình Kết nối SSL / TLS

MongoDB hỗ trợ kết nối SSL / TLS để bảo mật dữ liệu khi truyền. Để thực hiện điều này, bạn phải tạo Khóa SSL của riêng mình, bạn có thể tạo bằng cách sử dụng openssl. Để bật hỗ trợ SSL / TLS, bạn có thể chỉnh sửa tệp /etc/mongod.conf và thêm thông số sau:

  net:

      tls:

         mode: requireTLS

         certificateKeyFile: /etc/mongo/ssl/mongodb.pem

Sau khi thêm các tham số này, bạn cần khởi động lại dịch vụ MongoDB. Nếu bạn có kiến ​​trúc bản sao MongoDB, bạn cần áp dụng chúng trên mỗi nút. SSL cũng cần thiết khi máy khách truy cập MongoDB, cho dù đó là từ phía ứng dụng hay từ máy khách trực tiếp.

Để sử dụng trong sản xuất, bạn nên sử dụng các chứng chỉ hợp lệ được tạo và ký bởi một cơ quan cấp chứng chỉ duy nhất. Bạn hoặc tổ chức của bạn có thể tạo và duy trì chứng chỉ với tư cách là tổ chức phát hành chứng chỉ độc lập hoặc sử dụng chứng chỉ do nhà cung cấp TLS / SSL bên thứ ba tạo. Ngăn chặn việc sử dụng chứng chỉ tự ký, trừ khi đó là một mạng đáng tin cậy.

Hạn chế Cổng Cơ sở dữ liệu

Bạn phải đảm bảo rằng chỉ có cổng MongoDB được mở trên máy chủ tường lửa hoặc thiết bị tường lửa, đảm bảo rằng không có cổng nào khác được mở.

Bảo mật Kết nối MongoDB

Kết nối từ xa qua internet công cộng có nguy cơ dữ liệu được truyền từ người dùng cục bộ đến máy chủ cơ sở dữ liệu và ngược lại. Những kẻ tấn công có thể làm gián đoạn kết nối, trong trường hợp này được gọi là cuộc tấn công MITM (Min-in-The-Middle). Bảo mật kết nối là rất cần thiết khi chúng ta quản lý / quản trị cơ sở dữ liệu từ xa, một số điều chúng ta có thể áp dụng để bảo vệ quyền truy cập của chúng ta vào cơ sở dữ liệu như sau:

Truy cập Mạng Riêng

VPN (Mạng riêng ảo) là một trong những điều cơ bản khi chúng ta muốn truy cập cơ sở hạ tầng của mình từ bên ngoài một cách an toàn. VPN là một mạng riêng sử dụng các mạng công cộng để truy cập các trang web từ xa. Thiết lập VPN yêu cầu phần cứng phải được chuẩn bị cho phía mạng riêng, bên cạnh đó máy khách cũng cần phần mềm VPN hỗ trợ truy cập vào mạng riêng.

Bên cạnh việc sử dụng VPN, một cách khác để truy cập máy chủ MongoDB là sử dụng cổng chuyển tiếp cơ sở dữ liệu qua SSH, hay còn được gọi là SSH Tunneling.

Sử dụng SSL / TLS từ Máy khách đến Máy chủ cơ sở dữ liệu

Ngoài việc triển khai truy cập an toàn bằng VPN hoặc SSH Tunneling, chúng ta có thể sử dụng SSL / TLS đã được định cấu hình trước đó ở phía MongoDB. Bạn chỉ cần khóa SSL mà bạn có và thử kết nối với cơ sở dữ liệu bằng Khóa SSL.

Bật Giám sát Cơ sở dữ liệu

Điều cần thiết là bật dịch vụ giám sát để hiểu trạng thái hiện tại của cơ sở dữ liệu. Máy chủ giám sát có thể được cài đặt trong miền công cộng đã bật SSL / TLS, do đó, quyền truy cập tự động vào trình duyệt có thể sử dụng HTTP.

Kết luận

Thật là thú vị khi làm việc tại nhà, bạn có thể tương tác với con mình và đồng thời theo dõi cơ sở dữ liệu của mình. Bạn phải tuân theo các nguyên tắc trên để đảm bảo rằng bạn không bị tấn công hoặc bị đánh cắp dữ liệu khi truy cập cơ sở dữ liệu của mình từ xa.


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Sự khác biệt giữa Spring Data MongoDB và Hibernate OGM cho MongoDB là gì?

  2. findOne Subdocument ở Mongoose

  3. Việc rút ngắn tên thuộc tính MongoDB có đáng giá không?

  4. Cách đơn giản để tạo mã với Mongoose và Node.js và Underscore?

  5. Redis vs MongoDB