Cassandra Xác thực và ủy quyền JMX: Tạo người dùng
Có hai loại bảo mật trong Apache Cassandra và doanh nghiệp Datastax.
- Xác thực nội bộ
- cho phép
Xác thực và ủy quyền nội bộ là gì
Xác thực nội bộ về cơ bản là xác thực kết nối người dùng. Người dùng được xác thực bằng thông tin đăng nhập và mật khẩu. Tất cả các tài khoản người dùng được quản lý trong Cassandra nội bộ
Ủy quyền nội bộ liên quan đến sự cho phép của người dùng. Nó đề cập đến những hành động mà người dùng có thể thực hiện. Ví dụ: chúng ta có thể cấp quyền cho người dùng như người dùng nào chỉ có quyền đọc dữ liệu, người dùng nào có quyền ghi dữ liệu và người dùng nào có quyền xóa dữ liệu.
Tuy nhiên, Xác thực cũng có thể được kiểm soát từ bên ngoài bằng Kerberos (Kerberos được sử dụng để quản lý thông tin xác thực một cách an toàn) và LDAP (LDAP được sử dụng để lưu giữ thông tin chính thống về tài khoản, chẳng hạn như những thông tin họ được phép truy cập).
Xác thực bên ngoài là xác thực được hỗ trợ bởi Kerberos và LDAP. Apache Cassandra không hỗ trợ xác thực bên ngoài.
Chỉ doanh nghiệp datastax mới hỗ trợ xác thực bên ngoài với Kerberos và LDAP. Trong khi xác thực nội bộ được hỗ trợ cả trong Apache Cassandra cũng như doanh nghiệp Datastax.
Định cấu hình xác thực và ủy quyền
In Cassandra, theo mặc định, các tùy chọn xác thực và ủy quyền bị tắt. Bạn phải cấu hình CassandraTệp .yaml để kích hoạt xác thực và ủy quyền.
Mở CassandraTệp .yaml và các dòng không ghi chú liên quan đến xác thực và ủy quyền nội bộ.
- In CassandraTệp .yaml, theo mặc định, giá trị xác thực là 'AllowAllAuthenticator'. Thay đổi giá trị xác thực này từ 'AllowAllAuthenticator' thành 'com.datastax.bdp.cassandra.auth.PasswordAuthenticator'.
- Tương tự, trong CassandraTệp .yaml, theo mặc định, giá trị ủy quyền sẽ là 'AllowAllAuthorizor'. Thay đổi giá trị ủy quyền này từ 'AllowAllAuthorizor' thành 'com.datastax.bdp.cassandra.auth.CassandraNgười ủy quyền'.
Đăng nhập
Bây giờ xác thực đã được bật, nếu bạn cố gắng truy cập bất kỳ không gian phím nào, Cassandra sẽ trả về một lỗi.
Theo mặc định, Cassandra cung cấp cho siêu tài khoản tên người dùng 'cassandra' và mật khẩu 'cassandra'. Bằng cách đăng nhập vào 'Cassandra' tài khoản, bạn có thể làm bất cứ điều gì bạn muốn.
Hãy xem ảnh chụp màn hình bên dưới để biết điều này, nơi nó sẽ không cho phép bạn đăng nhập nếu bạn không sử dụng mặc định Cassandra “tên người dùng” và “mật khẩu”.
Bây giờ, trong ảnh chụp màn hình thứ hai, bạn có thể thấy sau khi sử dụng Cassandra thông tin đăng nhập mặc định, bạn có thể đăng nhập.
Bạn cũng có thể tạo một người dùng khác bằng tài khoản này. Nên thay đổi mật khẩu từ mặc định. Đây là ví dụ về đăng nhập Cassandra người dùng và thay đổi mật khẩu mặc định.
alter user cassandra with password 'newpassword';
Tạo người dùng mới
Tài khoản mới có thể được tạo bằng 'Cassandra' tài khoản.
Để tạo người dùng mới, đăng nhập, mật khẩu được chỉ định cùng với việc người dùng có phải là siêu người dùng hay không. Chỉ Siêu người dùng mới có thể tạo người dùng mới.
create user robin with password 'manager' superuser; create user robin with password 'newhire';
Bạn có thể lấy danh sách tất cả người dùng bằng cú pháp sau.
list users;
Người dùng có thể bị xóa theo cú pháp sau.
drop user laura;
cho phép
Ủy quyền là việc gán quyền cho người dùng về hành động mà một người dùng cụ thể có thể thực hiện.
Đây là cú pháp chung để gán quyền cho người dùng.
GRANT permission ON resource TO user
Có những loại quyền sau đây có thể được cấp cho người dùng.
- TẤT CẢ CÁC
- THAY ĐỔI
- ỦY QUYỀN
- TẠO NÊN
- Thả
- SỬA ĐỔI
- CHỌN
Dưới đây là ví dụ về việc gán quyền cho người dùng.
Create user laura with password 'newhire'; grant all on dev.emp to laura; revoke all on dev.emp to laura; grant select on dev.emp to laura;
Người dùng mới 'laura' được tạo với mật khẩu 'newhire'.
Đây là ví dụ trong đó người dùng 'laura' cố gắng truy cập vào bảng emp_bonus. Laura chỉ có quyền truy cập dev.emp và không có quyền truy cập vào bảng này dev.emp_bonus, đó là lý do tại sao có lỗi được trả về.
select* form emp_bonus;
Bạn có thể nhận được danh sách tất cả các quyền được gán cho người dùng. Đây là ví dụ về việc nhận thông tin về sự cho phép.
list all permissions of laura;
Bạn cũng có thể liệt kê tất cả các quyền trên tài nguyên. Đây là ví dụ về việc nhận được sự cho phép từ một bảng.
list all permissions on dev.emp;
Cấu hình tường lửa
Nếu tường lửa đang chạy, các cổng sau phải được mở để giao tiếp giữa các nút bao gồm một số Cassandra cổng. Nếu như Cassandra cổng sẽ không được mở, Cassandra các nút sẽ hoạt động như máy chủ cơ sở dữ liệu độc lập thay vì tham gia cụm cơ sở dữ liệu.
Cassandra Cổng khách hàng
Số cổng | Mô tả |
---|---|
9042 | Cassandra Cổng khách hàng |
9160 | Cassandra Tiết kiệm cổng khách hàng |
Cassandra Cổng quốc tế
Số cổng | Mô tả |
---|---|
7000 | Cassandra giao tiếp cụm nút nội bộ |
7001 | Cassandra Giao tiếp cụm nút nội bộ SSL |
7199 | Cassandra Cổng giám sát JMX |
Cổng công cộng
Số cổng | Mô tả |
---|---|
22 | Cổng SSH |
8888 | Trang web OpsCenter. Yêu cầu http của trình duyệt. |
Cassandra Cổng OpsCenter
Số cổng | Mô tả |
---|---|
61620 | Cổng giám sát OpsCenter. |
61621 | Cổng đại lý Opscenter |
Kích hoạt xác thực JMX
Với cài đặt mặc định của Cassandra, JMX chỉ có thể được truy cập từ localhost. Nếu bạn muốn truy cập JMX từ xa, hãy thay đổi cài đặt LOCAL_JMX trong Cassandra-env.sh và kích hoạt xác thực hoặc SSL.
Sau khi bật xác thực JMX, hãy đảm bảo Trung tâm điều hành và nodetool được cấu hình để sử dụng xác thực.
Thủ tục
Sau đây là các bước để kích hoạt xác thực JMX.
- Trong tệp cassandra-env.sh, hãy thêm hoặc cập nhật các dòng sau.
JVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.authenticate=true" JVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.password.file=/etc/cassandra/jmxremote.password"
Ngoài ra, hãy thay đổi cài đặt LOCAL_JMX trong Cassandra-env.sh
LOCAL_JMX=no
- Sao chép jmxremote.password.template từ /jdk_install_location/lib/management/ đến /etc/cassandra/ và đổi tên thành jmxremote.password.
cp />jdk_install_dir/lib/management/jmxremote.password.template /etc/cassandra/jmxremote.password
- Thay đổi quyền sở hữu jmxremote.password cho người dùng bạn chạy Cassandra với và thay đổi quyền chỉ đọc
chown cassandra:cassandra /etc/cassandra/jmxremote.password chmod 400 /etc/cassandra/jmxremote.password
- Chỉnh sửa jmxremote.password và thêm người dùng và mật khẩu cho các tiện ích tuân thủ JMX:
monitorRole QED controlRole R&D cassandra cassandrapassword
- Thêm Cassandra người dùng có quyền đọc và ghi vào /jdk_install_location/lib/management/jmxremote.access
monitorRole readonly cassandra readwrite controlRole readwrite \ create javax.management.monitor.,javax.management.timer. \ unregister
- Khởi động lại Cassandra
- Chạy nodetool với Cassandra người dùng và mật khẩu.
$ nodetool status -u cassandra -pw cassandra
Tổng kết
Hướng dẫn này giải thích về bảo mật trong Cassandra và cấu hình CassandraTệp .yaml để kích hoạt bảo mật. Ngoài ra, nó còn giải thích cách tạo tài khoản người dùng mới, phân quyền, định cấu hình tường lửa, v.v.