Định cấu hình Apigee mTLS

Sau khi cài đặt thành phần apigee-mtls trên mọi nút trong cụm, bạn phải định cấu hình và khởi chạy thành phần đó. Bạn thực hiện việc này bằng cách tạo một cặp chứng chỉ/khoá 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 cho tất cả các nút trong cụm và khởi chạy 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 cho một trung tâm dữ liệu 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ó. Để biết thông tin về cách định cấu hình nhiều trung tâm dữ liệu, hãy xem bài viết Định cấu hình nhiều trung tâm dữ liệu cho Apigee mTLS.

Sau đây là quy trình chung để định cấu hình apigee-mtls:

  1. Cập nhật tệp cấu hình: Trên máy quản trị của bạn, hãy cập nhật tệp cấu hình để bao gồm các chế độ cài đặt apigee-mtls.
  2. Cài đặt Consul và tạo thông tin xác thực: Cài đặt Consul và sử dụng Consul để tạo thông tin xác thực TLS (chỉ một lần).

    Ngoài ra, hãy chỉnh sửa tệp cấu hình mTLS của Apigee để:

    1. Thêm thông tin xác thực
    2. 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 xác thực hiện có hoặc tạo thông tin xác thực bằng Consul.

  3. Phân phối tệp cấu hình và thông tin xác thực: Phân phối cùng một cặp chứng chỉ/khoá đã 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.
  4. Khởi chạy apigee-mtls: Khởi chạy thành phần apigee-mtls trên mỗi nút.

Từng bước này được mô tả trong 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 để bao gồ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 cập nhật tệp cấu hình bằng các thuộc tính liên quan đến mTLS, bạn sẽ sao chép tệp đó vào tất cả các nút trong cụm trước khi khởi chạy thành phần apigee-mtls trên các nút đó.

Các lệnh tham chiếu đến tệp cấu hình sử dụng "config_file" để cho biết vị trí của tệp này là biến, tuỳ thuộc vào vị trí bạn lưu trữ tệp trên mỗi nút.

Cách cập nhật tệp cấu hình:

  1. Trên máy quản trị, hãy mở tệp cấu hình.
  2. 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 máy chủ riêng được phân tách bằng dấu cách của tất cả các nút trong cụm.

    Thứ tự của đị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 của máy chủ riêng tư của nút OpenLDAP trong cụm.
    ZK_MTLS_HOSTS

    Danh sách được phân tách bằng dấu cách gồm các địa chỉ IP của máy chủ riêng tư lưu trữ các nút ZooKeeper trong cụm.

    Xin lưu ý rằng dựa trên các yêu cầu, bạn 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, nơi lưu trữ các máy chủ Cassandra 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, nơi lưu trữ các máy chủ Postgres trong cụm.
    RT_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, nơi lưu trữ Trình định tuyến 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ủ lưu trữ riêng tư được phân tách bằng dấu cách, trên đó các nút Máy chủ quản lý được lưu trữ trong cụm.
    MP_MTLS_HOSTS Một danh sách được phân tách bằng dấu cách gồm các địa chỉ IP của máy chủ riêng tư nơi Bộ xử lý thư đượ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, nơi lưu trữ các máy chủ Qpid trong cụm.
    ENABLE_SIDECAR_PROXY Xác định xem Cassandra và Postgres có nhận biết được mạng 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 sử dụng lệnh consul keygen trong Bước 2: Cài đặt Consul và tạo thông tin xác thực.

    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 ở Bước 2: Cài đặt Consul và tạo thông tin xác thực.

    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 ở Bước 2: Cài đặt Consul và tạo thông tin xác thực.

    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 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à 7865 ngày (5 năm).

    Ngoài các thuộc tính được liệt kê ở trên, Apigee mTLS sử dụng một số thuộc tính bổ sung khi bạn cài đặt trên cấu hình nhiều trung tâm dữ liệu. Để biết thêm thông tin, hãy xem phần Định cấu hình nhiều trung tâm dữ liệu.

  3. Đảm bảo thuộc tính ENABLE_SIDECAR_PROXY thành "y".
  4. Cập nhật địa chỉ IP trong các tài sản liên quan đến máy chủ lưu trữ. Hãy nhớ sử dụng địa chỉ IP riêng tư khi tham chiếu đến từng nút, chứ không phải địa chỉ IP công khai.

    Ở các bước sau, bạn sẽ đặt giá trị của các thuộc tính khác như ENCRYPT_DATA, PATH_TO_CA_CERTPATH_TO_CA_KEY. Bạn chưa đặt giá trị cho biến.

    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ả thuộc tính đều là chuỗi; bạn phải gói giá trị của tất 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 một dấu cách.
    • Sử dụng địa chỉ IP riêng tư thay vì tên máy chủ hoặc địa chỉ IP công cộng 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 giá trị thuộc tính phải giống với thứ tự trong tất cả tệp cấu hình trên cụm.
  5. Lưu các thay đổi đối với 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 xác thực.

Bạn phải chọn một trong các phương thức sau để tạo thông tin xác thực:

  • Tạo CA của riêng bạn bằng Consul, như mô tả trong phần này (nên dùng)
  • 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 xác thực

