Định cấu hình Apigee mTLS

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 chạy 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 chứng chỉ/khoá và cập nhật tệp cấu hình trên máy quản trị của mình. Sau đó, bạn hãy triển khai cùng các tệp và tệp cấu hình đã tạo cho tất cả các nút trong cụm đồng thời khởi chạy thành phần apigee-mtls cục bộ.

Định cấu hình apigee-mtls (sau lần cài đặt ban đầu)

Phần này mô tả cách định cấu hình Apigee mTLS ngay sau quá trình cài đặt ban đầu. Để biết thông tin về cách cập nhật việc cài đặt Apigee mTLS hiện có, hãy xem bài viết Thay đổi cấu hình apigee-mtls hiện có.

Phần này áp dụng cho các cài đặt trong một trung tâm dữ liệu. Để biết thông tin về cách định cấu hình Apigee mTLS trong quá trình thiết lập 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.

Quy trình chung để định cấu hình apigee-mtls như sau:

  1. 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 để 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à (không bắt buộc) sử dụng consul này để 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 Apigee mTLS để:

    1. Thêm thông tin đăng nhập
    2. Xác định cấu trúc liên kết của cụm

    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 thông tin xác thực và tệp cấu hình: 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.
  4. Khởi chạy apigee-mtls: Khởi tạo thành phần apigee-mtls trên mỗi nút.

Mỗi bước trong số này đượ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 để 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 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 chạy thành phần apigee-mtls trên các nút đó.

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

  1. Trên máy quản trị của bạn, hãy mở tệp cấu hình để chỉnh sửa.
  2. Sao chép tập hợp các 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"

    Hãy đặt giá trị của mỗi thuộc tính để 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 sau:

    Tài sản Nội dung mô tả
    ALL_IP 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ư của tất cả các nút trong cụm.

    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ê mọi địa chỉ IP của mọi máy chủ lưu trữ trên mọi khu vực.

    LDAP_MTLS_HOSTS Địa chỉ IP 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ư mà các nút ZooKeeper được lưu trữ trong cụm.

    Lưu ý rằng dựa trên các yêu cầu, phải có ít nhất 3 nút ZooKeeper.

    CASS_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 riêng tư của máy chủ lưu trữ mà trên đó máy chủ Cassandra được lưu trữ trong cụm.
    PG_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ư mà trên đó máy chủ Postgres được lưu trữ trong cụm.
    RT_MTLS_HOSTS Danh sách được phân tách bằng dấu cách gồm các địa chỉ IP riêng tư của máy chủ lưu trữ mà 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 Bộ xử lý thư và máy chủ LDAP. Đặt thành y.
    MS_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 máy chủ riêng tư mà các nút Máy chủ quản lý được lưu trữ trong cụm.
    MP_MTLS_HOSTS Danh sách được phân tách bằng dấu cách gồm các địa chỉ IP riêng tư của máy chủ lưu trữ mà trên đó Bộ xử lý thông báo được lưu trữ trong cụm.
    QP_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 riêng tư của máy chủ lưu trữ mà trên đó máy chủ Qpid được lưu trữ trong cụm.
    ENABLE_SIDECAR_PROXY Xác định xem Cassandra và Postgres có nhận biết được 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 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 trong 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 trong 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 mà chứng chỉ được tính dựa trên thời điểm bạn tạo một 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 nêu trên, Apigee mTLS còn sử dụng một số thuộc tính khác khi bạn cài đặt trên cấu hình trung tâm đa 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 ENABLE_SIDECAR_PROXY được đặt thành "y".
  4. Cập nhật địa chỉ IP trong các tài sản có 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.

    Trong các bước sau, bạn sẽ đặt giá trị cho 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 các yếu tố 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:

    • Mọi thuộc tính đều là chuỗi; bạn phải đặt giá trị của mọi thuộc tính trong dấu ngoặc đơn hoặc dấu ngoặc kép.
    • Nếu một giá trị liên quan đến máy chủ 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ư chứ không phải 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 các địa chỉ IP trong một giá trị thuộc tính phải theo cùng một thứ tự trong tất cả các tệp cấu hình trên cụm.
  5. Lưu nội dung thay đổi vào tệp cấu hình.

Bước 2: Cài đặt Consul và tạo thông tin đăng nhập

Phần này mô tả cách cài đặt Consul và tạo thông tin xác thực mà các thành phần hỗ trợ mTLS sử dụng.

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

  • (Nên làm) Tạo Tổ chức phát hành chứng chỉ (CA) của riêng bạn thông qua Consul, theo 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ó với Apigee mTLS (nâng cao)

Giới thiệu về thông tin đăng nhập

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

  • Chứng chỉ: Chứng chỉ TLS
  • Khoá: Khoá công khai TLS
  • Tin nhắn tán gẫu: Khoá mã hoá được mã hoá base-64

Bạn chỉ tạo một phiên bản duy nhất cho mỗi tệp trong số 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 của mình, đồ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 mã hóa của Consul, hãy xem các phần sau:

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

Để tạo thông tin xác thực mà Apigee mTLS dùng để xác thực hoạt động giao tiếp bảo mật giữa các nút trong cụm Đám mây riêng tư của bạn, hãy sử dụng tệp nhị phân của Consul cục bộ . Do đó, bạn phải cài đặt Consul trên máy quản trị của mình để 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.8.0 xuống từ trang web của HaashiCorp.
  2. Giải nén nội dung của tệp lưu trữ đã tải xuống. Ví dụ: trích xuất nội dung vào /opt/consul/.
  3. Trên máy quản trị của bạn, 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 sẽ tạo các tệp sau, tạo thành 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, chứng chỉ và tệp 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, hiện tại, bạn chỉ phải quyết định vị trí trên các nút mà mình sẽ đặt. Các chức năng này phải ở 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 thiết lập 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í mà 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 ra một chuỗi ngẫu nhiên có dạng như sau:

    QbhgD+EXAMPLE+Y9u0742X/IqX3X429/x1cIQ+JsQvY=
  7. Sao chép chuỗi đã tạo này và đặt 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 của bạn.

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ới các giá trị mẫu):

...
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 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 đ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.

Đảm bảo rằng vị trí mà bạn sao chép chứng chỉ và tệp khoá khớp với 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 tạo 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 rồi sao chép tệp đó cùng thông tin xác thực 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 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 thứ tự bất kỳ mà bạn muốn.
  2. Chỉ định 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ư trong 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 đây để xác minh rằng bạn đã thiết lập thành công:
    /opt/apigee/apigee-mtls/lib/actions/iptables.sh validate
  5. Bắt đầu 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 bất kỳ thành phần nào khác trên nút.

  6. (Chỉ dành cho 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 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 nút Postgres:

    (Chỉ danh mục 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ỉ dùng để dự phòng)

    1. 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ẽ có mất dữ liệu. Để 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ế độ 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 cấu trúc liên kết của trung tâm đa dữ liệu, hãy sử dụng đường dẫn tuyệt đối cho tệp cấu hình.

  8. Bắt đầu các thành phần còn lại của Apigee trên nút theo thứ tự bắt đầu, như ví dụ sau cho thấy:
    /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 việc 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 tham dự

    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. Bạn cũng phải đảm bảo áp dụng chế độ tuỳ chỉnh trên tất cả các nút.

Để nhắc lại ý này, khi thay đổi cấu hình Apigee mTLS hiện có, hãy làm như sau:

  • 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 rồi 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.