Giới thiệu về Apigee mTLS

Edge cho đám mây riêng tư phiên bản 4.19.01

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 thuộc cụm Đám mây riêng tư.

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ụ giúp thiết lập các kết nối TLS (Bảo mật tầng truyền tải) an toàn 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 mật bằng mTLS được Apigee là mTLS (in red). Các cổng trong hình ảnh chỉ là ví dụ. Hãy tham khảo phần 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 được mở trong 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 Loopback; Qpid, Zookeeper và nốt Cassandra
Bộ xử lý thư Loopback; Qpid, Zookeeper và nốt Cassandra
ZooKeeper và Cassandra Các nút có nhân viên trông nom vườn thú và nút 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ụ 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 đầu ra chặn thư 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 tới đích đến.
  • Một Proxy vào chặn thư đế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 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 đều diễn ra 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 Lãnh sự 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 có thể quản lý hoạt động chuyển hướng lưu lượng truy cập.

Yêu cầu

Apigee mTLS là một giải pháp tiêu chuẩn ngành để định cấu hình và cài đặt lưới dịch vụ. Thư viện này hỗ trợ tự động hoá cấu hình và quản lý gói.

Vì các dịch vụ proxy Lãnh sự được liên kết chặt chẽ dưới dạng chỉ định cổng cho các quy trình riêng lẻ, nên việc thay đổi một nút sẽ ảnh hưởng đến mọi nút khác. Do đó, nếu cấu trúc liên kết thay đổi, bạn phải định cấu hình lại và khởi động lại các dịch vụ trên mọi nút trong cụm.

Để 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 đây được mô tả trong phần này.

Những yêu cầu này bao gồm:

  • Edge cho phiên bản Đám mây riêng tư
  • Một bộ tiện ích đã được cài đặt và bật
  • Tài khoản người dùng có cấp độ quyền phù hợp
  • Máy quản trị (nên dùng)

Các yêu cầu đối với Edge về Đám mây riêng tư

Apigee mTLS hỗ trợ phiên bản Edge sau đây cho Đám mây riêng tư (nhưng không phải trên một số nền tảng được hỗ trợ theo mô tả trong phần Yêu cầu về hệ điều hành):

  • 4.19.06
  • 4.19.01

Apigee mTLS yêu cầu cụm Đám mây riêng tư của bạn phải sử dụng một cấu trúc liên kết 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.

Yêu cầu về hệ điều hành

Apigee mTLS hỗ trợ các nền tảng sau cho cụm Đám mây riêng tư của bạn (hệ điều hành được hỗ trợ cho mTLS phụ thuộc vào phiên bản của Đám mây riêng tư):

Hệ điều hành Phiên bản đám mây riêng đượ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.5; 7.6; 7.7; 7.8; 7.9

Tiện ích/gói dịch vụ

Apigee mTLS yêu cầu bạn 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 dịch vụ Nội dung mô tả Bạn có muốn Gỡ bỏ 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 sử dụng theo 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 sử dụng.
nc Xác minh iptables tuyến.
openssl Ký chứng chỉ cục bộ 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 cài đặt và định cấu hình các máy chủ Lãnh sự, bao gồm cả proxy vào và ra trên các nút ZooKeeper trong cụm.

Quyền đối với tài khoản người dùng

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ó 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
  • Thiết lập 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 các 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ể dùng để thực hiện nhiều tác vụ đượ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 khoá/chứng chỉ và khoá mã hoá tin đồn.
  3. Cập nhật và phân phối tệp cấu hình.

Máy quản trị yêu cầu:

  • Bạn đã tải xuống và cài đặt các tiện ích apigee-serviceapigee-setup trên đó, như mô tả trong Tiện ích thiết lập apigee của Edge.
  • Có quyền truy cập scp/ssh vào tất cả các nút trong cụm. Để phân phối tệp cấu hình và thông tin đăng nhập, bạn phải có quyền truy cập scp/ssh vào tất cả máy chủ trong cụm.
  • Bạn có quyền truy cập thư mục gốc vào máy quản trị.

Mứ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 Lãnh sự quán bằng API 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 localhost (127.0.0.1). Việc này cho phép các proxy Lãnh sự giao tiếp với các dịch vụ khác khi các dịch vụ này xử lý thư đến và đi.

Sử dụng cổng: Nút máy chủ 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ủ Lãnh sự (các nút đang chạy ZooKeeper) để chấp nhận các 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 các tác nhân mtls-bên ngoài
*
Máy chủ Lãnh sự (nút ZooKeeper) 8300 Kết nối mọi máy chủ 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ành viên và thông báo phát đi 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 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 qua 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 các thành viên trong 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 đang 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 phải 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 với Lãnh sự, 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 tới 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 10.100 đến 10199 2
Bộ xử lý thư 10.500 đến 10.599 2
OpenLDAP 10.200 đến 10.299 1
Postgres 10300 đến 10399 3
Qpid 10.400 đến 10.499 2
Bộ định tuyến 10600 đến 10699 2
ZooKeeper 10.001 đến 10099 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ác cổng 10300 và 10301 cho cụm đó. Nút thứ hai cũng sử dụng 2 cổng, vì vậy, Consol chỉ định 10302 và 10303 cho nút đó. Quy tắc 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 (hai nút nhân với 2 cổng mỗi nút).

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

  • Proxy lãnh sự không thể nghe trên cùng một cổng như các dịch vụ Apigee.
  • Lãnh sự quán chỉ có một không gian địa chỉ cổng. Chỉ định cổng proxy chấp nhận phải là duy nhất trên các cụm, bao gồm cả các trung tâm dữ liệu. Tức 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ể nghe trên cổng 15000.
  • Số lượng cổng được sử dụng khác nhau tuỳ theo cấu trúc liên kết, như đã mô tả trước đó.

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ó một số hạn chế như sau:

  • Không mã hoá hoạt động truyền thông Cassandra liên nút (cổng 7000)
  • Cấu hình và thiết lập không giống nhau. Đ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 sẽ không chọn thay đổi đó và áp dụng thay đổi đó cho các nút khác. Để biết thêm thông tin, hãy xem phần Thay đổi cấu hình API API 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 các máy tạo nên Edge để cài đặt Đám mây riêng tư.
Lãnh sự quán Lưới dịch vụ mà Apigee mTLS sử dụng. Để biết thông tin về cách Lãnh sự bảo mật thông tin trao đổi của bạn trên đám mây riêng tư, hãy xem Mô hình bảo mật của Lãnh sự.
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 lớp giao dịch. Một giao thức xác thực theo tiêu chuẩn ngành cho hoạt động giao tiếp bảo mật.