Sau khi cài đặt Apigee mTLS trên tất cả các nút trong cụm, bạn phải định cấu hình và khởi động thành phần apigee-mtls
. Bạn thực hiện việc này bằng cách tạo một cặp khoá/chứng chỉ và cập nhật tệp cấu hình trên máy quản trị. Sau đó, bạn triển khai cùng một tệp đã tạo và tệp cấu hình cho tất cả các nút trong cụm và khởi động thành phần apigee-mtls
cục bộ.
Định cấu hình apigee-mtls (sau khi cài đặt ban đầu)
Phần này mô tả cách định cấu hình Apigee mTLS ngay sau khi cài đặt ban đầu. Để biết thông tin về cách cập nhật một bản cài đặt hiện có của Apigee mTLS, hãy xem phần Thay đổi cấu hình apigee-mtls hiện có.
Phần này áp dụng cho các cơ sở lắp đặt trong một trung tâm dữ liệu duy nhất. Để biết thông tin về cách định cấu hình mTLS Apigee trong chế độ thiết lập nhiều trung tâm dữ liệu, hãy xem phần Định cấu hình nhiều trung tâm dữ liệu cho mTLS Apigee.
Quy trình chung để định cấu hình apigee-mtls
như sau:
- Cập nhật tệp cấu hình: Trên máy quản trị, hãy cập nhật tệp cấu hình để thêm các chế độ cài đặt
apigee-mtls
. - Cài đặt Consul và tạo thông tin đăng nhập: Cài đặt Consul và (không bắt buộc) sử dụng Consul để tạo thông tin đăng nhập TLS (chỉ một lần).
Ngoài ra, hãy chỉnh sửa tệp cấu hình Apigee mTLS để:
- Thêm thông tin về thông tin đăng nhập
- Xác định cấu trúc liên kết của cụm
Xin lưu ý rằng bạn có thể sử dụng thông tin đăng nhập hiện có hoặc tạo thông tin đăng nhập bằng Consul.
- Phân phối tệp cấu hình và thông tin đăng nhập: Phân phối cùng một cặp khoá/chứng chỉ đã tạo và tệp cấu hình đã cập nhật cho tất cả các nút trong cụm của bạn.
- Khởi động apigee-mtls: Khởi động thành phần
apigee-mtls
trên mỗi nút.
Mỗi bước được mô tả trong các phần tiếp theo.
Bước 1: Cập nhật tệp cấu hình
Phần này mô tả cách sửa đổi tệp cấu hình để thêm các thuộc tính cấu hình mTLS. Để biết thêm thông tin chung về tệp cấu hình, hãy xem phần Tạo tệp cấu hình.
Sau khi bạn cập nhật tệp cấu hình bằng các thuộc tính liên quan đến mTLS, hãy sao chép tệp đó vào tất cả các nút trong cụm trước khi bạn khởi động thành phần apigee-mtls
trên các nút đó.
Cách cập nhật tệp cấu hình:
- Trên máy quản trị, hãy mở tệp cấu hình để chỉnh sửa.
- Sao chép nhóm thuộc tính cấu hình mTLS sau đây rồi dán vào tệp cấu hình:
ALL_IP="ALL_PRIVATE_IPS_IN_CLUSTER" ZK_MTLS_HOSTS="ZOOKEEPER_PRIVATE_IPS" CASS_MTLS_HOSTS="CASSANDRA_PRIVATE_IPS" PG_MTLS_HOSTS="POSTGRES_PRIVATE_IPS" RT_MTLS_HOSTS="ROUTER_PRIVATE_IPS" MS_MTLS_HOSTS="MGMT_SERVER_PRIVATE_IPS" MP_MTLS_HOSTS="MESSAGE_PROCESSOR_PRIVATE_IPS" QP_MTLS_HOSTS="QPID_PRIVATE_IPS" LDAP_MTLS_HOSTS="OPENLDAP_PRIVATE_IPS" MTLS_ENCAPSULATE_LDAP="y" ENABLE_SIDECAR_PROXY="y" ENCRYPT_DATA="BASE64_GOSSIP_MESSAGE" PATH_TO_CA_CERT="PATH/TO/consul-agent-ca.pem" PATH_TO_CA_KEY="PATH/TO/consul-agent-ca-key.pem" APIGEE_MTLS_NUM_DAYS_CERT_VALID_FOR="NUMBER_OF_DAYS"
Đặt giá trị của từng thuộc tính cho phù hợp với cấu hình của bạn.
Bảng sau đây mô tả các thuộc tính cấu hình này:
Thuộc tính Mô tả ALL_IP
Danh sách địa chỉ IP của máy chủ riêng của tất cả các nút trong cụm được phân tách bằng dấu cách. Thứ tự của các địa chỉ IP không quan trọng, ngoại trừ việc thứ tự này phải giống nhau trong tất cả các tệp cấu hình trên cụm.
Nếu bạn định cấu hình Apigee mTLS cho nhiều trung tâm dữ liệu, hãy liệt kê tất cả địa chỉ IP cho tất cả máy chủ lưu trữ trên tất cả các khu vực.
LDAP_MTLS_HOSTS
Địa chỉ IP máy chủ riêng tư của nút SymasLDAP trong cụm. ZK_MTLS_HOSTS
Danh sách địa chỉ IP máy chủ riêng tư được phân tách bằng dấu cách mà các nút ZooKeeper được lưu trữ trong cụm.
Xin lưu ý rằng theo các yêu cầu, phải có ít nhất 3 nút ZooKeeper.
CASS_MTLS_HOSTS
Danh sách địa chỉ IP máy chủ riêng được phân tách bằng dấu cách mà các máy chủ Cassandra được lưu trữ trong cụm. PG_MTLS_HOSTS
Danh sách địa chỉ IP máy chủ lưu trữ riêng tư được phân tách bằng dấu cách mà các máy chủ Postgres được lưu trữ trong cụm. RT_MTLS_HOSTS
Danh sách địa chỉ IP máy chủ riêng được phân tách bằng dấu cách mà trên đó các Bộ định tuyến được lưu trữ trong cụm. MTLS_ENCAPSULATE_LDAP
Mã hoá lưu lượng truy cập LDAP giữa Trình xử lý thông báo và máy chủ LDAP. Đặt thành y
.MS_MTLS_HOSTS
Danh sách địa chỉ IP máy chủ riêng tư được phân tách bằng dấu cách mà các nút Máy chủ quản lý được lưu trữ trong cụm. MP_MTLS_HOSTS
Danh sách địa chỉ IP máy chủ riêng tư được phân tách bằng dấu cách mà Bộ xử lý thông báo được lưu trữ trong cụm. QP_MTLS_HOSTS
Danh sách địa chỉ IP máy chủ lưu trữ riêng tư được phân tách bằng dấu cách mà các máy chủ Qpid được lưu trữ trong cụm. ENABLE_SIDECAR_PROXY
Xác định xem Cassandra và Postgres có cần biết về lưới dịch vụ hay không. Bạn phải đặt giá trị này thành "y".
ENCRYPT_DATA
Khoá mã hoá được mã hoá base64 mà Consul sử dụng. Bạn đã tạo khoá này bằng cách dùng lệnh consul keygen
trong Bước 2: Cài đặt Consul và tạo thông tin đăng nhập.Giá trị này phải giống nhau trên tất cả các nút trong cụm.
PATH_TO_CA_CERT
Vị trí của tệp chứng chỉ trên nút. Bạn đã tạo tệp này trong Bước 2: Cài đặt Consul và tạo thông tin đăng nhập. Vị trí này phải giống nhau trên tất cả các nút trong cụm để các tệp cấu hình giống nhau.
Chứng chỉ phải được mã hoá X509v3.
PATH_TO_CA_KEY
Vị trí của tệp khoá trên nút. Bạn đã tạo tệp này trong Bước 2: Cài đặt Consul và tạo thông tin đăng nhập. Vị trí này phải giống nhau trên tất cả các nút trong cụm để các tệp cấu hình giống nhau.
Tệp khoá phải được mã hoá X509v3.
APIGEE_MTLS_NUM_DAYS_CERT_VALID_FOR
Số ngày mà chứng chỉ có hiệu lực khi bạn tạo chứng chỉ tuỳ chỉnh.
Giá trị mặc định là 365. Giá trị tối đa là 7.865 ngày (5 năm).
Ngoài các thuộc tính được liệt kê ở trên, Apigee mTLS còn sử dụng một số thuộc tính bổ sung khi bạn cài đặt thuộc tính này trên cấu hình nhiều trung tâm dữ liệu. Để biết thêm thông tin, hãy xem bài viết Định cấu hình nhiều trung tâm dữ liệu.
- Đảm bảo rằng
ENABLE_SIDECAR_PROXY
được đặt thành "y". - Cập nhật địa chỉ IP trong các thuộc tính liên quan đến máy chủ lưu trữ. Hãy nhớ sử dụng địa chỉ IP riêng tư khi đề cập đến từng nút, chứ không phải địa chỉ IP công khai.
Trong các bước sau, bạn sẽ đặt giá trị của các thuộc tính khác, chẳng hạn như
ENCRYPT_DATA
,PATH_TO_CA_CERT
vàPATH_TO_CA_KEY
. Bạn chưa đặt giá trị cho các thông số này.Khi chỉnh sửa các thuộc tính cấu hình
apigee-mtls
, hãy lưu ý những điều sau:- Tất cả các thuộc tính đều là chuỗi; bạn phải đặt giá trị của tất cả các thuộc tính trong dấu nháy đơn hoặc dấu ngoặc kép.
- Nếu một giá trị liên quan đến máy chủ lưu trữ có nhiều địa chỉ IP riêng tư, hãy phân tách từng địa chỉ IP bằng dấu cách.
- Sử dụng địa chỉ IP riêng tư và không sử dụng tên máy chủ hoặc địa chỉ IP công khai cho tất cả các thuộc tính liên quan đến máy chủ trong tệp cấu hình.
- Thứ tự của địa chỉ IP trong một giá trị thuộc tính phải giống nhau trong tất cả các tệp cấu hình trên cụm.
- Lưu các thay đổi vào tệp cấu hình.
Bước 2: Cài đặt Consul và tạo thông tin xác thực
Phần này mô tả cách cài đặt Consul và tạo thông tin đăng nhập mà các thành phần có bật mTLS sử dụng.
Bạn phải chọn một trong các phương thức sau đây để tạo thông tin đăng nhập:
- (Nên dùng) Tạo Tổ chức phát hành chứng chỉ (CA) của riêng bạn bằng Consul, như mô tả trong phần này
- Sử dụng thông tin xác thực của một CA hiện có bằng Apigee mTLS (nâng cao)
Giới thiệu về thông tin đăng nhập
Thông tin đăng nhập bao gồm những nội dung sau:
- Chứng chỉ: Chứng chỉ TLS
- Khoá: Khoá công khai TLS
- Thông báo Gossip: Khoá mã hoá được mã hoá base-64
Bạn chỉ tạo một phiên bản duy nhất của mỗi tệp này một lần. Sau đó, bạn sao chép các tệp khoá và chứng chỉ vào tất cả các nút trong cụm, đồng thời thêm khoá mã hoá vào tệp cấu hình mà bạn cũng sao chép vào tất cả các nút.
Để biết thêm thông tin về việc triển khai tính năng mã hoá của Consul, hãy xem phần sau:
Cài đặt Consul và tạo thông tin xác thực
Để tạo thông tin đăng nhập mà Apigee mTLS dùng để xác thực các giao tiếp bảo mật giữa các nút trong cụm Đám mây riêng tư, hãy dùng một tệp nhị phân Consul cục bộ . Do đó, bạn phải cài đặt Consul trên máy quản trị trước khi có thể tạo thông tin đăng nhập.
Cách cài đặt Consul và tạo thông tin đăng nhập mTLS:
- Trên máy quản trị, hãy tải tệp nhị phân Consul 1.8.0 xuống từ trang web của HashiCorp.
- Giải nén nội dung của tệp lưu trữ đã tải xuống. Ví dụ: giải nén nội dung vào
/opt/consul/
. - Trên máy quản trị, hãy tạo một Tổ chức phát hành chứng chỉ (CA) mới bằng cách thực thi lệnh sau:
/opt/consul/consul tls ca create
Consul tạo các tệp sau đây, tạo thành một cặp khoá/chứng chỉ:
consul-agent-ca.pem
(chứng chỉ)consul-agent-ca-key.pem
(khoá)
Theo mặc định, tệp chứng chỉ và khoá được mã hoá X509v3.
Sau đó, bạn sẽ sao chép các tệp này vào tất cả các nút trong cụm. Tuy nhiên, tại thời điểm này, bạn chỉ được quyết định vị trí trên các nút mà bạn sẽ đặt những tệp này. Chúng phải nằm ở cùng một vị trí trên mỗi nút. Ví dụ:
/opt/apigee/
. - Trong tệp cấu hình, hãy đặt giá trị của
PATH_TO_CA_CERT
thành vị trí mà bạn sẽ sao chép tệpconsul-agent-ca.pem
trên nút. Ví dụ:PATH_TO_CA_CERT="/opt/apigee/consul-agent-ca.pem"
- Đặt giá trị của
PATH_TO_CA_KEY
thành vị trí mà bạn sẽ sao chép tệpconsul-agent-ca-key.pem
trên nút. Ví dụ:PATH_TO_CA_KEY="/opt/apigee/consul-agent-ca-key.pem"
- Tạo khoá mã hoá cho Consul bằng cách thực thi lệnh sau:
/opt/consul/consul keygen
Consul xuất ra một chuỗi ngẫu nhiên có dạng tương tự như sau:
QbhgD+EXAMPLE+Y9u0742X/IqX3X429/x1cIQ+JsQvY=
- Sao chép chuỗi đã tạo này và đặt chuỗi đó làm giá trị của thuộc tính
ENCRYPT_DATA
trong tệp cấu hình. Ví dụ:ENCRYPT_DATA="
QbhgD+EXAMPLE+Y9u0742X
/IqX3X429/x1cIQ+JsQvY=" - Lưu tệp cấu hình.
Ví dụ sau đây cho thấy các chế độ cài đặt liên quan đến mTLS trong một tệp cấu hình (có các giá trị ví dụ):
... IP1=10.126.0.121 IP2=10.126.0.124 IP3=10.126.0.125 IP4=10.126.0.127 IP5=10.126.0.130 ALL_IP="$IP1 $IP2 $IP3 $IP4 $IP5" LDAP_MTLS_HOSTS="$IP3" ZK_MTLS_HOSTS="$IP3 $IP4 $IP5" CASS_MTLS_HOSTS="$IP3 $IP4 $IP5" PG_MTLS_HOSTS="$IP2 $IP1" RT_MTLS_HOSTS="$IP4 $IP5" MS_MTLS_HOSTS="$IP3" MP_MTLS_HOSTS="$IP4 $IP5" QP_MTLS_HOSTS="$IP2 $IP1" ENABLE_SIDECAR_PROXY="y" ENCRYPT_DATA="QbhgD+EXAMPLE+Y9u0742X/IqX3X429/x1cIQ+JsQvY=" PATH_TO_CA_CERT="/opt/apigee/consul-agent-ca.pem" PATH_TO_CA_KEY="/opt/apigee/consul-agent-ca-key.pem" ...
Bước 3: Phân phối tệp cấu hình và thông tin đăng nhập
Sao chép các tệp sau đây vào tất cả các nút bằng một công cụ như scp
:
- Tệp cấu hình: Sao chép phiên bản mới nhất của tệp này và thay thế phiên bản hiện có trên tất cả các nút (không chỉ các nút đang chạy ZooKeeper).
- consul-agent-ca.pem: Sao chép vào vị trí mà bạn đã chỉ định làm giá trị của
PATH_TO_CA_CERT
trong tệp cấu hình. - consul-agent-ca-key.pem: Sao chép vào vị trí mà bạn đã chỉ định làm giá trị của
PATH_TO_CA_KEY
trong tệp cấu hình.
Hãy đảm bảo rằng các vị trí mà bạn sao chép tệp chứng chỉ và tệp khoá khớp với các giá trị mà bạn đặt trong tệp cấu hình ở Bước 2: Cài đặt Consul và tạo thông tin đăng nhập.
Bước 4: Khởi động apigee-mtls
Sau khi cài đặt apigee-mtls
trên mỗi nút, cập nhật tệp cấu hình, sao chép tệp đó và thông tin đăng nhập vào tất cả các nút trong cụm, bạn có thể khởi chạy thành phần apigee-mtls
trên mỗi nút.
Cách khởi động apigee-mtls:
- Đăng nhập vào một nút trong cụm với tư cách là người dùng root. Bạn có thể thực hiện các bước này trên các nút theo bất kỳ thứ tự nào bạn muốn.
- Đặt người dùng
apigee:apigee
làm chủ sở hữu của tệp cấu hình đã cập nhật, như ví dụ sau đây minh hoạ:chown apigee:apigee config_file
- Định cấu hình thành phần
apigee-mtls
bằng cách thực thi lệnh sau:/opt/apigee/apigee-service/bin/apigee-service apigee-mtls setup -f config_file
- (Không bắt buộc) Thực thi lệnh sau để xác minh rằng bạn đã thiết lập thành công:
/opt/apigee/apigee-mtls/lib/actions/iptables.sh validate
- Khởi động Apigee mTLS bằng cách thực thi lệnh sau:
/opt/apigee/apigee-service/bin/apigee-service apigee-mtls start
Sau khi cài đặt Apigee mTLS, bạn phải khởi động thành phần này trước mọi thành phần khác trên nút.
- (Chỉ các nút Cassandra) Cassandra yêu cầu các đối số bổ sung để hoạt động trong lưới bảo mật. Do đó, bạn phải thực thi các lệnh sau trên mỗi nút Cassandra:
/opt/apigee/apigee-service/bin/apigee-service apigee-cassandra setup -f config_file
/opt/apigee/apigee-service/bin/apigee-service apigee-cassandra configure
/opt/apigee/apigee-service/bin/apigee-service apigee-cassandra restart
- (Chỉ các nút Postgres) Postgres yêu cầu các đối số bổ sung để hoạt động trong lưới bảo mật. Do đó, bạn phải thực hiện những việc sau trên các nút Postgres:
(Chỉ dành cho tài khoản chính)
- Thực thi các lệnh sau trên nút chính Postgres:
/opt/apigee/apigee-service/bin/apigee-service apigee-postgresql setup -f config_file
/opt/apigee/apigee-service/bin/apigee-service apigee-postgresql configure
/opt/apigee/apigee-service/bin/apigee-service apigee-postgresql restart
(Chỉ ở chế độ chờ)
- Sao lưu dữ liệu Postgres hiện có. Để cài đặt Apigee mTLS, bạn phải khởi động lại các nút chính/dự phòng, do đó sẽ xảy ra tình trạng mất dữ liệu. Để biết thêm thông tin, hãy xem bài viết Thiết lập tính năng sao chép chính/dự phòng cho Postgres.
- Xoá tất cả dữ liệu Postgres:
rm -rf /opt/apigee/data/apigee-postgresql/pgdata
- Định cấu hình Postgres rồi khởi động lại Postgres, như ví dụ sau đây cho thấy:
/opt/apigee/apigee-service/bin/apigee-service apigee-postgresql setup -f config_file
/opt/apigee/apigee-service/bin/apigee-service apigee-postgresql configure
/opt/apigee/apigee-service/bin/apigee-service apigee-postgresql restart
Nếu bạn đang cài đặt trên một cấu trúc liên kết nhiều trung tâm dữ liệu, hãy sử dụng đường dẫn tuyệt đối cho tệp cấu hình.
- Thực thi các lệnh sau trên nút chính Postgres:
- Khởi động các thành phần còn lại của Apigee trên nút theo thứ tự khởi động, như trong ví dụ sau:
/opt/apigee/apigee-service/bin/apigee-service component_name start
- Lặp lại quy trình này cho từng nút trong cụm.
- (Không bắt buộc) Xác minh rằng quá trình khởi tạo
apigee-mtls
đã thành công bằng cách sử dụng một hoặc nhiều phương thức sau:- Xác thực cấu hình iptables
- Xác minh trạng thái của proxy từ xa
- Xác minh trạng thái của nhóm túc số
Mỗi phương thức trong số này đều được mô tả trong phần Xác minh cấu hình của bạn.
Thay đổi cấu hình apigee-mtls hiện có
Để tuỳ chỉnh một cấu hình apigee-mtls
hiện có, bạn phải gỡ cài đặt rồi cài đặt lại apigee-mtls
. Bạn cũng phải đảm bảo áp dụng chế độ tuỳ chỉnh cho tất cả các nút.
Để nhắc lại điểm này, khi thay đổi cấu hình mTLS hiện có của Apigee:
- Nếu thay đổi một tệp cấu hình, trước tiên, bạn phải gỡ cài đặt
apigee-mtls
và chạy lạisetup
hoặcconfigure
:# DO THIS:
/opt/apigee/apigee-service/bin/apigee-service apigee-mtls uninstall
# BEFORE YOU DO THIS:/opt/apigee/apigee-service/bin/apigee-service apigee-mtls setup -f file
OR/opt/apigee/apigee-service/bin/apigee-service apigee-mtls configure
- Bạn phải gỡ cài đặt và chạy lại
setup
hoặcconfigure
trên tất cả các nút trong cụm, chứ không chỉ một nút.