Keselamatan Cassandra: Buat Pengguna & Pengesahan dengan JMX

Isi kandungan:

Anonim

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.

  1. SEMUA
  2. ALTER
  3. KEBENARAN
  4. BUAT
  5. TURUNKAN
  6. MODIFIKASI
  7. 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.

  1. 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
  1. 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
  1. 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
  1. Edit jmxremote.password dan tambahkan pengguna dan kata laluan untuk utiliti yang mematuhi JMX:
monitorRole QEDcontrolRole R&Dcassandra cassandrapassword
  1. 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
  1. Mulakan semula Cassandra
  2. 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.