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

Cân nhắc bảo mật cho việc triển khai MariaDB trên môi trường đám mây lai

Đám mây kết hợp có thể là một cách tuyệt vời để thêm tính linh hoạt cho các triển khai tại chỗ hiện có của bạn. Như chúng ta đã thảo luận trong một số blog, đám mây công cộng có thể là một bổ sung tuyệt vời cho trung tâm dữ liệu của riêng bạn, đảm bảo bạn có thể dễ dàng mở rộng quy mô để xử lý tải, giảm capex của bạn và được sử dụng để thực hiện các quy trình khôi phục sau thảm họa. Bảo mật là một khía cạnh khác mà bạn phải nghĩ đến khi lên kế hoạch xây dựng các hệ thống như vậy. Trong bài đăng trên blog này, chúng tôi sẽ nói về một số cân nhắc bảo mật cho việc triển khai MariaDB đám mây lai.

Kết nối

VPN

Phần chính của mọi cơ sở hạ tầng kết hợp là mạng. Rốt cuộc, chúng ta đang nói về hai môi trường, cục bộ, tại chỗ và đám mây công cộng, phải được kết nối và tạo thành một thực thể duy nhất. Kết nối phải được mã hóa. Làm thế nào để tiếp cận nó, có nhiều cách để làm như vậy.

Một trong số chúng sẽ là sử dụng giải pháp do nhà cung cấp dịch vụ đám mây cung cấp - hầu hết chúng đều có sẵn một số tùy chọn kết nối. Nó có thể là AWS Direct Connect nếu bạn tình cờ tích hợp với Amazon Web Services. Nếu bạn định sử dụng Google Cloud, các giải pháp sẽ được thảo luận trên trang web sau:https://cloud.google.com/hybrid-connectivity. Nói tóm lại, có một số lượng đáng kể các tùy chọn khác nhau, từ tích hợp VPN phần cứng đến thiết lập ngang hàng BGP.

Ở phía bên kia của phổ, chúng tôi có các giải pháp VPN phần mềm. OpenVPN hoặc loại phần mềm tương tự có thể được sử dụng để thiết lập kết nối mạng an toàn, được mã hóa giữa trung tâm dữ liệu của riêng bạn và đám mây công cộng. Trong trường hợp như vậy, bạn sẽ yêu cầu một phiên bản riêng biệt chạy trong đám mây công cộng sẽ được sử dụng cho máy chủ VPN. Việc sử dụng VPN phần mềm cho phép bạn chọn giải pháp phù hợp nhất với yêu cầu của bạn và phù hợp nhất với môi trường của bạn.

Tường lửa

Cơ sở dữ liệu không bao giờ được truy cập từ các mạng bên ngoài. Điều tối quan trọng là xây dựng môi trường của bạn theo cách mà tầng cơ sở dữ liệu sẽ chỉ có thể truy cập được từ một nhóm máy chủ giới hạn. Chính xác những gì được yêu cầu và làm thế nào để làm điều đó, tùy thuộc vào bạn quyết định. Một thiết lập điển hình sẽ bao gồm một tầng cơ sở dữ liệu bảo mật chỉ có thể được truy cập từ tầng proxy và nếu cần, một số loại máy chủ lưu trữ nhảy nên được triển khai nếu cần cho các tác vụ tự động hóa và quản trị.

Máy chủ ứng dụng không được có quyền truy cập trực tiếp vào cơ sở dữ liệu - chúng không cần thiết. Tất cả những gì ứng dụng cần làm là kết nối với bộ cân bằng tải. Bộ cân bằng tải sẽ có thể kết nối với cơ sở dữ liệu. Một trình cân bằng tải như ProxySQL hoàn toàn có khả năng thực hiện phân tách đọc / ghi và gửi các lần đọc và ghi đến các nút cơ sở dữ liệu chính xác. Ứng dụng sẽ có thể kết nối với ProxySQL và phần còn lại sẽ được xử lý bởi proxy - xác thực cơ sở dữ liệu, định hình lưu lượng, phân phối lưu lượng trên nhiều bản sao mà bạn có thể có. Tất cả các truy cập không cần thiết nên được hạn chế. Nhóm bảo mật, tường lửa - đây là những công cụ bạn muốn sử dụng để bảo vệ môi trường của mình.

