Bật xác thực Cassandra

Theo mặc định, Cassandra cài đặt mà không bật tính năng xác thực. Điều đó có nghĩa là bất kỳ ai cũng có thể truy cập vào Cassandra. Bạn có thể bật tính năng xác thực sau khi cài đặt Edge hoặc trong quá trình cài đặt.

Bạn có thể thêm, xoá và sửa đổi vai trò bằng cách sử dụng câu lệnh Cassandra CREATE/ALTER/DROP ROLES. Để biết thêm thông tin, hãy xem phần dưới đây:

Một số điểm cần cân nhắc chung

  • Ngay khi bạn bật tính năng xác thực Cassandra, Cassandra sẽ tự động tạo một người dùng siêu cấp mặc định cassandra (có mật khẩu cassandra). Đây là một người dùng cấp cao được nhiều người biết đến và bạn không nên sử dụng người dùng này cho nhu cầu sản xuất. Ngoài ra, việc xác thực thông qua người dùng cấp cao này đòi hỏi phải có số người tham gia họp đủ. Do đó, tất cả các kết nối đến Cassandra xác thực thông qua người dùng này đều yêu cầu tính nhất quán nghiêm ngặt hơn, dẫn đến hiệu suất chậm hơn và ít chịu lỗi hơn.
  • Quy trình công việc thông thường sẽ bao gồm việc bật tính năng xác thực trong Cassandra trong khi truyền tên người dùng và mật khẩu tuỳ chỉnh qua tệp cấu hình. Thao tác này sẽ tạo người dùng và mật khẩu tuỳ chỉnh mà bạn có thể sử dụng một cách an toàn cho nhu cầu của mình. Việc xác thực thông qua những người dùng như vậy không bị hạn chế về tính nhất quán của số người tham gia.
  • Xin lưu ý rằng mặc dù bạn có thể đã tạo người dùng tuỳ chỉnh, nhưng Cassandra vẫn tạo người dùng cấp cao cassandra mặc định và bạn có thể truy cập vào cụm Cassandra thông qua người dùng cấp cao này. Thông thường, bạn nên sử dụng lệnh ALTER ROLE để thay đổi mật khẩu của người dùng cassandra này thành một mật khẩu khác với mật khẩu mặc định cassandra sau khi đã bật thành công tính năng xác thực Cassandra trên toàn bộ bảng trong Apigee. Lưu mật khẩu này để tham khảo sau này.
  • Bạn KHÔNG nên thay đổi mật khẩu của vai trò mà các thành phần edge-* đang sử dụng để xác thực vì việc đó sẽ gây gián đoạn dịch vụ ngay lập tức. Thay vào đó, bạn nên tạo một người dùng hoàn toàn mới, sửa đổi các thành phần edge-* để sử dụng người dùng mới và sau khi hoàn tất, hãy xoá người dùng cũ bằng lệnh DROP ROLE.
  • Để thay đổi vai trò mà các thành phần edge-* sử dụng cho việc xác thực Cassandra, hãy làm theo các bước sau:
    1. Làm theo các bước trong phần có tiêu đề Bật tính năng xác thực để tạo người dùng mới. Xin lưu ý rằng nếu đã bật tính năng xác thực trong cụm và bạn đã thay đổi mật khẩu của người dùng cassandra, thì bạn cần truyền tổ hợp tên người dùng/mật khẩu của một người dùng hiện tại thông qua CASS_EXISTING_USERNAMECASS_EXISTING_PASSWORD.
    2. Sau khi hoàn tất, hãy xác thực thông qua cqlsh để đảm bảo bạn có thể kết nối với Cassandra thông qua cả người dùng cũ và mới.
    3. Chỉ định tất cả thành phần edge-* để sử dụng người dùng mới tạo để kết nối với Cassandra bằng cách làm theo hướng dẫn trong phần Cập nhật các thành phần Edge kết nối với Cassandra.
    4. Cuối cùng, khi tất cả các thành phần đều đang sử dụng người dùng mới để giao tiếp với Cassandra, bạn có thể xoá người dùng cũ bằng lệnh DROP ROLE. Lưu ý rằng bạn không được xoá vai trò cassandra mặc định. Bạn có thể xoá mọi vai trò tuỳ chỉnh không được các thành phần edge-* sử dụng để giao tiếp với Cassandra.
  • Hãy nhớ cập nhật tên người dùng và mật khẩu Cassandra chức năng trong tệp cấu hình mà bạn sử dụng để cài đặt hoặc nâng cấp các thành phần Edge. Điều này sẽ loại bỏ hoặc giảm thiểu mọi sự gián đoạn trong quá trình hoạt động trên cạnh.

