Định cấu hình Apigee mTLS

Edge cho đám mây riêng tư phiên bản 4.19.01

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ị của mình. Sau đó, bạn hãy triển khai cùng các 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 đơn lẻ ngay sau lần cài đặt ban đầu. Để biết thông tin về cách cập nhật bản cài đặt API API hiện có, 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ị, 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 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 Apigee mTLS để:

    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

    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 đó thông qua 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 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.
  4. Khởi chạy apigee-mtls: Khởi chạy 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 để đưa các thuộc tính cấu hình mTLS vào. Để 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 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 có thể thay đổi, 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ị của bạn, hãy mở tệp cấu hình.
  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"

    Đặ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 này:

    Tài sản Nội dung mô tả
    ALL_IP Một danh sách được phân tách bằng dấu cách gồm đị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ự của các địa chỉ IP 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 mọi 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ư 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 này, 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 của máy chủ riêng tư 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 của máy chủ riêng tư mà trên đó 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ông báo 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 của 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 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 đó 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 của máy chủ riêng tư 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ó 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á base64 được 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 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 Lãnh sự 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 đề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 Lãnh sự 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 đều giống nhau.

    Tệp khoá phải được mã hoá X509v3.

    APIGEE_MTLS_NUM_DAYS_CERT_VALID_FOR

    Số ngày của một chứng chỉ là giá trị phù hợp khi 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 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 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 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ẽ thiết lập 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 các giá trị đó.

    Khi chỉnh sửa 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 đặt 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ủ 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 các thay đổi vào tệp cấu hình.

Bước 2: Cài đặt Lãnh sự 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 tổ chức phát hành chứng chỉ (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 những thông tin sau:

  • 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 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. 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 các bài viết sau:

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

Bạn sẽ sử dụng một tệp nhị phân của Lãnh sự cục bộ để tạo thông tin xác thực mà Apigee mTLS dùng để xác thực hoạt động giao tiếp an toàn giữa các nút trong cụm Đám mây riêng tư của bạn. Do đó, bạn phải cài đặt Consul trên máy quản trị của mình trước khi 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 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 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 lệnh sau:
    /opt/consul/consul tls ca create

    Consul tạo các tệp sau, 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, 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, hiện tại, bạn chỉ phải quyết định vị trí trên các nút mà bạn sẽ đặt các tệp này. Các nút 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 Lãnh sự bằng cách thực thi lệnh sau:
    /opt/consul/consul keygen

    Lãnh sự sẽ xuất ra 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 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 (kèm theo 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 xác thực

Sao chép các tệp sau vào các nút đang 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 đ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 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ị 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ập nhật tệp cấu hình, sao chép tệp đó và thông tin xác thực cho 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 có thể khởi chạy thành phần apigee-mtls trên mỗi nút.

Để 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. Đặ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ư 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 để 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 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 đố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 các đối số bổ sung để 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ỉ dùng ở chế độ chờ)

    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/nút dự phòng, do đó sẽ có việ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 một 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ư trong ví dụ sau:
    /opt/apigee/apigee-service/bin/apigee-service component_name start
  9. Lặp lại quá 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 đại diện

    Mỗi phương thức trong số 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.

Xin nhắc lại lần 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 rồi 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.