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ư. Thư viện này cung cấp một cách thức 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í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ụ 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
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:
- Yêu cầu về phiên bản, nền tảng 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.
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 | Nội dung mô tả | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Phiên bản |
|
||||||||||||
Cấu trúc liên kết | Phải bao gồm í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. | ||||||||||||
Nền tảng/Hệ điều hành | Hãy 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:
Xin lưu ý rằng Apigee mTLS không nhất thiết hỗ trợ mọi hệ điều hành mà phiên bản Apigee Edge tương ứng dành cho đám mây riêng tư đang chạy hỗ trợ. 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 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
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 cao hơn.
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 đặt một nút trong cụm để có thể thực hiện nhiều thao tác 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 một cặp khoá/chứng chỉ và khoá mã hoá tin đồn.
- 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.
- Tải xuống và cài đặt các tiện ích
apigee-service
vàapigee-setup
trên đó, như 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.
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 chúng 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 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 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.000 đế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 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 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. |