Giới thiệu về Apigee mTLS

Tính năng mTLS của Apigee tăng cường bảo mật cho hoạt động liên lạc giữa các thành phần trong Edge cho cụm Đám mây riêng tư. Công cụ này 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ụ. Dịch vụ này hỗ trợ quản lý gói và tự động hoá cấu hình.

Tổng quan về cấu trúc

Để cung cấp khả nă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 hiển thị trong hình ảnh là ví dụ; hãy tham khảo phần Sử dụng cổng để biết danh sách các dải ô mà mỗi thành phần có thể sử dụng.

(Xin lưu ý rằng các cổng có chữ "M" được dùng để quản lý thành phần và phải được 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, Apigee mTLS 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 Loopback; các nút Qpid, Zookeeper và Cassandra
Bộ xử lý thông báo Loopback; các nút Qpid, Zookeeper và 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:

  • Proxy đầu ra chặn các tin nhắn đi trên nút máy chủ. Dịch vụ này mã hoá tin nhắn đi trước khi gửi đến đích.
  • Một proxy đầu vào chặn các tin nhắn đế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 đến đích đến cuối cùng.

Ví dụ: Khi Máy chủ quản lý gửi một tin nhắn đi đến Bộ định tuyến, dịch vụ proxy đầu ra sẽ chặn tin nhắn đi, mã hoá tin nhắn đó 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ả những điều này đều 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ề quá 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 quản lý việc chuyển hướng lưu lượng truy cập.

Yêu cầu

Trước khi bạn 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.

Phiên bản, nền tảng và cấu trúc liên kết

Bảng sau đây liệt kê các yêu cầu về mTLS:

Yêu cầu Mô tả
Phiên bản
  • 4.51.00
  • 4.50.00
  • 4.19.06
Cấu trúc liên kết Phải bao gồm ít nhất ba 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.
Nền tảng/Hệ điều hành

Sử dụng các giá trị sau để xác định xem Apigee mTLS có được hỗ trợ trên một hệ điều hành cụ thể hay không:

Hệ điều hành Phiên bản đám mây riêng tư được hỗ trợ
v4.19.06 v4.50.00 v4.51.00
CentOS
RedHat Enterprise Linux (RHEL)
Oracle Linux
7.5, 7.6, 7.7 7.5, 7.6, 7.7, 7.8, 7.9 7.5, 7.6, 7.7, 7.8, 7.9, 8.0

Xin lưu ý rằng Apigee mTLS không nhất thiết phải hỗ trợ tất cả hệ điều hành được hỗ trợ bởi phiên bản Apigee Edge tương ứng cho Đám mây riêng tư mà nó đang chạy.

Ví dụ: nếu phiên bản 4.19.06 hỗ trợ CentOS x và y, thì điều đó không nhất thiết có nghĩa là Apigee mTLS được hỗ trợ trên CentOS x và y cho phiên bản 4.19.06.

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 mỗi máy trong cụm của bạn, bao gồm cả máy quản trị, trước khi bạn bắt đầu quá trình cài đặt:

Tiện ích/gói Mô tả Có thể xoá sau khi cài đặt không?
base64 Xác minh dữ liệu trong tập lệnh cài đặt.
gnu-bash
gnu-sed
gnu-grep
Được tập lệnh cài đặt và các công cụ phổ biến khác sử dụng.
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ỉ trên thiết 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 xác thực và khoá mã hoá.

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

Quyền của 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 quá trình cài đặt mTLS của Apigee 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 của Apigee
  • Thiết lập quy tắc tường lửa
  • Tạo tài khoản người dùng mới cho hệ điều hành/hệ thống
  • Bật, tắt, khởi động, dừng và che giấu dịch vụ bằng systemctl

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

Apigee khuyên 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 một cặp chứng chỉ/khoá 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-service và apigee-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ể 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 cần làm việc này để 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ả cách sử dụng cổng và 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 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ờ đó, các proxy Consul có thể giao tiếp với các dịch vụ khác khi xử lý tin nhắn đến và tin nhắn đi.

Mức sử dụng cổng: Các 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 tác nhân mtls bên ngoài
*
Máy chủ Consul (nút ZooKeeper) 8300 Kết nối tất cả máy chủ Consul trong cụm. RPC
8301 Xử lý thông báo phát đi và thông báo về tư cách thành viên trong cụm. UDP/TCP
8302 Cổng WAN xử lý thông báo phát đi và thông báo về tư cách thành viên 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 Máy chủ Consul 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 điều phối 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 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ủ Consul. UDP/TCP
* Apigee đề xuất bạn chỉ nên hạn chế các yêu cầu gửi đến cho các thành viên trong cụm (bao gồm cả kho dữ liệu chéo). 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 kết nối bên ngoài với các cổng trong phạm vi sau:

Thành phần Apigee Phạm vi Số cổng cần thiết cho mỗi nút
Apigee mTLS 10700 đến 10799 1
Cassandra 10100 đến 10199 2
Bộ xử lý thông báo 10500 đến 10599 2
OpenLDAP 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ổng theo cách tuyến tính đơn giản. Ví dụ: nếu cụm của bạn có hai nút Postgres, thì nút đầu tiên sẽ sử dụng hai 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 hai 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ó hai nút Postgres, thì bạn cần mở bốn cổng (hai nút, mỗi nút có hai cổng).

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

  • Proxy Consul không thể nghe 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. Việ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ủ lưu trữ A nghe trên cổng 15000, thì proxy B trên máy chủ lưu trữ B không thể nghe 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ên.

Trong cấu hình nhiều trung tâm dữ liệu, tất cả máy chủ lưu trữ 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 giới hạn sau:

  • Không mã hoá hoạt động giao tiếp giữa các nút Cassandra (cổng 7000)
  • Quá trình định cấu hình và thiết lập không có tính luỹ đẳng. Điều này có nghĩa là nếu bạn 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 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 bản 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 Private Cloud, 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ột mạng lớp phủ (hoặc một mạng trong một mạng).
TLS Bảo mật tầng truyền tải. Một giao thức xác thực theo tiêu chuẩn ngành để liên lạc an toàn.