Đị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 của mình, 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 chứng chỉ/khoá và cập nhật 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 chạy Thành phần apigee-mtls.

Đị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 mTLS ngay sau lượt cài đặt ban đầu. Để biết thông tin về cách cập nhật bản cài đặt hiện tại cho mTLS của Apigee, hãy xem bài viết Thay đổi giao thức apigee-mtls hiện có .

Phần này áp dụng cho các lượt 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 mTLS để thiết lập một chế độ thiết lập nhiều trung tâm dữ liệu, hãy xem Đị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 để đưa apigee-mtls phần cài đặt.
  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 nó để 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 thành:

    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

    Xin lưu ý rằng bạn có thể dùng thông tin đăng nhập hiện có hoặc tạo chúng bằng Consul.

  3. Phân phối thông tin xác thực và tệp cấu hình: 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 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 của bạn để bao gồm cấu hình mTLS các thuộc tính. Để biết thêm thông tin chung về tệp cấu hình, hãy xem Tạo cấu hình tệp.

Sau khi bạn cập nhật tệp cấu hình của mì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 đó nút.

Các lệnh

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

  1. Trên máy quản trị của bạn, mở tệp cấu hình để chỉnh sửa.
  2. Sao chép nhóm thuộc tính cấu hình mTLS sau đây rồi dán vào cấu hình tệp:
    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"
    TLS_MIN_VERSION="tls12"
    TLS_CIPHER_SUITES="TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384"
    

    Đặt giá trị của mỗi 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 đượ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ự đó phải giống nhau trong tất cả các địa chỉ IP 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ả vùng.

    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ư nơi lưu trữ các nút ZooKeeper trong cụm.

    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 đượ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ữ máy chủ Cassandra trong cụm.
    PG_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ữ máy chủ Postgres 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 máy chủ riêng tư 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 Trình xử lý thư và máy chủ LDAP. Đặt thành y.
    MS_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ư có chứa 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 của máy chủ riêng tư có chứa Trình xử lý thư được lưu trữ trong cụm.
    QP_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ư nơi lưu trữ máy chủ Qpid 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 khóa 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 để tệp cấu hình đều 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 để tệp cấu hình đều 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ỉ thích hợp 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).

    TLS_MIN_VERSION Chỉ định phiên bản TLS tối thiểu được phép. Đặt thành tls12 để thực thi tối thiểu TLS 1.2.
    TLS_CIPHER_SUITES Danh sách được phân tách bằng dấu phẩy gồm các bộ thuật toán mật mã TLS được phép.

    Ví dụ: TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384

    Ngoài các thuộc tính nêu trên, mTLS sử dụng một số thuộc tính khác khi bạn cài đặt chiến dịch này trên cấu hình đa trung tâm dữ liệu. Để biết thêm thông tin, hãy xem Định cấu hình nhiều trung tâm dữ liệu.

  3. Hãy chắc chắn rằng ENABLE_SIDECAR_PROXY được đặt 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 private khi tham chiếu đến từng nút, không phải nút công khai Địa chỉ IP.

    Trong 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ị của chúng.

    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ả các thuộc tính trong một hoặc hai 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 tách từng địa chỉ IP có không gian.
    • Sử dụng địa chỉ IP riêng tư chứ không phải tên máy chủ lưu trữ hoặc địa chỉ IP công khai cho tất cả liên quan đến máy chủ lưu trữ các thuộc tính 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ả 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 được sử dụng bởi các thành phần hỗ trợ mTLS.

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 dùng) Tạo Tổ chức phát hành chứng chỉ (CA) của riêng bạn bằng cách sử dụng Consul, theo mô tả trong mục
  • Sử dụng thông tin đăng nhập 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 các thông tin sau:

  • Chứng chỉ: Chứng chỉ TLS
  • Khoá: Khoá công khai TLS
  • 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. Sau đó, bạn sao chép khoá và chứng chỉ vào tất cả các nút trong cụm và thêm khoá mã hoá vào tệp cấu hình bạn cũng sao chép vào tất cả các nút.

Để biết thêm thông tin về cách 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

Để tạo thông tin xác thực mà mTLS dùng để xác thực 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, sử dụng Tệp nhị phân Consul . Kết quả là bạn phải cài đặt Consul trên máy quản trị của bạn 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ị của bạn, tải xuống tệp nhị phân Consul 1.8.0 từ Trang web của HashiCorp.
  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 sang /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 sau đây:
    /opt/consul/consul tls ca create

    Consul 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 (chìa khoá)

    Theo mặc định, chứng chỉ và các 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, tại thời điểm này, bạn phải chỉ quyết định vị trí trên các nút mà bạn sẽ đặt các tệp này. Các mã này phải giống nhau 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í thành 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 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 rồi đặ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.

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ụ: 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 đăng nhập

Sao chép các tệp sau 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 rồi 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í 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 những vị trí mà bạn sao chép chứng chỉ và tệp khoá khớp với các giá trị mà bạn thiết lập 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 bạn cài đặt apigee-mtls trên mỗi nút, cập nhật tệp cấu hình và đã 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 đã sẵn sàng khởi chạy apigee-mtls thành phần 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 trong bất kỳ đơn đặt hàng 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, dưới dạng ví dụ sau đây cho thấy:
    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 bạn đã thiết lập thành công:
    /opt/apigee/apigee-mtls/lib/actions/iptables.sh validate
  5. Khởi động 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 mTLS của Apigee, 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 các nút Cassandra) Cassandra yêu cầu thêm đối số để 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 cần có 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 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ành cho chế độ chờ)

    1. Sao lưu dữ liệu Postgres hiện có. Để cài đặt mTLS của Apigee, bạn phải khởi động lại nút chính/nút chờ, do đó sẽ bị mất dữ liệu. Để biết thêm thông tin, hãy xem 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 đâ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 cấu trúc liên kết đa trung tâm dữ liệu, hãy sử dụng đường dẫn tuyệt đối cho thuộc tính 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 trong bắt đầu đơn đặt hàng, vì ví dụ sau đây 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 apigee-mtls việc khởi chạy 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

    Từng phương pháp này được mô tả trong phần Xác minh cấu hình.

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 và Cài đặt lại apigee-mtls. Bạn cũng phải đảm bảo áp dụng tuỳ chỉnh của mình trên tất cả nút.

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

  • 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 chứ không chỉ một nút.