Giới thiệu về Apigee mTLS

Tính năng mTLS của Apigee giúp tăng cường bảo mật cho hoạt động giao tiếp giữa các thành phần trong Edge dành cho cụm đám mây riêng tư. Đây là cách thức theo tiêu chuẩn ngành để định cấu hình và cài đặt lưới dịch vụ. Hộp cát về quyền riêng tư hỗ trợ việc quản lý gói và tự động hoá cấu hình.

Tổng quan về kiến trúc

Để cung cấp hoạt động giao tiếp an toàn giữa các thành phần, Apigee mTLS sử dụng lưới dịch vụ giúp thiết lập các kết nối TLS bảo mật và xác thực lẫn nhau giữa các thành phần.

Hình ảnh sau đây cho thấy kết nối giữa các thành phần Apigee được bảo vệ bằng Apigee mTLS (in red). Các cổng xuất hiện trong hình ảnh này chỉ mang tính tham khảo. Hãy tham khảo bài viết Mức sử dụng cổng để biết danh sách các phạm vi mà mỗi thành phần có thể sử dụng.

(Lưu ý rằng các cổng được biểu thị bằng "M" được dùng để quản lý thành phần và phải mở trên thành phần đó để Máy chủ quản lý truy cập.)

Như bạn có thể thấy trong sơ đồ trên, Apigee mTLS giúp tăng cường bảo mật cho các kết nối giữa hầu hết thành phần trong cụm, bao gồm:

Nguồn Đích đến
Máy chủ quản lý Các nút Bộ định tuyến, MP, QPid, LDAP, Postgres, Zookeeper và Cassandra
Bộ định tuyến Các nút Loopback; Qpid, Zookeeper và Cassandra
Trình xử lý thư Các nút Loopback; Qpid, Zookeeper và Cassandra
ZooKeeper và Cassandra Các nút Zookeeper và Cassandra khác
Giao diện người dùng của Edge SMTP (chỉ dành cho IDP bên ngoài)
Postgres Các nút Postgres, Zookeeper và Cassandra khác

Mã hoá/giải mã thư

Lưới dịch vụ Apigee mTLS bao gồm các máy chủ Consul chạy trên mỗi nút ZooKeeper trong cụm của bạn và các dịch vụ Consul sau đây trên mọi nút trong cụm:

  • Một Proxy ra chặn các thông báo gửi đi trên nút máy chủ. Dịch vụ này mã hoá các thư gửi đi trước khi gửi đến đích đến.
  • Một Proxy vào chặn tin nhắn đến trên nút máy chủ. Dịch vụ này giải mã tin nhắn đến trước khi gửi đến đích đến cuối cùng.

Ví dụ: khi Máy chủ quản lý gửi một thông báo đến Bộ định tuyến, dịch vụ proxy đầu ra sẽ chặn thư gửi đi, mã hoá thư đó rồi gửi đến Bộ định tuyến. Khi nút của Bộ định tuyến nhận được thông báo, dịch vụ proxy vào sẽ giải mã thông báo rồi truyền thông báo đó đến thành phần Bộ định tuyến để xử lý.

Tất cả điều này diễn ra một cách minh bạch đối với các thành phần của Edge: chúng không biết về quy trình mã hoá và giải mã do các dịch vụ proxy Consul thực hiện.

Ngoài ra, Apigee mTLS sử dụng tiện ích iptables, một dịch vụ tường lửa của Linux giúp quản lý việc chuyển hướng lưu lượng truy cập.

Yêu cầu

Trước khi có thể cài đặt Apigee mTLS, môi trường của bạn phải đáp ứng các yêu cầu sau:

Các phần sau đây sẽ mô tả chi tiết từng yêu cầu này.

Yêu cầu về cấu trúc liên kết

Apigee mTLS yêu cầu cấu trúc liên kết của môi trường phải có ít nhất 3 nút Zookeeper. Do đó, bạn chỉ có thể cài đặt Apigee mTLS trên các cấu trúc liên kết sử dụng 5, 9, 12 (trung tâm đa dữ liệu) hoặc 13 nút. Để biết thêm thông tin, hãy xem phần Cấu trúc liên kết đã cài đặt.

Tiện ích/gói

Apigee mTLS yêu cầu bạn phải cài đặt và bật các gói sau trên từng máy trong cụm, bao gồm cả máy quản trị, trước khi bắt đầu quá trình cài đặt:

