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 cụm Edge for Private Cloud. Nó cung cấp một 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ụ. Nó hỗ trợ tính năng 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 một lưới dịch vụ thiết lập các kết nối TLS an toàn, được xác thực lẫn nhau giữa các thành phần.

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

(Xin lưu ý rằng các cổng được biểu thị bằng chữ "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ý có thể truy cập.)

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

Nguồn Đích đến
Máy chủ quản lý Bộ định tuyến, MP, QPid, LDAP, Postgres, Zookeeper và các nút Cassandra
Bộ định tuyến Loopback; Qpid, Zookeeper và các nút Cassandra
Trình xử lý thông báo Loopback; Qpid, Zookeeper và các nút Cassandra
ZooKeeper và Cassandra Các nút Zookeeper và Cassandra khác
Giao diện người dùng 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ụ mTLS của Apigee 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 truyền dữ liệu 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ư đi trước khi gửi đến đích đến.
  • Một proxy chuyển tiếp chặn các thông báo đến trên nút máy chủ. Dịch vụ này giải mã các tin nhắn đến trước khi gửi chúng đế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 truyền dữ liệu sẽ chặn thông báo đi, mã hoá thông báo đó 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 đầu vào sẽ giải mã thông báo rồi chuyển thông báo đó đến thành phần Bộ định tuyến để xử lý.

Tất cả quá trình này diễn ra một cách minh bạch đối với các thành phần 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 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 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 (nhiều trung tâm 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 cài đặt và bật các gói sau trên mỗi máy trong cụm, bao gồm cả máy quản trị, trước khi bắt đầu quy trình cài đặt:

Tiện ích/gói Mô tả Có thể tháo rời sau khi lắp đặt không?
base64 Xác minh dữ liệu trong các tập lệnh cài đặt.
gnu-bash
gnu-sed
gnu-grep
Được dùng bởi 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 Được tập lệnh cài đặt sử dụng.
nc Xác minh iptables tuyến đường.
openssl Ký chứng chỉ cục bộ trong quá trình 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 đăng nhập 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 đầu vào và đầu ra trên các nút ZooKeeper trong cụm.

Quyền đối với 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 nâng cao.

Tài khoản thực thi quá trình cài đặt Apigee mTLS trên mỗi nút trong cụm phải có thể:

  • 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 tường lửa
  • Tạo tài khoản người dùng hệ thống/hệ điều hành mới
  • Bật, tắt, khởi động, dừng và che các dịch vụ bằng systemctl

Máy quản trị (nên dùng)

Apigee khuyến nghị bạn nên có một nút trong cụm mà bạn có thể thực hiện nhiều tác 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á gossip.
  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ị:

  • Đảm bảo rằng bạn có quyền truy cập thư mục gốc vào trình mô phỏng.
  • Tải xuống và cài đặt các tiện ích apigee-serviceapigee-setup trên đó, như mô tả trong phần Cài đặt tiện ích apigee-setup 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ị. Bạn phải làm việc này để có thể phân phối tệp cấu hình và thông tin đăng nhập.

Việc sử dụng và chỉ định cổng

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

Mức sử dụng cổng: Tất cả các nút đang chạy apigee-mtls

Tất cả các nút trong cụm sử dụng dịch vụ apigee-mtls đều phải cho phép các dịch vụ trên localhost (127.0.0.1) kết nối. Điều này cho phép các proxy Consul giao tiếp với các dịch vụ khác khi chúng xử lý các thông báo đến và đi.

Sử dụng cổng: Nút máy chủ Consul (các nút chạy ZooKeeper)

Bạn phải mở hầu hết các cổng sau trên các nút máy chủ Consul (các nút đang 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ủ Consul Mô tả Giao thức Cho phép mtls-agent bên ngoài
*
Máy chủ Consul (nút ZooKeeper) 8300 Kết nối tất cả các máy chủ Consul trong cụm. RPC
8301 Xử lý thông tin thành viên và tin nhắn phát trong cụm. UDP/TCP
8302 Cổng WAN xử lý các thông báo về thành viên và thông báo phát trong cấu hình nhiều trung tâm dữ liệu. UDP/TCP
8500 Xử lý các kết nối HTTP đến API của Consul Server từ các quy trình trên cùng một nút.

Cổng này không được dùng để liên lạc hoặc phối hợp từ xa; cổng này chỉ theo dõi trên máy chủ cục bộ.

HTTP
8502 Xử lý các kết nối gRPC+HTTPS đến API của Consul Server từ các nút khác trong cụm. gRPC+HTTPS
8503 Xử lý các kết nối HTTPS đến Consul Server API từ các nút khác trong cụm. HTTPS
8600 Xử lý DNS của máy chủ Consul. UDP/TCP
* Apigee khuyến nghị bạn chỉ giới hạn các yêu cầu đến cho các thành viên trong cụm (bao gồm cả các yêu cầu trên nhiều kho dữ liệu). Bạn có thể thực hiện việc này thông qua 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ở các 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 các kết nối bên ngoài đến các cổng trong phạm vi sau:

Thành phần Apigee Phạm vi Số lượng cổng cần thiết cho mỗi nút
Apigee mTLS 10700 đến 10799 1
Cassandra 10100 đến 10199 2
Trình xử lý thông báo 10500 đến 10599 2
SymasLDAP 10200 đến 10299 1
Postgres 10300 đến 10399 3
Qpid 10400 đến 10499 2
Bộ định tuyến 10600 đến 10699 2
ZooKeeper 10000 đến 10099 3

Consul chỉ định các cổng theo cách tuyến tính đơn giản. Ví dụ: nếu cụm của bạn có 2 nút Postgres, thì nút đầu tiên sẽ dùng 2 cổng, nên Consul sẽ chỉ định các cổng 10300 và 10301 cho nút đó. Nút thứ hai cũng sử dụng 2 cổng, vì vậy Consol sẽ 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 sẽ 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 Consul không thể xử lý trên cùng một cổng với các dịch vụ Apigee.
  • Consul chỉ có một không gian địa chỉ cổng. Các chỉ định cổng proxy Consul phải là duy nhất trên toàn bộ 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 theo dõi trên cổng 15000, thì proxy B trên máy chủ B không thể theo dõi trên cổng 15000.
  • Số lượng cổng được sử dụng sẽ thay đổi tuỳ theo cấu trúc liên kết, như mô tả trước đó.

Trong cấu hình nhiều trung tâm dữ liệu, tất cả các máy chủ 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 phần Tuỳ chỉnh dải cổng proxy.

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

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

  • Không mã hoá thông tin liên lạc giữa các nút Cassandra (cổng 7000)
  • Cấu hình và thiết lập không có tính chất luỹ đẳng. Đ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 thay đổi tương tự trên tất cả các nút; hệ thống sẽ 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 các thuật ngữ sau:

Thuật ngữ Định nghĩa
cluster Nhóm máy tạo nên quá trình cài đặt Edge cho Đám mây riêng tư.
Consul Lưới dịch vụ mà Apigee mTLS sử dụng. Để biết thông tin về cách Consul bảo mật thông tin liên lạc trên Đám mây riêng tư của bạn, 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ạng trong mạng).
TLS Bảo mật tầng giao dịch. Một giao thức xác thực theo tiêu chuẩn ngành để đảm bảo thông tin liên lạc an toàn.