Database
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Database

Bảo mật các Nhóm Mongo của bạn bằng SSL

SSL cực kỳ quan trọng để duy trì tính riêng tư và tính hợp lệ của dữ liệu của bạn trên các mạng không đáng tin cậy. Nếu bạn đang triển khai một cụm cơ sở dữ liệu sản xuất trên internet, SSL chắc chắn là thứ bạn nên xem xét. ScaleGrid hiện hỗ trợ bật SSL cho các máy chủ MongoDB của bạn.

Việc bật SSL giờ đây dễ dàng như đánh dấu vào ô trong trình hướng dẫn tạo MongoDB:

Vậy tại sao lại sử dụng SSL với MongoDB?

  1. Bảo mật

    Nếu bạn đang kết nối với máy chủ MongoDB của mình qua các mạng không an toàn, dữ liệu của bạn đang truyền đi không được mã hóa và dễ bị nghe trộm và giả mạo. SSL mã hóa dữ liệu để chỉ hai điểm cuối mới có quyền truy cập vào dữ liệu chưa được mã hóa.

  2. Xác thực

    Sử dụng PKI (cơ sở hạ tầng khóa riêng) để đảm bảo rằng chỉ những máy khách có chứng chỉ từ CA thích hợp mới có thể kết nối với máy chủ MongoDB. Đây là một bước bổ sung và bạn có thể chọn không sử dụng chứng chỉ hoặc CA tùy chỉnh của mình - bạn vẫn sẽ có các lợi ích về quyền riêng tư do mã hóa đầu cuối.

Hạn chế SSL của MongoDB

  • Chi phí Hiệu suất

    Chắc chắn có một số chi phí về hiệu suất khi sử dụng SSL. Mặc dù chúng tôi vẫn chưa chạy các thử nghiệm toàn diện, nhưng vẫn có chi phí xác định do sử dụng SSL.

  • Thiếu giao diện người dùng MongoDB

    Hầu hết giao diện người dùng MongoDB phổ biến không hỗ trợ SSL. Vì vậy, bạn có thể cần phải chuyển sang phiên bản trả phí hoặc sử dụng bảng điều khiển mongo.

Kết nối với Máy chủ MongoDB Kích hoạt SSL của bạn

Nếu bạn đang kết nối với máy chủ MongoDB có bật SSL, có một số điểm khác biệt trong mã kết nối MongoDB. Vui lòng tham khảo tài liệu về trình điều khiển của bạn để biết thêm chi tiết.

  1. Mongo Shell

    Ứng dụng khách mongo mặc định không hỗ trợ kết nối với máy chủ hỗ trợ SSL - bạn cần bản dựng MongoDB có hỗ trợ SSL. Bạn có thể SSH vào máy chủ hỗ trợ SSL và sau đó sử dụng ứng dụng khách mongo trên máy chủ để kết nối. Đây là cú pháp để kết nối bằng cách sử dụng người dùng quản trị do ScaleGrid cung cấp:

    mongo <span style="color: #758e9f;">--ssl --sslCAFile <file.crt></span> -u admin -p <pass> servername/admin 
    
    
  2. Bạn sẽ cần nối thuộc tính “ssl =true” vào chuỗi kết nối MongoDB của mình. Ngoài ra, một số nền tảng nhất định (ví dụ:JDK) sẽ yêu cầu bạn thêm khóa công khai của chứng chỉ SSL vào đường dẫn đáng tin cậy trước khi bạn có thể kết nối với máy chủ. Theo mặc định, chứng chỉ tự ký được tạo cho mọi cụm. Bạn có thể tải xuống khóa công khai của chứng chỉ SSL từ giao diện người dùng hoặc bạn có thể tải xuống chứng chỉ từ /etc/ssl/mongodb-cert.crt trên máy chủ. Trong giao diện người dùng, một liên kết để tải xuống chứng chỉ công khai SSL có sẵn trong phương thức chuỗi kết nối:

    Để biết thêm hướng dẫn về cách bạn có thể SSH vào phiên bản, hãy tham khảo phần “Thông tin đăng nhập của VM” trong bài đăng trên blog này. Tệp crt được đặt tại /etc/ssl/mongodb-cert.crt trên máy chủ. Sau khi tải xuống khóa công khai, bạn sẽ cần thêm khóa đó vào keystone đáng tin cậy của mình:

    keytool -import -alias "MongoDB-cert" -file "/etc/ssl/mongodb-cert.crt"
    -keystore "/usr/java/default/jre/lib/security/cacerts"
    -noprompt -storepass "changeit"
    

    Mật khẩu mặc định cho cửa hàng cacerts là “changeit”. Vì lý do bảo mật, bạn nên thay đổi mật khẩu này thành mật khẩu của riêng mình. Sau khi bạn đã thêm chứng chỉ, hãy liệt kê các chứng chỉ trong keystone để xác nhận rằng chứng chỉ đã được thêm vào:

    keytool -list -keystore cacerts -storepass changeit
    
  3. Giao diện người dùng Mongo:Robo 3T

    Robo 3T (trước đây là Robomongo) là một trong số ít giao diện người dùng MongoDB hỗ trợ kết nối với SSL. Khi tạo kết nối với máy chủ MongoDB của bạn, hãy chọn tùy chọn SSL. Đối với chứng chỉ, hãy sử dụng tệp .pem có cả khóa công khai và khóa riêng tư. Tệp này nằm tại / etc / ssl trên máy chủ MongoDB của bạn. Xem Hướng dẫn kết nối Robo 3T MongoDB của chúng tôi để biết thêm chi tiết.

Như thường lệ, nếu bạn có bất kỳ câu hỏi nào, vui lòng liên hệ với chúng tôi theo địa chỉ [email protected].


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Kết nối .NET trên Linux với Nguồn dữ liệu ODBC

  2. ĐẶT HÀNG SQL THEO:5 Điều Nên và Không nên để Sắp xếp Dữ liệu Giống như một Chuyên gia

  3. Cơ sở dữ liệu quan hệ so với không quan hệ - Phần 1

  4. Cách các kế hoạch song song bắt đầu - Phần 1

  5. Tránh tự ảo tưởng về Giải pháp HA / DR