Tiện ích/gói Nội dung mô tả OK để xoá sau khi cài đặt?
base64 Xác minh dữ liệu trong tập lệnh cài đặt.
gnu-bash
gnu-sed
gnu-grep
Dùng trong tập lệnh cài đặt và các công cụ phổ biến khác.
iptables Thay thế tường lửa mặc định, firewalld.
iptables-services Cung cấp chức năng cho tiện ích iptables.
lsof Do tập lệnh cài đặt dùng.
nc Xác minh iptables tuyến đường.
openssl Ký chứng chỉ trên máy trong quá trình tự khởi động ban đầu.

Trong quá trình cài đặt, bạn cũng cài đặt gói Consul trên máy quản trị để có thể tạo thông tin xác thực và khoá mã hoá.

Gói apigee-mtls sẽ cài đặt và định cấu hình các máy chủ Consul, bao gồm cả các proxy vào và ra trên các nút ZooKeeper trong cụm.

Quyền tài khoản người dùng

Trước khi cài đặt, hãy tạo một tài khoản người dùng mới hoặc đảm bảo rằng bạn có quyền truy cập vào một tài khoản có đặc quyền cấp cao.

Tài khoản thực thi việc cài đặt Apigee mTLS trên mỗi nút trong cụm phải có khả năng:

  • Bắt đầu, dừng, khởi động lại và khởi chạy các thành phần Apigee
  • Đặt quy tắc về tường lửa
  • Tạo tài khoản người dùng hệ điều hành/hệ thống mới
  • Bật, tắt, bắt đầu, dừng và che giấu các dịch vụ bằng systemctl

Máy quản trị (được đề xuất)

Apigee khuyên bạn nên có một nút trong cụm để thực hiện nhiều nhiệm vụ quản trị được mô tả trong tài liệu này, bao gồm:

  1. Cài đặt HashiCorp Consul 1.6.2.
  2. Tạo và phân phối cặp khoá/chứng chỉ và khoá mã hoá dạng chuyện phiếm.
  3. Cập nhật và phân phối tệp cấu hình.

Khi thiết lập máy quản trị:

  • Hãy đảm bảo rằng bạn có quyền truy cập thư mục gốc vào tệp đó.
  • Tải xuống và cài đặt các tiện ích apigee-serviceapigee-setup trên đó, theo mô tả trong Cài đặt tiện ích thiết lập apigee của Edge.
  • Đảm bảo rằng bạn có thể sử dụng scp/ssh để truy cập vào tất cả các nút trong cụm từ máy quản trị. Đây là yêu cầu bắt buộc để bạn có thể phân phối tệp cấu hình và thông tin xác thực.

Sử dụng và chỉ định cổng

Phần này mô tả việc sử dụng cổng và chỉ định cổng để hỗ trợ giao tiếp của Lãnh sự với Apigee mTLS.

Sử dụng cổng: Tất cả các nút chạy apigee-mtls

Tất cả các nút trong cụm sử dụng dịch vụ apigee-mtls phải cho phép kết nối từ các dịch vụ trên máy chủ cục bộ (127.0.0.1). Nhờ vậy, các proxy Lãnh sự giao tiếp với các dịch vụ khác khi họ xử lý thư đến và thư đi.

Sử dụng cổng: Nút máy chủ của Lãnh sự (các nút chạy ZooKeeper)

Bạn phải mở hầu hết các cổng sau đây trên nút máy chủ Consul (các nút chạy ZooKeeper) để chấp nhận yêu cầu từ tất cả các nút trong cụm:

Nút Cổng máy chủ Lãnh sự Nội dung mô tả Giao thức Cho phép tác nhân mtls-bên ngoài
*
Máy chủ lãnh sự (nút ZooKeeper) 8300 Kết nối tất cả máy chủ của Lãnh sự trong cụm. RPC
8301 Xử lý thành viên và thông báo phát đi trong cụm. UDP/TCP
8302 Cổng WAN xử lý thông báo thành viên và thông báo phát đi trong một cấu hình trung tâm đa dữ liệu. UDP/TCP
8500 Xử lý các kết nối HTTP đến API Máy chủ Consul từ các quy trình trên cùng một nút.

Cổng này không dùng để giao tiếp hoặc điều phối từ xa; cổng này chỉ nghe trên máy chủ cục bộ.

HTTP
8502 Xử lý các kết nối gRPC+HTTPS đến API Máy chủ Consul từ các nút khác trong cụm. gRPC+HTTPS
8503 Xử lý các kết nối HTTPS đến API Máy chủ Consul từ các nút khác trong cụm. HTTPS
8600 Xử lý DNS của máy chủ Lãnh sự. UDP/TCP
* Apigee khuyên bạn chỉ nên gửi yêu cầu đến cho thành viên cụm (bao gồm cả nhiều kho dữ liệu). Bạn có thể thực hiện việc này bằng iptables.