Thông tin xác thực bao gồm:

  • Chứng chỉ: Chứng chỉ TLS được lưu trữ trên mỗi nút
  • Khoá: Khoá công khai TLS được lưu trữ trên mỗi nút
  • Tin nhắn phiếm: Khoá mã hoá được mã hoá base-64

Bạn chỉ cần tạo một phiên bản duy nhất của mỗi tệp này một lần. 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 phương thức mã hoá của Consul, hãy xem những bài viết sau:

Cài đặt Consul và tạo thông tin xác thực

Bạn sử dụng tệp nhị phân Consul cục bộ để tạo thông tin xác thực mà Apigee mTLS sử dụng để xác thực thông tin liên lạc bảo mật giữa các nút trong cụm Private Cloud. Do đó, bạn phải cài đặt Consul trên máy quản trị thì mới có thể tạo thông tin xác thực.

Cách cài đặt Consul và tạo thông tin xác thực mTLS:

  1. Trên máy quản trị, hãy tải tệp nhị phân Consul 1.6.2 xuống từ trang web HashiCorp.
  2. 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/.
  3. 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, là một cặp chứng chỉ/khoá:

    • consul-agent-ca.pem (chứng chỉ)
    • consul-agent-ca-key.pem (khoá)

    Theo mặc định, tệp chứng chỉ và tệp khoá được mã hoá theo 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 các tệp này. Các tệp này phải nằm ở cùng một vị trí trên mỗi nút. Ví dụ: /opt/apigee/.

  4. 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ệp consul-agent-ca.pem trên nút. Ví dụ:
    PATH_TO_CA_CERT="/opt/apigee/consul-agent-ca.pem"
  5. Đặt giá trị của PATH_TO_CA_KEY thành vị trí bạn sẽ sao chép tệp consul-agent-ca-key.pem trên nút. Ví dụ:
    PATH_TO_CA_KEY="/opt/apigee/consul-agent-ca-key.pem"
  6. Tạo khoá mã hoá cho Consul bằng cách thực thi lệnh sau:
    /opt/consul/consul keygen

    Consul sẽ xuất một chuỗi ngẫu nhiên tương tự như sau:

    QbhgD+EXAMPLE+Y9u0742X/IqX3X429/x1cIQ+JsQvY=
  7. Sao chép chuỗi 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="
  8. 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 (ví dụ về các giá trị):

...
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 xác thực

Sao chép các tệp sau vào các nút chạy ZooKeeper bằng một công cụ như scp:

  • Tệp cấu hình: Sao chép phiên bản cập 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 chạy ZooKeeper).
  • consul-agent-ca.pem: Sao chép vào vị trí 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í 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 vị trí bạn sao chép tệp chứng chỉ và tệp khoá khớp với các giá trị bạn đặt trong tệp cấu hình ở Bước 2: Cài đặt Consul và tạo thông tin xác thực.

Bước 4: Khởi chạy apigee-mtls

Sau khi cập nhật tệp cấu hình, sao chép tệp đó và thông tin xác thực vào tất cả các nút trong cụm, đồng thời cài đặt apigee-mtls trên mỗi nút, bạn đã sẵn sàng khởi chạy thành phần apigee-mtls trên mỗi nút.

Cách khởi chạy apigee-mtls:

  1. Đăng nhập vào một nút trong cụm với tư cách là người dùng gốc. 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.
  2. Đặ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:
    chown apigee:apigee config_file
  3. Đị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
  4. (Không bắt buộc) Thực thi lệnh sau để xác minh rằng quá trình thiết lập đã thành công:
    /opt/apigee/apigee-mtls/lib/actions/iptables.sh validate
  5. 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.

  6. (Chỉ dành cho 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
  7. (Chỉ dành cho các nút Postgres) Postgres yêu cầu thêm các đối số để hoạt động trong lưới bảo mật. Do đó, bạn phải làm như sau trên các nút Postgres:

    (Chỉ dành cho Chính)

    1. 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ờ)

    1. Sao lưu dữ liệu Postgres hiện có. Để cài đặt Apigee mTLS, bạn phải khởi chạy lại các nút chính/chờ, do đó sẽ có dữ liệu bị mất. Để biết thêm thông tin, hãy xem phần Thiết lập tính năng sao chép chính/chờ cho Postgres.
    2. Xoá tất cả dữ liệu Postgres:
      rm -rf /opt/apigee/data/apigee-postgresql/pgdata
    3. Định cấu hình Postgres rồi khởi động lại Postgres, như trong ví dụ sau:
      /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.

  8. Khởi động các thành phần Apigee còn lại 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
  9. Lặp lại quy trình này cho từng nút trong cụm.
  10. (Không bắt buộc) Xác minh rằng quá trình khởi chạy apigee-mtls đã thành công bằng cách sử dụng một hoặc nhiều phương thức sau:
    1. Xác thực cấu hình iptables
    2. Xác minh trạng thái proxy từ xa
    3. Xác minh trạng thái của đại biểu

    Mỗi phương thức này đượ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 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.

Để nhắc lại điều này, khi thay đổi cấu hình mTLS hiện có của Apigee:

  • Nếu thay đổi tệp cấu hình, trước tiên, bạn phải gỡ cài đặt apigee-mtls và chạy lại setup hoặc configure:
    # 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ặc configure trên tất cả các nút trong cụm, chứ không chỉ một nút.