Bật tính năng xác thực Cassandra trong quá trình cài đặt

Bạn có thể bật tính năng xác thực Cassandra tại thời điểm cài đặt.

Để bật tính năng xác thực Cassandra tại thời điểm cài đặt, hãy thêm thuộc tính CASS_AUTH vào tệp cấu hình cho tất cả các nút Cassandra:

CASS_AUTH=y # The default value is n.

Các thành phần Edge sau đây truy cập vào Cassandra:

  • Máy chủ quản lý
  • Bộ xử lý thông báo
  • Bộ định tuyến
  • Máy chủ Qpid
  • Máy chủ Postgres

Khi cài đặt các thành phần này, bạn phải đặt tên người dùng và mật khẩu trong tệp cấu hình:

CASS_USERNAME=cassandra_username
CASS_PASSWORD=cassandra_password

Bạn có thể thay đổi thông tin xác thực Cassandra sau khi cài đặt Cassandra. Tuy nhiên, nếu đã cài đặt Máy chủ quản lý, Trình xử lý thông báo, Bộ định tuyến, máy chủ Qpid hoặc máy chủ Postgres, bạn cũng phải cập nhật các thành phần đó để sử dụng thông tin xác thực mới.

Cách thay đổi thông tin xác thực Cassandra sau khi cài đặt Cassandra:

  1. Đăng nhập vào bất kỳ nút Cassandra nào bằng công cụ cqlsh và thông tin xác thực mặc định. Bạn chỉ cần thay đổi mật khẩu trên một nút và mật khẩu đó sẽ được truyền đến tất cả các nút Cassandra trong vòng tròn:
    /opt/apigee/apigee-cassandra/bin/cqlsh cassIP 9042 -u cassandra_username -p cassandra_password

    Trong trường hợp:

    1. cassIP là địa chỉ IP của nút Cassandra.
    2. 9042 là cổng Cassandra mặc định.
  2. Thực thi lệnh sau tại lời nhắc cqlsh> để cập nhật mật khẩu:
    ALTER ROLE <username> WITH PASSWORD='';
  3. Thoát khỏi công cụ cqlsh, như trong ví dụ sau:
    exit
  4. Nếu bạn chưa cài đặt Máy chủ quản lý, Trình xử lý thông báo, Trình định tuyến, máy chủ Qpid hoặc máy chủ Postgres, hãy đặt các thuộc tính sau trong tệp cấu hình rồi cài đặt các thành phần đó:
    CASS_USERNAME=cassandra_username
    CASS_PASSWORD=new_cassandra_password
  5. Nếu bạn đã cài đặt Máy chủ quản lý, Trình xử lý thông báo, Trình định tuyến, máy chủ Qpid hoặc máy chủ Postgres, hãy xem phần Đặt lại mật khẩu Edge để biết quy trình cập nhật các thành phần đó nhằm sử dụng mật khẩu mới.

Bật tính năng xác thực Cassandra sau khi cài đặt

Cách bật tính năng xác thực sau khi cài đặt:

Cập nhật các thành phần Edge kết nối với Cassandra