Tóm lại, chỉ cho phép truy cập vào máy chủ cơ sở dữ liệu trên các cổng được yêu cầu. Đối với MariaDB, rõ ràng nó sẽ là một cổng được sử dụng cho cơ sở dữ liệu nhưng cũng có thể là các cổng khác nếu cần - bạn có thể đã cài đặt một số loại trình xuất hoặc đại lý. Đối với Galera, bạn sẽ cần mở các cổng để giao tiếp trong cụm. Bạn cũng có thể muốn có một cổng mở cho các kết nối SSH. Tốt nhất, hãy giới hạn quyền truy cập trên cơ sở từng máy chủ; chỉ một bộ máy chủ giới hạn mới có thể truy cập vào một cổng nhất định. Ví dụ:cổng cơ sở dữ liệu có thể có thể truy cập được từ các nút cơ sở dữ liệu khác, máy chủ cục bộ và lớp proxy. Không cần phải giữ nó mở cho các nút khác. Các nút cơ sở dữ liệu của bạn thậm chí có thể nằm trên một mạng con riêng biệt, đảm bảo rằng bảo mật thậm chí còn chặt chẽ hơn.

Đối với các cổng, phương pháp hay nhất là thay đổi chúng từ cài đặt mặc định sang cài đặt khác. Lý tưởng nhất là một cái gì đó ngẫu nhiên. Thay đổi cổng SSH từ 22 thành 2222 hoặc cổng MariaDB từ 3306 thành 33306 có thể giúp tránh một số cuộc tấn công tự động nhưng vẫn có thể xác định được nếu ai đó đang tích cực tìm cách xâm nhập vào mạng của bạn. Nếu bạn muốn bảo mật tốt hơn, bạn có thể tiếp tục với một số giá trị ngẫu nhiên. Đặt SSH thành 5762 và MariaDB thành 24359. Rất có thể không ai có thể đoán được chúng. Đặt thời gian chờ TCP của bạn để quá trình quét cổng sẽ rất lâu và tốn kém và điều này chắc chắn sẽ làm tăng cơ hội của bạn.

SSL

Ngoài VPN và tường lửa, bạn nên đảm bảo rằng lưu lượng truy cập cơ sở dữ liệu của mình được mã hóa bằng SSL.

Lý tưởng nhất là bạn sẽ bảo vệ cả kết nối frontend (từ bộ cân bằng tải) và giao tiếp giữa các nút cơ sở dữ liệu của bạn (có thể là sao chép hoặc chuyển giao trong cụm trong các cụm Galera). ClusterControl có thể giúp bạn bật các tùy chọn đó chỉ với một vài cú nhấp chuột.

Tất cả những gì bạn cần làm là để ClusterControl tạo chứng chỉ mới hoặc sử dụng một trong những chứng chỉ hiện có - bạn có thể nhập chứng chỉ của riêng mình nếu muốn. Việc bật SSL đảm bảo rằng lưu lượng truy cập cơ sở dữ liệu sẽ không thể đọc được ngay cả bởi một người nào đó đã có quyền truy cập vào mạng của bạn.

Bảo mật Cơ sở dữ liệu

Tất nhiên, mạng không phải là khía cạnh bảo mật quan trọng duy nhất. Vâng, điều này rất quan trọng, đặc biệt là trong môi trường đám mây lai, nhưng cũng có những khía cạnh rất quan trọng khác. Một trong số đó là kiểm soát truy cập được nhúng vào MariaDB.

Kiểm soát Truy cập Dựa trên Vai trò cho MariaDB

MariaDB đi kèm với một bộ công cụ để đảm bảo rằng quyền truy cập cơ sở dữ liệu được quản lý và hạn chế đúng cách ở bất cứ nơi nào được yêu cầu. Dòng xác thực đầu tiên là người dùng. Mọi người và mọi thứ được phép truy cập MariaDB nên sử dụng người dùng được chỉ định để kết nối với cơ sở dữ liệu. Những người dùng như vậy sẽ có mật khẩu thích hợp - bạn có thể bật xác thực mật khẩu trong MariaDB để đảm bảo rằng mật khẩu đủ mạnh. Tốt nhất, bạn nên giới hạn máy chủ truy cập của người dùng chỉ ở tên máy chủ hoặc IP của bộ cân bằng tải - đây phải luôn là cách người dùng kết nối với cơ sở dữ liệu. Đối với một số người dùng quản trị, bạn có thể muốn giữ quyền truy cập máy chủ cục bộ nếu được yêu cầu. Ngoài việc thực thi cường độ mật khẩu thích hợp, bạn có thể định cấu hình mật khẩu hết hạn trong một khoảng thời gian nào đó hoặc thực thi xoay mật khẩu đối với người dùng. Như bạn có thể tưởng tượng, một chính sách xoay vòng mật khẩu thích hợp là điều bạn sẽ muốn triển khai.

