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:
- Yêu cầu về cấu trúc liên kết
- Đã cài đặt và bật các tiện ích
- 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)
- Mức sử dụng cổng
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:
- Cài đặt HashiCorp Consul 1.6.2.
- Tạo và phân phối cặp khoá/chứng chỉ và khoá mã hoá dạng chuyện phiếm.
- 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-service
vàapigee-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. |