Hãy sử dụng quy trình sau để cập nhật tất cả các thành phần Edge giao tiếp với Cassandra bằng thông tin xác thực mới. Xin lưu ý rằng bạn thực hiện bước này trước khi thực sự cập nhật thông tin xác thực Cassandra:

  1. Trên nút Máy chủ quản lý, hãy chạy lệnh sau:
    /opt/apigee/apigee-service/bin/apigee-service edge-management-server
      store_cassandra_credentials -u cassandra_username -p cassandra_password

    Bạn có thể truyền một tệp chứa tên người dùng và mật khẩu mới vào lệnh (không bắt buộc):

    apigee-service edge-management-server store_cassandra_credentials  -f configFile

    Trong đó, configFile chứa những nội dung sau:

    CASS_USERNAME=cassandra_username # Default is cassandra
    CASS_PASSWORD='cassandra_password' # Default is cassandra; wrap in single quotes if it includes special chars

    Lệnh này sẽ tự động khởi động lại Máy chủ quản lý.

  2. Đối với từng dịch vụ sau đây, hãy lặp lại Bước 1:
    • Tất cả bộ xử lý thông báo
    • Tất cả bộ định tuyến
    • Tất cả máy chủ Qpid (edge-qpid-server)
    • Máy chủ Postgres (edge-postgres-server)

    Khi bạn lặp lại Bước 1 cho từng dịch vụ, hãy thay thế edge-management-server trong lệnh ở trên bằng tên dịch vụ thích hợp. Ví dụ: khi bạn thực thi bước cho dịch vụ Bộ định tuyến, hãy sử dụng lệnh sau:

    /opt/apigee/apigee-service/bin/apigee-service edge-router
      store_cassandra_credentials -u cassandra -p cassandra

Bật tính năng xác thực

Hãy làm theo quy trình sau để bật tính năng xác thực Cassandra và đặt tên người dùng và mật khẩu:

  1. Tạo tệp cấu hình im lặng có nội dung như bên dưới:
    # Specify IP address or DNS name of cassandra node
    IP1=192.168.1.1
    IP2=192.168.1.2
    IP3=192.168.1.3
    # Must resolve to IP address or DNS name of host
    HOSTIP=$(hostname -i)
    # Set to ‘y’ to enable Cassandra authentication.
    CASS_AUTH=y # Possible values are ‘y/n’
    # Cassandra username. If it does not exist, this user would be created as a SUPERUSER
    CASS_USERNAME=cassandra_username # Default value is cassandra - don't use for production
    # Cassandra Password. If CASS_USERNAME does not exist, create SUPERUSER with this as password
    CASS_PASSWORD=cassandra_password # Default value is cassandra - don't use for production
    # Space-separated IP/DNS names of the Cassandra hosts
    CASS_HOSTS="$IP1:1,1 $IP2:1,1 $IP3:1,1"
    
    # Username of an existing C* user. Only needed if you have disabled or changed details of the default cassandra user(‘cassandra’)
    CASS_EXISTING_USERNAME=existing_cassandra_username
    # Password of an existing C* user. Only needed if you have disabled or change password of the default cassandra user(‘cassandra’)
    CASS_EXISTING_PASSWORD=existing_cassandra_password
    # Cassandra port
    CASS_PORT=9042 # The default port is 9042.
  2. Đăng nhập vào nút Cassandra đầu tiên và thực thi lệnh sau:

    apigee-service apigee-cassandra enable_cassandra_authentication -f CONFIG

    Nếu muốn, bạn có thể truyền các thuộc tính dưới dạng đối số lệnh đến tập lệnh, như trong ví dụ sau:

    CASS_AUTH=y HOSTIP=$(hostname -i) CASS_PORT=9042 CASS_EXISTING_USERNAME=existing_cassandra_username CASS_EXISTING_PASSWORD=existing_cassandra_password CASS_USERNAME=cassandra_username CASS_PASSWORD=cassandra_password  CASS_HOSTS="192.168.1.1:1,1 192.168.1.2:1,1 192.168.1.3:1,1" apigee-service apigee-cassandra enable_cassandra_authentication

    Lưu ý:

    • Đối với thông tin xác thực Cassandra mặc định, lệnh ở trên sẽ bật tính năng xác thực Cassandra và khởi động lại Cassandra.
    • Đối với thông tin xác thực không phải mặc định, lệnh này cũng thay đổi hệ số sao chép, tạo một siêu người dùng và chạy quy trình sửa chữa trên system_auth keyspace.
  3. Lặp lại các bước 1 và 2 trên tất cả các nút Cassandra.