Mọi người dùng trong MariaDB có thể được gán nhiều đặc quyền. Các đặc quyền có thể được chỉ định trên nhiều cấp độ - cấp độ toàn cầu, cấp độ cơ sở dữ liệu, cấp độ bảng hoặc thậm chí cấp độ cột. Cách tốt nhất là cấp một số đặc quyền hạn chế cho người dùng càng tốt. Nếu người dùng chỉ yêu cầu quyền truy cập vào một bảng cụ thể, chỉ cần cấp cho anh ta quyền đó. Người dùng đó không cần phải truy cập các bảng khác, chưa kể đến các lược đồ khác. Bạn có thể xác định các quyền truy cập khá chi tiết bằng cách sử dụng một tập hợp lớn các đặc quyền mà bạn có thể cấp cho người dùng. Nó bao gồm các quyền đọc, cập nhật hoặc xóa dữ liệu thông qua đặc quyền quản lý cơ sở dữ liệu cho đến đặc quyền "siêu" cho phép người dùng thực hiện các hành động như quản lý các chuỗi sao chép và bỏ qua cài đặt read_only.

Trên hết, MariaDB đi kèm với các vai trò - để giúp quản lý người dùng dễ dàng hơn, có thể xác định các vai trò với một tập hợp các đặc quyền được cấp nhất định và sau đó chỉ định các vai trò đó cho người dùng. Những người dùng như vậy sẽ kế thừa các khoản trợ cấp liên quan đến vai trò mà nó đã được chỉ định, giúp quản lý các khoản trợ cấp trên quy mô lớn dễ dàng hơn:thay vì thay đổi các khoản trợ cấp cho nhiều người dùng, bạn có thể chỉ định họ cho một vai trò cụ thể và sau đó quản lý tất cả các đặc quyền của họ bằng cách thay đổi các đặc quyền được cấp cho vai trò mà họ đã được chỉ định.

Bạn cũng nên đảm bảo rằng bạn không có bất kỳ người dùng nào từ trước mà không có mật khẩu được chỉ định hoặc có bộ đặc quyền quá lớn. Việc kiểm tra bảo mật như vậy nên được thực hiện theo thời gian, đảm bảo rằng bạn nhận thức được các rủi ro bảo mật tiềm ẩn và bạn có thể lập kế hoạch để thực hiện chúng.

Nhật ký kiểm tra

Nếu cơ sở dữ liệu của bạn đi kèm với nhật ký kiểm tra, giống như MariaDB, bạn nên cân nhắc sử dụng nó để theo dõi các hành động đang xảy ra trong cơ sở dữ liệu. Nhật ký kiểm tra sẽ giúp bạn thực hiện điều đó. Khi nó được kích hoạt, bạn sẽ có thể theo dõi ngay cả các chi tiết như người dùng nào đã thực hiện truy vấn nào. Nếu bạn tình cờ sử dụng ClusterControl, bạn có thể bật nhật ký kiểm tra chỉ bằng một vài cú nhấp chuột:

Tóm lại blog này, có một số điều bạn nên cân nhắc khi thiết kế triển khai MariaDB trong môi trường đám mây lai. Một số liên quan chặt chẽ đến cách môi trường được thiết kế, một số liên quan khá nhiều đến loại cơ sở dữ liệu mà bạn sử dụng và việc bạn sử dụng đám mây lai không thực sự thay đổi nhiều. Điều thực sự quan trọng là đảm bảo rằng cơ sở dữ liệu của bạn được bảo vệ đúng cách - đó là mục tiêu cuối cùng, bất kể môi trường là gì.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. 3 cách trả lại Modulo trong MariaDB

  2. So sánh RDS và EC2 để quản lý MySQL hoặc MariaDB trên AWS

  3. ClusterControl:Giới thiệu về Màn hình Truy vấn Mới

  4. Đặt Bộ ký tự và đối chiếu của cơ sở dữ liệu trong MariaDB

  5. Triển khai MySQL, MariaDB, Percona Server, MongoDB hoặc PostgreSQL - Dễ dàng với ClusterControl