Như bảng này cho thấy, các nút chạy thành phần consul-server (nút ZooKeeper) phải mở các cổng 8301, 8302, 8502 và 8503 cho tất cả thành viên của cụm đang chạy dịch vụ apigee-mtls, ngay cả trên các trung tâm dữ liệu. Các nút không chạy ZooKeeper không cần mở những cổng này.

Chỉ định cổng cho tất cả các nút Consul (bao gồm cả các nút chạy ZooKeeper)

Để hỗ trợ hoạt động giao tiếp của Consul, các nút chạy các thành phần Apigee sau đây phải cho phép kết nối bên ngoài đến các cổng trong những phạm vi sau:

Thành phần Apigee Phạm vi Số cổng cần thiết trên mỗi nút
Apigee mTLS 10700 đến 10799 1
Cassandra 10100 đến 10199 2
Trình xử lý thư 10500 đến 10599 2
OpenLDAP 10200 đến 10299 1
Postgres 10300 đến 10399 3
Qpid 10400 đến 10499 2
Bộ định tuyến 10.600 đến 10.699 2
ZooKeeper 10.000 đến 10.099 3

Lãnh sự chỉ định cổng theo kiểu tuyến tính đơn giản. Ví dụ: nếu cụm của bạn có 2 nút Postgres, nút đầu tiên sẽ sử dụng 2 cổng. Vì vậy, Consul sẽ chỉ định cổng 10300 và 10301 cho nút đó. Nút thứ hai cũng sử dụng 2 cổng, vì vậy, Consol chỉ định 10302 và 10303 cho nút đó. Điều này áp dụng cho tất cả các loại thành phần.

Như bạn có thể thấy, số lượng cổng thực tế phụ thuộc vào cấu trúc liên kết: Nếu cụm của bạn có 2 nút Postgres, thì bạn cần mở 4 cổng (2 nút nhân với 2 cổng mỗi nút).

Xin lưu ý những điều sau:

  • Các proxy chấp nhận không thể nghe trên cùng một cổng như các dịch vụ của Apigee.
  • Lãnh sự chỉ có một không gian địa chỉ cổng. Chỉ định cổng proxy của Lãnh sự quán phải là duy nhất trên cụm, bao gồm cả các trung tâm dữ liệu. Điều này có nghĩa là nếu proxy A trên máy chủ A nghe trên cổng 15000, thì proxy B trên máy chủ B không thể nghe trên cổng 15000.
  • Số cổng được sử dụng thay đổi tuỳ theo cấu trúc liên kết, như đã mô tả ở trên.

Trong cấu hình trung tâm đa dữ liệu, tất cả máy chủ lưu trữ đang chạy mTLS cũng phải mở cổng 8302.

Bạn có thể tuỳ chỉnh các cổng mặc định mà Apigee mTLS sử dụng. Để biết thông tin về cách thực hiện việc này, hãy xem bài viết Tuỳ chỉnh phạm vi cổng proxy.

Các điểm hạn chế

Apigee mTLS có các hạn chế sau:

  • Không mã hoá giao tiếp Cassandra liên nút (cổng 7000)
  • Cấu hình và chế độ thiết lập không thay đổi. Điều này có nghĩa là nếu thực hiện một thay đổi trên một nút, bạn phải thực hiện cùng một thay đổi trên tất cả các nút; hệ thống không áp dụng thay đổi đó cho bạn trên bất kỳ nút nào khác. Để biết thêm thông tin, hãy xem phần Thay đổi cấu hình apigee-mtls hiện có.

Thuật ngữ

Phần này sử dụng thuật ngữ sau:

Thuật ngữ Định nghĩa
cụm Nhóm máy tạo nên Edge của bạn để cài đặt Đám mây riêng tư.
Lãnh sự Lưới dịch vụ mà Apigee mTLS sử dụng. Để biết thông tin về cách Consul bảo mật hoạt động giao tiếp của bạn trên Đám mây riêng tư, hãy xem Mô hình bảo mật của Consul.
mTLS TLS được xác thực lẫn nhau.
lưới dịch vụ Mạng lớp phủ (hoặc một mạng trong một mạng).
TLS Bảo mật tầng giao dịch. Một giao thức xác thực tiêu chuẩn ngành dành cho hoạt động giao tiếp bảo mật.