Terdapat dua jenis keselamatan di Apache Cassandra dan Datastax perusahaan.
- Pengesahan Dalaman
- Kebenaran
Dalam tutorial ini, anda akan belajar,
- Apa itu Pengesahan dan Kebenaran Dalaman
- Konfigurasikan Pengesahan dan Pengesahan
- Melog masuk
- Buat Pengguna Baru
- Kebenaran
- Mengkonfigurasi Firewall
- Mengaktifkan Pengesahan JMX
Apa itu Pengesahan dan Kebenaran Dalaman
Pengesahan dalaman pada dasarnya mengesahkan sambungan pengguna. Pengguna disahkan menggunakan log masuk dan kata laluan. Semua akaun pengguna diuruskan di Cassandra secara dalaman.
Kebenaran dalaman berkaitan dengan kebenaran pengguna. Ia membincangkan tindakan apa yang boleh dilakukan pengguna. Sebagai contoh, kita dapat memberikan izin pengguna seperti mana pengguna hanya memiliki izin membaca data, pengguna mana yang memiliki izin menulis data dan pengguna mana yang memiliki izin menghapus data.
Walau bagaimanapun, Pengesahan juga dapat dikendalikan secara luaran dengan Kerberos (Kerberos digunakan untuk menguruskan bukti kelayakan dengan selamat) dan LDAP (LDAP digunakan untuk menyimpan maklumat yang berwibawa mengenai akaun, seperti apa yang mereka akses).
Pengesahan luaran adalah pengesahan yang disokong dengan Kerberos dan LDAP. Apache Cassandra tidak menyokong pengesahan luaran.
Hanya syarikat datastax yang menyokong pengesahan luaran dengan Kerberos dan LDAP. Manakala pengesahan dalaman disokong baik di Apache Cassandra dan juga Datastax perusahaan.
Konfigurasikan Pengesahan dan Pengesahan
Di Cassandra, secara automatik pilihan pengesahan dan kebenaran dilumpuhkan. Anda harus mengkonfigurasi fail Cassandra.yaml untuk membolehkan pengesahan dan kebenaran.
Buka fail Cassandra.yaml dan garis komplemen yang berkaitan dengan pengesahan dan kebenaran dalaman.
- Dalam fail Cassandra.yaml, secara lalai, nilai pengesah adalah 'AllowAllAuthenticator'. Tukar nilai pengesah ini dari 'AllowAllAuthenticator' menjadi 'com.datastax.bdp.cassandra.auth.PasswordAuthenticator'.
- Begitu juga, dalam fail Cassandra.yaml, secara lalai, nilai pengarang akan menjadi 'AllowAllAuthorizor'. Tukar nilai pengarang ini dari 'AllowAllAuthorizor' menjadi 'com.datastax.bdp.cassandra.auth.CassandraAuthorizor'.
Melog masuk
Sekarang pengesahan diaktifkan, jika anda cuba mengakses ruang kekunci apa pun, Cassandra akan mengembalikan kesalahan.
Secara lalai, Cassandra menyediakan akaun super dengan nama pengguna 'cassandra' dan kata laluan 'cassandra'. Dengan log masuk ke akaun 'Cassandra', anda boleh melakukan apa sahaja yang anda mahukan.
Mari lihat tangkapan skrin di bawah untuk ini, di mana ia tidak membenarkan anda log masuk jika anda tidak menggunakan "nama pengguna" dan "kata laluan" Cassandra lalai.
Sekarang, pada tangkapan skrin kedua, anda dapat melihat setelah menggunakan kelayakan masuk lalai Cassandra, anda dapat log masuk.
Anda juga boleh membuat pengguna lain dengan akaun ini. Adalah disyorkan untuk menukar kata laluan dari lalai. Berikut adalah contoh pengguna Cassandra log masuk dan menukar kata laluan lalai.
alter user cassandra with password 'newpassword';
Buat Pengguna Baru
Akaun baru boleh dibuat dengan akaun 'Cassandra'.
Untuk membuat pengguna baru, log masuk, kata laluan ditentukan bersama sama ada pengguna itu pengguna super atau tidak. Hanya pengguna Super yang boleh membuat pengguna baru.
create user robin with password 'manager' superuser;create user robin with password 'newhire';
Anda boleh mendapatkan senarai semua pengguna dengan sintaks berikut.
list users;
Pengguna boleh digugurkan dengan sintaks berikut.
drop user laura;
Kebenaran
Keizinan adalah pemberian izin kepada pengguna bahawa tindakan apa yang dapat dilakukan oleh pengguna tertentu.
Berikut adalah sintaks generik untuk memberikan kebenaran kepada pengguna.
GRANT permission ON resource TO user
Terdapat jenis kebenaran berikut yang dapat diberikan kepada pengguna.
- SEMUA
- ALTER
- KEBENARAN
- BUAT
- TURUNKAN
- MODIFIKASI
- PILIH
Berikut adalah contoh pemberian kebenaran kepada pengguna.
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;
Pengguna baru 'laura' dibuat dengan kata laluan 'newhire'.
Berikut adalah contoh di mana pengguna 'laura' cuba mengakses jadual emp_bonus. Laura hanya mempunyai izin untuk mengakses dev.emp dan tidak ada kebenaran untuk jadual ini dev.emp_bonus itulah sebabnya ralat dikembalikan.
select* form emp_bonus;
Anda boleh mendapatkan senarai semua kebenaran yang diberikan kepada pengguna. Berikut adalah contoh mendapatkan maklumat kebenaran.
list all permissions of laura;
Anda juga boleh menyenaraikan semua kebenaran pada sumber. Berikut adalah contoh mendapatkan kebenaran dari meja.
list all permissions on dev.emp;
Mengkonfigurasi Firewall
Sekiranya firewall sedang berjalan, port berikut mesti dibuka untuk komunikasi antara nod termasuk beberapa port Cassandra. Sekiranya port Cassandra tidak dibuka, node Cassandra akan bertindak sebagai pelayan pangkalan data mandiri daripada bergabung dengan kluster pangkalan data.
Pelabuhan Pelanggan Cassandra
Nombor Pelabuhan |
Penerangan |
9042 |
Pelabuhan Pelanggan Cassandra |
9160 |
Pelabuhan Pelanggan Cassandra |
Pelabuhan Cassandra Internode
Nombor Pelabuhan |
Penerangan |
7000 |
Komunikasi kluster Cassandra internode |
7001 |
Komunikasi kluster Cassandra SSL |
7199 |
Pelabuhan pemantauan Cassandra JMX |
Pelabuhan Awam
Nombor port |
Penerangan |
22 |
Pelabuhan SSH |
8888 |
Laman Web OpsCenter. Permintaan http penyemak imbas. |
Pelabuhan Cassandra OpsCenter
Nombor Pelabuhan |
Penerangan |
61620 |
Port pemantauan OpsCenter. |
61621 |
Port ejen Opscenter |
Mengaktifkan Pengesahan JMX
Dengan tetapan lalai Cassandra, JMX hanya dapat diakses dari localhost. Sekiranya anda ingin mengakses JMX dari jauh, ubah tetapan LOCAL_JMX di Cassandra-env.sh dan aktifkan pengesahan atau SSL.
Setelah mengaktifkan pengesahan JMX, pastikan OpsCenter dan nodetool dikonfigurasikan untuk menggunakan pengesahan.
Prosedur
Terdapat langkah-langkah berikut untuk mengaktifkan pengesahan JMX.
- Dalam fail cassandra-env.sh, tambahkan atau kemas kini baris berikut.
JVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.authenticate=true"JVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.password.file=/etc/cassandra/jmxremote.password"
Juga, ubah tetapan LOCAL_JMX di Cassandra-env.sh
LOCAL_JMX=no
- Salin jmxremote.password.template dari / jdk_install_location / lib / management / ke / etc / cassandra / dan namakan semula menjadi tojmxremote.password.
cp />jdk_install_dir/lib/management/jmxremote.password.template /etc/cassandra/jmxremote.password
- Tukar hak milik jmxremote.password kepada pengguna yang anda jalankan Cassandra dan ubah kebenaran untuk membaca sahaja
chown cassandra:cassandra /etc/cassandra/jmxremote.passwordchmod 400 /etc/cassandra/jmxremote.password
- Edit jmxremote.password dan tambahkan pengguna dan kata laluan untuk utiliti yang mematuhi JMX:
monitorRole QEDcontrolRole R&Dcassandra cassandrapassword
- Tambahkan pengguna Cassandra dengan kebenaran membaca dan menulis ke /jdk_install_location/lib/management/jmxremote.access
monitorRole readonlycassandra readwritecontrolRole readwrite \create javax.management.monitor.,javax.management.timer. \unregister
- Mulakan semula Cassandra
- Jalankan nodetool dengan pengguna dan kata laluan Cassandra.
$ nodetool status -u cassandra -pw cassandra
Ringkasan:
Tutorial ini menerangkan mengenai keselamatan di Cassandra dan mengkonfigurasi fail Cassandra.yaml untuk mengaktifkan keselamatan. Selain itu ia juga menerangkan bagaimana akaun pengguna baru dapat dibuat, pemberian izin, konfigurasi firewall, dan sebagainya.